2017-10-15 117 views
1

你好,我想讓我的科多瓦移動應用程序成爲多語言。 我在資源文件夾中有兩個js文件{lang.en.js和lang.tr.js}。 在文件中,語言下面有一個字符串對象。多語言支持科爾多瓦應用程序

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

現在我想選擇languge取決於手機語言。我安裝了全球化插件並在下面寫了功能。

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'; 
     } 
    } 
} 

in index.js首先我調用這個函數,然後我選擇js文件。

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

我的問題從這裏開始。我想從文件到達這個字符串對象。

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

我上面寫的,但不工作。我怎樣才能從js文件中獲取數據。

在此先感謝

回答

0

爲目標文件不是一個JSON,你不應該使用getJSON方法。但是,如果你想導入這個語言文件,並假設你只有語言翻譯文件,那麼可以選擇使文件成爲純粹的JSON,並按照描述使用$.getJSON來導入它們,它應該可以工作。例如,lang.en.js應該只是:

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

然後你就可以加載使用jQuery使用$.getJSON,並在其回調,你應該得到的轉換數據文件。