2017-10-15 180 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,并在其回调,你应该得到的转换数据文件。