2017-10-15 18 views
1

こんにちは私はcordovaモバイルアプリを多言語化したいと思います。 リソースフォルダに{lang.en.jsとlang.tr.js}という2つのjsファイルがあります。ファイルには の文字列オブジェクトがあります。多言語サポートCordova App

var strings = { 
    app_name: "Capser", 
    facebook_login_btn: "Login with Facebook", 
    gmail_login_btn: "Login with Gmail" 
} 

現在、私はラングギをモバイル言語に応じて選択したいと考えています。グローバリゼーション・プラグインをインストールし、以下の関数を記述しました。

function setLanguage() { 
    if (typeof (localStorage.language) === 'undefined') { 
     if (typeof (navigator.globalization) !== 'undefined') { 
      navigator.globalization.getPreferredLanguage(function (language) { 
       if (language.value.indexOf('en') != -1) 
        localStorage.language = 'en';     
       else 
        localStorage.language = 'tr'; 
      }, function() { 
       localStorage.language = 'tr'; 
      } 
      ); 
     } 
     else if (typeof (navigator.language) !== 'undefined') { 
      var language = navigator.language; 

      if (language.indexOf('en') != -1) 
       localStorage.language = 'en';   
      else 
       localStorage.language = 'tr'; 
     } 
     else { 
      localStorage.language = 'tr'; 
     } 
    } 
} 

(index.js)まず、この関数を呼び出してjsファイルを選択します。

setLanguage(); 
var languageScript = 'resources/lang.' + localStorage.language + '.js'; 

私の問題はここから始まります。私はファイルからこの文字列オブジェクトに到達したい。

$.getJSON(languageScript, function (data) { 
      console.log(data); 
     }); 

私は上記のとおりですが、動作しません。どのようにjsファイルからデータを取得できますか?あなたのターゲットファイルとして予め

答えて

0

おかげで、あなたがgetJSONメソッドを使用してはならない、JSONではありません。しかし、もしあなたがこの言語ファイルをインポートし、あなたが持っているものだけが言語翻訳だとするならば、そのファイルを純粋なJSONにして、$.getJSONを使ってそれらをインポートすることができます。

{ 
    app_name: "Capser", 
    facebook_login_btn: "Login with Facebook", 
    gmail_login_btn: "Login with Gmail" 
} 

そして、あなたはそのコールバックで、あなたが翻訳データを取得する必要があり、$.getJSONを使用してjQueryを使ってこのファイルを読み込むことができます。例えば、lang.en.jsだけでなければなりません。

関連する問題