我正在网页中实现多语言支持。我想最大程度地减少由页面重新加载引起的页面闪烁,并且我想到了在不强制重新加载整个页面的情况下更改页面语言的想法。为了实现这一点,我想到的唯一可能的方法就是使用JavaScript:
我用适当的翻译动态加载适当的语言.js文件
我手动浏览页面上的每个文本对象,并通过重新发送适当的新文本值来对其进行更新
为了提供示例代码,我粘贴了一个代码,该代码将只更新提交按钮。关于语言更改,我调用了一个函数,该函数可动态加载适当的.js语言文件。
var fileRef = LoadJsCssFile("Language/svk.js", "js", UpdateLanguage);
完全加载language .js文件后,我调用该函数来更新网页上包含文本的每个元素:
function UpdateLanguage()
{
var buttons = document.getElementsByClassName("submit_button");
for (buttonID in buttons)
{
buttons[buttonID].innerHTML = lang.SUBMIT;
}
};
手动更新网页中的每个文本对象非常复杂且容易出错。由于我对JavaScript还不是很熟悉,所以我在想,是否有一种方法可以用一个JavaScript命令简单地刷新网页中的所有关键元素,而不会引起网页闪烁呢?
如果您还有其他想法,我想知道如何有效地实现语言更改而不会出现页面闪烁。 :-)
最佳答案
我自己找到了一个解决方案:
我准备了几个JavaScript语言文件,每个关键字包含字符串
在语言选择按钮上,我导入了要使用的语言的相应语言文件
我通过javascript手动更新了网页上的每个文本。
以上解决方案适用于较小的站点。对于大的字符串,通过javascript更新每个文本字符串将需要大量工作。