您好我想将我的cordova移动应用程序设为多语言。 我在资源文件夹中有两个js文件{lang.en.js和lang.tr.js}。 在文件中,下面有一个字符串对象用于语言。
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 :(得分:0)
由于您的目标文件不是JSON,因此不应使用getJSON
方法。但是如果你想要导入这个语言文件,并假设你在文件中唯一拥有的是语言翻译,那么可以选择使这些文件成为纯JSON,并按照描述使用$.getJSON
导入它们。应该管用。例如,lang.en.js应该只是:
{
app_name: "Capser",
facebook_login_btn: "Login with Facebook",
gmail_login_btn: "Login with Gmail"
}
然后您可以使用$.getJSON
使用jQuery加载此文件,并且在其回调中,您应该获得翻译数据。