Проблемы с кодировкой для перевода XML в jQuery - PullRequest
0 голосов
/ 17 ноября 2009

Я использую смешанный подход ручного языкового перевода, и Google перевод, используя jquery-translate libray. Я получил метод 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]);
        }
    }
});

}

Как вы видите, я использую console.log через firebug, чтобы помочь отладить, откуда возникает проблема с содержимым / кодировкой ...

Я просто не могу понять синтаксис для преобразования данных, поступающих из XML-файла, в правильную кодировку htmlentities ..

Я знаю, что это должен быть .html (), но когда я добавляю это, это просто вызывает ошибки. Так может кто-нибудь дать мне подсказку?

Спасибо.

1 Ответ

0 голосов
/ 19 ноября 2009

В конце концов я нашел решение, изменив кодировку xml-файла прямо на

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

Это сделало все акценты с других языков мгновенно видимыми ...

Спасибо.

...