2010-11-18 58 views
1

我想將我的HTML頁面從英語翻譯成阿拉伯語和阿拉伯語,再翻譯成英語。jQuery語言翻譯不起作用?

我正在使用jquery.translate.js插件。 這個插件將翻譯我的語言

我正在使用json文件來指示使用HTML元素的span id的語言更改。 langfiles-AR-SA.json

{ 
    "ProfileSpan" : "Profile", 
    "FrinedsSpan" : "Invite", 
    "FreepointsSpan" : "Points", 
    "PhonenumberSpan" : "Phone", 
    } 

類似的另一個JSON文件作爲 langfiles-AR-SA.json

{ 
    "ProfileSpan" : "المل�", 
    "FrinedsSpan" : "دعوة", 
    "FreepointsSpan" : "النقاط", 
    "PhonenumberSpan" : "بحث متقدÙ", 
    } 

在HTML我加入這三個js文件 JS /jquery.js,js/jquery.translate.js,js/translationManagement.js json文件位於webcontent的文件夾中。 我的JavaScript:

function Intialize(){ 
$('#EnglishLanguageLink').click(function() { 
    var eng = 'en-US'; 
    changeLanguage(eng); 
    return false; 
    }); 
$('#ArabicLanguageLink').click(function() { 
    var ara = 'ar-SA'; 
    changeLanguage(ara); 
    return false; 
    }); 
    } 

    function changelanguage(newLanguage){ 
    $(this).translate("languages/langfiles.json", newLanguage); 
    } 

如果我點擊英文鏈接和泰米爾語鏈接它會轉到頁面的頂部。但翻譯沒有發生。什麼錯誤在做。請提出解決方法。有什麼建議嗎? 在此先感謝。

回答

1

我認爲你的問題可能是因爲你的changelanguage函數實際上將在window對象的作用域中運行。這意味着changelanguage()中的this實際上將引用window對象而不是其他元素。爲了解決這個問題,通過對象插入功能,像這樣:

function changelanguage(newLanguage, obj){ 
    $(obj).translate("languages/langfiles.json", newLanguage); 
} 

,然後在點擊處理,改變調用此:

changeLanguage(eng, this); 

而且明顯變化eng代表阿拉伯鏈接。

我不完全確定這是什麼變量.translate應該運行,但它似乎很奇怪,你會運行它在window對象。