如何在下面的代码中本地化prompt
的值?
$('.ui.form').form(
fields: {
email: {
identifier : 'email',
rules: [
{
type : 'email',
prompt : 'Please enter a valid e-mail'
}
]
},
ccEmail: {
identifier : 'cc-email',
optional : true,
rules: [
{
type : 'email',
prompt : 'Please enter a valid second e-mail'
}
]
}
}});
我希望'Please enter a valid e-mail'
和'Please enter a valid second e-mail'
以用户的语言显示。
答案 0 :(得分:1)
var userLang = navigator.language || navigator.userLanguage;
var availableLang = ["en", "es", "cn"];
if (availableLang.indexOf(userLang) == -1) {
console.log("Loading default language 'EN'");
userLang = "en";
}
var lang;
$.getJSON("path_to_lang_" + userLang + ".json", function(data) {
lang = data;
$('.ui.form').form(
fields: {
email: {
identifier: 'email',
rules: [{
type: 'email',
prompt: lang.firstEmail
}]
},
ccEmail: {
identifier: 'cc-email',
optional: true,
rules: [{
type: 'email',
prompt: lang.secondEmail
}]
}
}
});
});

上面的代码段会检测导航语言并使用可用的语言集进行检查。如果无法使用导航器语言的本地化,则加载默认语言。
你应该改变" path_to_lang _"到本地化文件的一些有效路径。
假设你有像" langs / lang_en.json"这样的文件,那么你的" path_to_lang _"应该是" langs / lang _"。
加载lang文件后,我们使用加载的本地化文本初始化您的代码。
" langs / lang_en.json"
的示例内容{'firstEmail':'Please enter a valid e-mail','secondEmail':'Please enter a valid second e-mail'}