2009-11-17 4 views
0

Iam은 수동 언어 변환과 jquery-translate libray를 사용한 Google 번역의 혼합 된 접근 방식을 사용합니다. 나는 제대로 작동하는 구글 메소드를 얻었지만 구글은 내 고용주의 클라이언트가 필요로하는 몇몇 언어가 빠져있다 ...jQuery XML 변환에 대한 문자 집합 문제

그래서 jquery를 사용하여 영어 + 프랑스어 캐나다 언어가있는 샘플 페이지를 읽으며, 나는 xml을 읽고 nodeContainsText를 사용하여 페이지의 텍스트를 대체 할 수 있지만 그렇게 할 때 가능합니다. 텍스트의 악센트는 Google 번역 즉 프랑스를 통해 완벽하게 표시됩니다.

그래서 내 문제는 올바르게 표시 할 수 있도록 XML 데이터를 올바른 charset/content 형식으로 가져 오는 것입니다.

$(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 사용하고 볼 수 있듯이 xml 파일에서 올바른 htmlentities 코딩으로 들어오는 데이터.

나는 .html()이 있어야한다는 것을 알고 있지만 추가 할 때 오류가 발생합니다. 그래서 누군가 나에게 단서를 줄 수 있습니까?

감사합니다.

답변

0

나는 결국 직접 즉시 볼 수있는 다른 언어에서 모든 악센트를 만들어

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

...

덕분에 xml 파일의 문자 집합을 변경하여 해결책을 발견했다.