我想将我的html页面从英语翻译成阿拉伯语和阿拉伯语翻译成英语。
我正在使用“jquery.translate.js”插件。 这个插件将翻译我的语言
使用json文件使用HTML元素的span id指示语言的更改。 的 langfiles-AR-SA.json
{
"ProfileSpan" : "Profile",
"FrinedsSpan" : "Invite",
"FreepointsSpan" : "Points",
"PhonenumberSpan" : "Phone",
}
类似于另一个json文件 的 langfiles-AR-SA.json
{
"ProfileSpan" : "المل�",
"FrinedsSpan" : "دعوة",
"FreepointsSpan" : "النقاط",
"PhonenumberSpan" : "بØØ« متقدÙ",
}
在html中我添加了三个js文件 js / jquery.js,js / jquery.translate.js,js / translationManagement.js json文件位于webcontent的文件夹中。 我的javascript是:
function Intialize(){
$('#EnglishLanguageLink').click(function() {
var eng = 'en-US';
changeLanguage(eng);
return false;
});
$('#ArabicLanguageLink').click(function() {
var ara = 'ar-SA';
changeLanguage(ara);
return false;
});
}
function changelanguage(newLanguage){
$(this).translate("languages/langfiles.json", newLanguage);
}
如果我点击英语语言链接和泰米尔语言链接,它会转到页面顶部。但翻译并没有发生。我在做什么错误。请提出解决此问题的方法。有什么建议吗? 在此先感谢。
答案 0 :(得分:1)
我认为您的问题可能是因为您的changelanguage
函数实际上将在window
对象的范围内运行。这意味着this
中的changelanguage()
实际上将引用window
对象,而不是其他元素。要解决此问题,请将对象传递给您的函数,如下所示:
function changelanguage(newLanguage, obj){
$(obj).translate("languages/langfiles.json", newLanguage);
}
然后在您的点击处理程序中,将调用更改为:
changeLanguage(eng, this);
显然,为阿拉伯语链接改变了英语。
我不完全确定是否应该运行变量.translate
,但是在window
对象上运行它似乎很奇怪。