【问题标题】:Press spacebar when button is clicked单击按钮时按空格键
【发布时间】:2019-03-28 21:02:44
【问题描述】:

众所周知,使用谷歌音译时必须按空格键进行翻译。

但要求是转换从数据库获取的输入中已存储的值,而不是实时用户键入的值。

我怀疑我们可以用 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>

【问题讨论】:

    标签: jquery google-translate jsapi google-translator-toolkit


    【解决方案1】:

    虽然它应该是评论部分,但我必须在这里解释和插入示例。在谷歌音译官网上,提到了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 && result.transliterations.length > 0 &&
            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 && result.transliterations.length > 0 &&
                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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      相关资源
      最近更新 更多