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

tig*_*tig 10 multilingual localization

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

  1. 检测语言并将其存储在cookie/session中并允许切换语言(并将其存储在cookie/session中)
  2. 如果url中没有指定语言,请使用检测到的语言,并使用不同的语言显示指向url的链接
  3. 使用默认网站语言并显示指向其他语言的链接

在URL中存储langage可以是任何类型:不同的域,子域或url中的某个位置

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

Bal*_*usC 19

将其作为pathinfo的一部分存储在URL中,最好尽可能靠近域名.例如http://example.com/en/pagehttp://en.example.com/page.这不仅是SEO更友好,但它也保证与cookie /无会话客户端一起工作.

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