0

手動の言語翻訳と、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() であることを知っていますが、それを追加するとエラーが発生するだけです。それで、誰かが私に手がかりを与えることができますか?

ありがとうございました。

4

1 に答える 1

0

最終的に、xmlファイルの文字セットを直接変更することで解決策を見つけました

<?xml version="1.0" encoding="ISO-8859-1"?>

これにより、他の言語のすべてのアクセントが即座に表示されました...

ありがとう。

于 2009-11-18T21:51:32.050 に答える