2010-11-18 18 views
1

私のHTMLページを英語からアラビア語、アラビア語から英語に翻訳したいと考えています。jQuery言語翻訳が機能していませんか?

jquery.translate.jsプラグインを使用しています。 このプラグインは自分の言語を翻訳します

jsonファイルを使用して、HTMLエレメントのスパンIDを使用して言語の変更を示していますか? langfiles-AR-SA.json

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

同様に、別のJSONファイル としてlangfiles-AR-SA.json HTMLで

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

I追加3つのJSファイル JS /jquery.js、js/jquery.translate.js、js/translationManagement.js jsonファイルはWebコンテンツのフォルダにあります。 私の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()が実際にはwindowオブジェクトを参照することを意味し、他の要素は参照しません。この問題を解決するには、そのようなあなたの関数にオブジェクトを渡します。あなたのクリックハンドラで

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

そしてが、これへの呼び出しを変更します。

changeLanguage(eng, this); 

、明らかにアラビアリンク用ENGを変更。

変数.translateが実行されている必要があるかどうかは完全にはわかりませんが、windowオブジェクトで実行するのは変です。