多语言支持科尔多瓦应用程序
问题描述:
你好,我想让我的科多瓦移动应用程序成为多语言。 我在资源文件夹中有两个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文件中获取数据。
在此先感谢
答
为目标文件不是一个JSON,你不应该使用getJSON
方法。但是,如果你想导入这个语言文件,并假设你只有语言翻译文件,那么可以选择使文件成为纯粹的JSON,并按照描述使用$.getJSON
来导入它们,它应该可以工作。例如,lang.en.js应该只是:
{
app_name: "Capser",
facebook_login_btn: "Login with Facebook",
gmail_login_btn: "Login with Gmail"
}
然后你就可以加载使用jQuery使用$.getJSON
,并在其回调,你应该得到的转换数据文件。