JavaScript:在没有页面重新加载的情况下更改语言

时间:2012-06-02 23:57:10

标签: javascript web dynamic-websites

我正在为我的网页实施多语言支持。我想最小化页面重新加载导致的页面闪烁,我想到了改变页面语言而不强迫整个页面重新加载的想法。要实现这一点,我想到的唯一可能的方法是使用JavaScript:

  1. 我使用适当的翻译动态加载适当的语言.js文件
  2. 我手动浏览页面上的每个文本对象,并通过重新发送相应的新文本值来更新它
  3. 为了向您提供示例代码,我粘贴了一个仅更新提交按钮的代码。在语言更改上,我调用一个动态加载适当的.js语言文件的函数。

    var fileRef = LoadJsCssFile("Language/svk.js", "js", UpdateLanguage);
    

    语言.js文件完全加载后,我调用更新网页上包含文本的每个元素的函数:

    function UpdateLanguage()
    {
        var buttons = document.getElementsByClassName("submit_button");
        for (buttonID in buttons)
        {           
                buttons[buttonID].innerHTML = lang.SUBMIT;
        }                   
    };
    

    手动更新网页中的每个文本对象都很复杂且容易出错。由于我对JavaScript不是很熟悉,我想,如果有一种方法可以使用一个JavaScript命令简单地刷新网页中的所有关键元素而不会使网页闪烁?

    如果您有任何其他想法,如何在没有页面闪烁的情况下有效实现语言更改,我很有兴趣知道。 : - )

1 个答案:

答案 0 :(得分:0)

我自己找到了一个解决方案:

  1. 我准备了几个包含每个关键字字符串的javascript语言文件
  2. 在语言选择按钮上,我导入了我想要使用的语言的相应语言文件
  3. 我通过javascript手动更新网页上的每个文字。
  4. 上述解决方案适用于较小的站点。对于大型的,通过javascript更新每个文本字符串将会有很多工作。