在多语言网站上存储选定语言的位置:会话/ cookie或URL?

时间:2010-05-05 15:51:39

标签: localization multilingual

我有一个网站,其所有内容都已翻译成多种语言,并且没有帐户(在那里设置首选语言)。 我可以使用Accept-Language,ip或其他任何方式检测首选语言。 我有3种方法来存储用户语言选择:

  1. 检测语言并将其存储在cookie / session中并允许切换语言(并将其存储在cookie /会话中)
  2. 如果网址中未指定语言,则使用检测到的语言,并显示指向不同语言网址的链接
  3. 使用默认网站语言并显示指向其他语言的链接
  4. 在网址中存储langage可以是任何类型:不同的域,子域或url中的某个地方

    我考虑第一种情况,因为它允许我向任何人发送一个网址,它将以他们的首选语言呈现给他们。但另一种观点认为,不同的语言意味着不同的数据,因此必须有不同的链接。

1 个答案:

答案 0 :(得分:19)

将其作为pathinfo的一部分存储在URL中,最好尽可能靠近域名。例如。 http://example.com/en/pagehttp://en.example.com/page。它不仅更友好,而且还保证与cookie /无会话客户合作。

您也可以选择组合。如果客户端支持cookie,您可以使用它来存储“首选”语言。如果会话中缺少此信息,则重定向到显示与Accept-Language标头最匹配的语言的URL,并将该语言存储在会话中(通过已支持的方式在大多数编程语言/框架中)通过cookie)。如果用户更改了此信息,则也会反映会话中的更改。