2010-05-05 48 views
10

我有一個網站,其所有內容翻譯成多種語言,並沒有帳戶(在那裏設置首選語言)。 我可以使用Accept-Language,ip或其他任何東西來檢測首選語言。 我有3種方式來存儲用戶的語言選擇:在多語言網站上存儲選定語言的位置:會話/ cookie或url?

  1. 檢測語言並將其存儲在cookie的/會話,並允許切換語言(也是其存儲在cookie的/會話)
  2. 使用檢測的語言,如果沒有在URL指定的語言,以及表演環節以不同語言版本的網址
  3. 使用默認網站語言和表演鏈接到其他語言

存儲在URL langage可以是任何類型的:不同的域,子域,或在某處網址

我想到了第一種情況,因爲它允許我發送一個網址給任何人,並且會以他們的首選語言向他們展示。但另一種觀點認爲,不同的語言意味着不同的數據,因此它必須有不同的聯繫。

回答

19

將其作爲pathinfo的一部分存儲在URL中,最好儘可能靠近域名。例如。 http://example.com/en/pagehttp://en.example.com/page。不僅SEO更友好,而且它也保證與cookie/session-less客戶端一起工作。

您也可以選擇組合。如果客戶端支持cookies,則可以使用它來存儲「首選」語言。如果會話中缺少此信息,則重定向到顯示最匹配Accept-Language標題的語言的URL,並將該語言存儲在會話中(這在大多數編程語言/框架中已經由cookie支持) 。如果用戶更改了此信息,那麼也反映會話中的更改。

+0

非常全面和合理的答案。 – 2010-05-05 16:04:08