ウェブサイトの翻訳ボックスを作成しようとしています。これまでのところ、チュートリアルから実用的なコードを取得することができました。
<input id="ori" type="text" />
<button onclick="translate();">Translate</button>
<div id="trans"></div>
<script>
var languageFrom = "en";
var languageTo = "fr";
function translate() {
document.getElementById('trans').innerHTML="Translating... please wait";
var text= document.getElementById('ori').value;
window.mycallback = function(response) {
document.getElementById('trans').innerHTML=response;
}
var s = document.createElement("script");
s.src = "http://api.microsofttranslator.com/V2/Ajax.svc/Translate?oncomplete=mycallback&appId=<MY-APP-ID>&from=" + languageFrom + "&to=" + languageTo + "&text=" + text;
document.getElementsByTagName("head")[0].appendChild(s);
}
</script>
(ここからスクリプトを作成します:http ://wizardsoweb.com/microsoftbing-translator-ajax-example/2011/05/?wpmp_switcher = desktop )
基本的に、APPIDを入力すると、ori
テキストボックスのテキストがフランス語に翻訳されます。もちろん、これはすべて正常に機能しますが、これが私がやろうとしていることです。
2つのドロップダウンメニューが必要です。1つはlanguageFrom
変数に指定された言語を入力し、もう1つは変数に指定された言語を入力するドロップダウンメニューlanguageTo
です。
私はすでにこの問題について別の投稿で投稿しています:ドロップダウンからの値でスクリプト変数を更新しますか?。このように、ドロップダウンメニューから値を選択すると、変数に値が入力されます。私はjsFiddleでこれの実用的な例を持っています:
http://jsfiddle.net/charlescarver/hk2bJ/1/
(APIキーを含めたので、作業が簡単です)
つまり、これに伴う問題は、変数が空のときに翻訳を制御するスクリプトが読み込まれ、ドロップダウンオプションが選択されたときに更新されないことだと思います。
これは、ページが読み込まれたときではなく、ボタンがクリックされたときにスクリプトを呼び出すことで修正できると思います。これはどのように達成できますか?Microsoftのサポートは十分に文書化されておらず、そこでまたはgoogleで解決策を見つけることができません。APIドキュメントへのリンクは次のとおりです:http://msdn.microsoft.com/en-us/library/ff512385.aspx