потеря перевода и пробела при переводе с помощью машинного перевода Google - PullRequest
0 голосов
/ 22 мая 2010

Я использую API перевода на основе Google ajax, как в следующем примере.

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);

Когда я отправляю строку типа "как дела?"

То, что я получаю, выглядит как «ххх ххх ххххххх» пробелы в исходной строке обрезаются. Как я могу предотвратить это?

Ответы [ 2 ]

1 голос
/ 22 мая 2010

Попробуйте:

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];
        }
      });
    }
  });
}
0 голосов
/ 22 мая 2010

Вы не можете. Что вы можете сделать, так это обойти его, перераспределив начальное / конечное пространство в чистые переменные и добавив / добавив его обратно после завершения работы Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...