複数の言語のコンテンツを含むWebサイトの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の経験は限られており、グーグルで使用しても有用なものは何も見つかりませんでした。
誰か助けてもらえますか?