有多种语言的网站

时间:2016-02-16 16:16:52

标签: php multiple-languages

所以我尝试以多种语言提供我的网站。

我想在不更改网址的情况下选择更改网页上的语言。 (就像YouTube一样)

我的问题:如何在保持网址相同的同时以多种语言提供我的网站?并且每种语言都由搜索引擎索引

这是我目前的想法:

我目前的想法是让每个页面都查找一个语言变量(将在cookie或用户设置中设置)

然后从该变量中加载一个包含相应语言文本的数组的文件。

现在我只是从数组中提取值并将它们放在元素中。

对于搜索引擎,我可以将语言选项设置为get变量。

但是,这种方法可能不是最好的

2 个答案:

答案 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)

TL; DR;使用cookie策略

你可以做几件事,其中包括

  1. 使用子域名,例如 连接 .example.com的/不管/来/这里
  2. 在您的网址路径中使用 example.com/ zh_ / whatever / come / here
  3. 设置获取语言的Cookie
  4. 各方法的缺点分别

    #1

    这使得添加实际子域更加困难,因为您将语言设置为子域,而从技术上讲,它是使用不同语言的相同内容。

    #2

    如果你自己这样做,这个解析URL会更复杂。您必须考虑正在设置或未设置的语言(可能会设置默认语言)。如果您没有设置默认语言,那么您还必须确保所有链接都包含其路径中的语言(如果这种情况并非自动发生)。

    #3

    这样做的缺点是你要保存数据客户端,例如用户可以清除cookie,偏好或语言设置将消失。

    结论

    在上述选项中,第三个是迄今为止最简单的解决方案。不要乱用子域或URL,只需从cookie中读取值并在支持语言时加载语言环境,否则加载默认语言环境。

    这是迄今为止最好的选择,在重建部分应用程序时需要的工作量最少。 (假设你没有“你正在使用的框架”)

    如果您将语言数据保存在没有其他信息的cookie中,那么使用cookie就没有真正的安全缺点。这是因为您没有保存敏感数据,因此任何窃取该Cookie的人都不会知道除了他们希望看到您网站的语言之外的任何内容 - 这在99.9999%的情况下是无关紧要的。

    这是一个略有偏见的答案,因为这个问题依赖于其他人的经验/意见,但事实已经在上面提到过(非常简短,不完整,但它得到了重点)。