Я работаю над JavaScript для веб-сайта с контентом на нескольких языках. Я хотел бы использовать Google Translate API, чтобы позволить пользователю выбрать слово (или фразу) и автоматически предоставить перевод. В настоящее время я просто сообщаю о результатах тестирования.
Это то, что я имею до сих пор:
google.load ("language", "1");
function getSelection() {
var selection = (!!document.getSelection) ? document.getSelection() :
(!!window.getSelection) ? window.getSelection() :
document.selection.createRange().text;
if (selection.text)
selection = selection.text
console.log(selection);
return selection
}
$(document).ready(function() {
$(window).mouseup(function() {
var selection = getSelection();
if (selection != "") {
google.language.translate(selection, "", "en", function(result) {
if (!result.error) {
alert(result.translation);
} else {
alert(result.error);
}
});
}
});
});
Проблема, с которой я сталкиваюсь, заключается в том, что моя функция getSelection () возвращает объекты Range, которые, по-видимому, несовместимы с функцией google language.translate (). Все, что мне действительно нужно, это способ получить фактический текст из диапазона в виде строки, чтобы я мог передать это. Насколько я знаю, есть действительно простой и очевидный способ сделать это, которого мне просто не хватает (да, я пробовал использовать selection.text), но мой опыт работы с JavaScript ограничен, и поиск в Google не выявил ничего полезного.
Может кто-нибудь помочь?