【问题标题】:How to change language without reloading page with PHP / Jquery如何在不使用 PHP / Jquery 重新加载页面的情况下更改语言
【发布时间】:2011-03-12 19:18:07
【问题描述】:

我现在正在开发一个多语言网站。 我目前包括语言短语的相关语言文件('lange/_en.php')。 要更改语言,用户将从

我记得我在网上看到过类似的东西,但我不知道在哪里。

关于如何完成这件事的任何帮助或任何想法?

【问题讨论】:

    标签: php javascript jquery jquery-plugins


    【解决方案1】:

    问题在于语言更改不仅会影响页面的一小部分,还会影响整个页面。所以真的,你有三个选择。

    1. 简单的方法确实是重新加载整个页面。它易于实现、易于维护,并且不需要您确保页面上当前运行的 JavaScript 在运行时能够识别新语言。

    2. 复杂的方式是通过 AJAX 获取所有新标记并将 <body> 标记的内容替换为重新加载的内容。这将导致其他运行的脚本(例如图像轮播等)出现问题,这些脚本包含对某个元素的引用,因此您必须重新初始化在您页面上的 settimeout() 上运行的每个脚本。

    3. 几乎不可能的方法,即拥有一个客户端字典,选择每个相关标签,并用新语言更改其内容。这是一个痛苦的设置和一个痛苦的维护。您确实需要为每个特定页面量身定制的部分。同样,如果您有带字符串的脚本,则必须确保它们使用的字符串已更新为新语言。

    您最好重新加载页面。它可以在没有 JavaScript 的情况下工作,而且是一次性的,不会打扰用户。

    【讨论】:

    • +1 表示简单的方法。可以使用 javascript 更改 l10n,但这是其中之一,仅仅因为你可以并不意味着你应该这样做。如果有人访问并想更改他们的语言但他们没有 javascript,会发生什么?如果一个 js 错误在其他地方蔓延并向下蔓延,破坏了整个页面(la Gawker 最近的兴奋)怎么办?最好的方法基本上总是使用简单的方法在服务器端进行。
    • 使用 ajax 设置语言并刷新页面作为解决方案。谢谢。
    • 将一个属性放到你的 h1、p 等等,比如

      然后隐藏另一个不是最简单的吗语言 $("#lang_en").click(function () { $('p[lang|="sv"]').hide(); }); ?即时语言切换且无需重新加载页面。

    • 你不能简单地使用 CSS 来切换带有文本的“类”吗?将“亚瑟”(即“亚瑟”)更改为标志图像,它将完全做到这一点,无需重新加载页面且无需 JS 即可更改文本。 codepen.io/aardrian/pen/OPgmPe
    【解决方案2】:

    看看这个插件:

    http://keith-wood.name/localisation.html
    

    它会在不返回服务器端的情况下“即时”更改语言。

    【讨论】:

    • 检查了这一点,但无法成功处理文件中的所有文本。还是谢谢。
    【解决方案3】:

    Image reload prototype if-modified我发布了关于图像内容更新为所选语言而无需重新加载页面的信息。

    图像采用发送的值并更新为数据库上的语言/国家代码(绑定到语言),并更新图像内容(字符)以匹配其键盘布局..

    希望它有一些用处

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 2020-12-29
      • 2020-10-04
      • 2017-03-03
      • 2011-11-27
      相关资源
      最近更新 更多