Нажимать пробел при нажатии кнопки

#jquery #google-translate #jsapi #google-translator-toolkit

#jquery #google-translate #jsapi #google-переводчик-инструментарий

Вопрос:

Известно, что для перевода при использовании Google transliteration необходимо нажать пробел.

Но требование состоит в том, чтобы перевести уже сохраненное значение во входные данные, извлеченные из базы данных, а не значение, введенное пользователем в реальном времени.

Я сомневаюсь, что мы сможем автоматически перевести вводимое значение с помощью Google jspi.

Невозможно перевести, не нажимая пробел, поэтому я пытаюсь нажимать пробел для каждого класса при нажатии определенной кнопки, чтобы он был переведен.

Например, вот кнопка, если нажать на эту кнопку, то нажимайте пробел для каждого класса и переводите автоматически.

Я пробовал добавлять пробел после значения, но без события пробела ничего не изменилось

 $('#translate').click(function(){
    $('.npl').each(function(){
        $(this).val($(this).val() '');
    })
})
$('.npl').nepalize(); 
  

 $.fn.nepalize = function(){
  var that = this[0];
  google.load("elements", "1", {
    packages: "transliteration"
  });
  function onLoad() {
    var options = {
      sourceLanguage: 'en', // or google.elements.transliteration.LanguageCode.ENGLISH,
      destinationLanguage: ['ne'], // or [google.elements.transliteration.LanguageCode.HINDI],
      shortcutKey: 'ctrl g',
      transliterationEnabled: true
    };
    var control = new google.elements.transliteration.TransliterationControl(options);
    // Enable transliteration in the textfields with the given Class.
    var elements = document.getElementsByClassName('npl');
    control.makeTransliteratable(elements);		
  }
  google.setOnLoadCallback(onLoad);
}

$('#translate').click(function(){
  $('.npl').each(function(){
    $(this).val($(this).val() '');
  })
})
$('.npl').nepalize();  
 <html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script type="text/javascript" src="http://www.google.com/jsapi"></script>
</head>
<body>
  <button id='translate'>Translate</button>
  <input class="npl" value='Hello'>
  <input class="npl" value='How are you' />
</body>
</html>  

Ответ №1:

Хотя это должен быть раздел комментариев, но я должен объяснить и вставить пример здесь. На официальном сайте Google transliterate упоминается, как javascript строка может быть переведена.

Я думаю, что решение находится в следующем коде

https://developers.google.com/transliterate/v1/getting_started

 //Load the Language API.
google.load("language", "1");

//Call google.language.transliterate() 
google.language.transliterate(["Namaste"], "en", "hi", function(result) {
  if (!result.error) {
    var container = document.getElementById("transliteration");
    if (result.transliterations amp;amp; result.transliterations.length > 0 amp;amp;
        result.transliterations[0].transliteratedWords.length > 0) {
      container.innerHTML = result.transliterations[0].transliteratedWords[0];
    }
  }
});
  

Если строку javascript можно преобразовать, это был бы лучший способ, поскольку мы можем сохранить строку из базы данных.

Я пробовал с этим, но результат пустой

     google.load("language", "1");

    function initialize() {
      google.language.transliterate(["Namaste"], "en", "ne", function(result) {
        if (!result.error) {
          var container = document.getElementById("transliteration");
          if (result.transliterations amp;amp; result.transliterations.length > 0 amp;amp;
            result.transliterations[0].transliteratedWords.length > 0) {
            container.innerHTML = result.transliterations[0].transliteratedWords[0];
          }
        }
      });
    }
    google.setOnLoadCallback(initialize);  
 <!DOCTYPE HTML>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google AJAX Language API - Basic Transliteration</title>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  </head>
  <body>
    <div id="transliteration"></div>
  </body>
</html>