失去领先优势使用Google Machine Translation翻译时的尾随空格

时间:2010-05-22 11:59:09

标签: javascript translation

我正在使用谷歌基于ajax的翻译API,如下例所示。

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

    function initialize() {
      var text = document.getElementById("text").innerHTML;
      google.language.detect(text, function(result) {
        if (!result.error && result.language) {
          google.language.translate(text, result.language, "en",
                                    function(result) {
            var translated = document.getElementById("translation");
            if (result.translation) {
              translated.innerHTML = result.translation;
            }
          });
        }
      });
    }
    google.setOnLoadCallback(initialize);

当我发送“你好吗?”等字符串时,

我得到的翻译就像“xxx xxx xxxxxxx”。修剪原始字符串中的空格。如何防止它发生?

2 个答案:

答案 0 :(得分:1)

尝试:

function initialize() {
  var text = document.getElementById("text").innerHTML;
  var spaceMatch = text.match(/^(\s*).*?(\s*)$/);
  google.language.detect(text, function(result) {
    if (!result.error && result.language) {
      google.language.translate(text, result.language, "en",
                                function(result) {
        var translated = document.getElementById("translation");
        if (result.translation) {
          translated.innerHTML = spaceMatch[1] + result.translation + spaceMatch[2];
        }
      });
    }
  });
}

答案 1 :(得分:0)

你做不到。你可以做的是通过将前导/尾随空间重新划分为临时变量并在Google完成后重新开始/追加它来解决这个问题。