我正在开发一个多语言网站。 我目前包括语言短语的相关语言文件('lange / _en.php')。 要更改语言,用户将从<选择>项目。我想要做的是在页面中更改相关短语(如果可能的话也是网址)而不刷新或提交页面。
我记得我在网上看到过这样的东西,但我不知道在哪里。
有关如何完成此事的任何帮助或任何想法?
答案 0 :(得分:5)
这个问题是语言更改不仅会影响页面的一小部分,而且会影响整个页面。所以,你真的有三个选择。
简单的方法确实正在重新加载整个页面。它易于实现,易于维护,并且不要求您确保页面上当前运行的JavaScript在运行时知道新语言。
复杂的方式,它通过AJAX获取所有新标记,并用重新加载的内容替换<body>
标记的内容。这将导致运行其他脚本(例如图像轮播等)的问题,这些脚本包含对元素的引用,因此您必须重新初始化页面上settimeout()
上运行的每个脚本。
接近不可能的方式,即拥有客户端字典,选择每个相关标签,并使用新语言更改其内容。这是一种痛苦的设置和维护的痛苦。您确实需要为每个特定页面量身定制的部分。同样,如果你有包含字符串的脚本,你必须确保他们使用的字符串更新为新语言。
最好只是重新加载页面。它可以在没有JavaScript的情况下工作,这是一次不会打扰用户的一次性交易。
答案 1 :(得分:0)
检查此插件:
http://keith-wood.name/localisation.html
它可以“动态”改变语言,而无需回到服务器端。
答案 2 :(得分:0)
Image reload prototype if-modified我发布了有关所选语言的图片内容更新,而没有重新加载页面。
图像采用发送的值并更新为数据库上的语言/国家/地区代码(绑定语言),并更新图像内容(字符)以匹配其键盘布局。
希望它的一些用途