所以我尝试以多种语言提供我的网站。
我想在不更改网址的情况下选择更改网页上的语言。 (就像YouTube一样)
我的问题:如何在保持网址相同的同时以多种语言提供我的网站?并且每种语言都由搜索引擎索引
这是我目前的想法:
我目前的想法是让每个页面都查找一个语言变量(将在cookie或用户设置中设置)
然后从该变量中加载一个包含相应语言文本的数组的文件。
现在我只是从数组中提取值并将它们放在元素中。
对于搜索引擎,我可以将语言选项设置为get变量。
但是,这种方法可能不是最好的
答案 0 :(得分:3)
您将语言存储在Cookie中。 Xou就在那里。 然后根据语言加载文件。此文件类似于XML或YAML。
XML(英文):
<string id="title">My Page</string>
XML(德语):
<string id="title">Meine Seite</string>
XML(克林贡语):
<string id="title">DutlhHo'</string> <!-- not actually klingon -->
你现在只是解析它。
答案 1 :(得分:1)
你可以做几件事,其中包括
各方法的缺点分别
这使得添加实际子域更加困难,因为您将语言设置为子域,而从技术上讲,它是使用不同语言的相同内容。
如果你自己这样做,这个解析URL会更复杂。您必须考虑正在设置或未设置的语言(可能会设置默认语言)。如果您没有设置默认语言,那么您还必须确保所有链接都包含其路径中的语言(如果这种情况并非自动发生)。
这样做的缺点是你要保存数据客户端,例如用户可以清除cookie,偏好或语言设置将消失。
在上述选项中,第三个是迄今为止最简单的解决方案。不要乱用子域或URL,只需从cookie中读取值并在支持语言时加载语言环境,否则加载默认语言环境。
这是迄今为止最好的选择,在重建部分应用程序时需要的工作量最少。 (假设你没有“你正在使用的框架”)
如果您将语言数据保存在没有其他信息的cookie中,那么使用cookie就没有真正的安全缺点。这是因为您没有保存敏感数据,因此任何窃取该Cookie的人都不会知道除了他们希望看到您网站的语言之外的任何内容 - 这在99.9999%的情况下是无关紧要的。
这是一个略有偏见的答案,因为这个问题依赖于其他人的经验/意见,但事实已经在上面提到过(非常简短,不完整,但它得到了重点)。