手動の言語翻訳と、jquery-translate libray を使用した Google 翻訳の混合アプローチを使用しています。Google メソッドが正しく機能するようになりましたが、雇用主のクライアントが必要とするいくつかの言語が Google にありません...
だから私はjqueryを使って英語とフランス語のカナダ語を含むxmlファイルを読んでいます。サンプルページではxmlを読むことができ、nodeContainsTextを使ってページ上のテキストを置き換えることができます Google翻訳、つまりフランス語で完全に表示されるテキストのアクセント。
したがって、私の問題は、xml データを正しい文字セット/コンテンツ タイプとして取得して、正しく表示する方法です。
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "xmldata.xml",
dataType: "xml",
success: parseXml
});
});
function parseXml(xml)
{
//find every Tutorial and print the author
$(xml).find("english").each(function()
{
$(this).find('phrase').each(function(){
english[count] = $(this).text();
console.log('Adding to english array..['+english[count]+']');
count = count + 1;
});
});
count = 1;
$(xml).find("french_canadian").each(function()
{
$(this).find('phrase').each(function(){
frca[count] = $(this).text();
console.log('Adding to frca array..['+frca[count]+']');
count = count + 1;
});
});
$('body').nodesContainingText().each(function(){
// step 1 search through all text nodes
var $el = $(this), text = $el.text() || $el.val();
var nn = this.nodeName;
// step 2 find position in english array for word
for(var i=0;i<english.length;i++) {
// step 3 replace with french canadian version from array
if (english[i] == text) {
// which node dot text = value
console.log('Replacing...'+english[i]+' with '+frca[i]);
$el.text(frca[i]);
}
}
});
}
ご覧のとおり、コンテンツ/文字セットの問題の原因をデバッグするために、firebug 経由で console.log を使用しています...
xml ファイルから受信したデータを正しい htmlentities コーディングに変換するための構文を把握できないようです。
私はそれが .html() であることを知っていますが、それを追加するとエラーが発生するだけです。それで、誰かが私に手がかりを与えることができますか?
ありがとうございました。