[英]What is the best way to store a chosen language in a bilingual web application?
我想到了幾種方法:
得到。 即類似www.domain.com,www.domain.com / lang / de
會議。
數據庫。
我很好奇這個領域的行業標准是什么。
Cookie方法在公共計算機(網吧等)上會變得非常煩人。
為了獲得最佳SEO結果,無論如何,您都應該為不同的語言設置URL,但是我通常還會在會話中存儲所選的語言。 當然這會在瀏覽器關閉時到期,但是當用戶進入該站點時,我總是檢查Accept-Language標頭,並根據此標頭確定起始語言。
如果您具有自動登錄功能,也可以將所選語言保存在數據庫中。
您無法在GET上存儲信息,而且您需要重寫URL使其看起來像這樣www.domain.com/lang/de,但這確實使您的應用程序搜索引擎友好。
對於您的答案,我將使用您所說的GET + Cookies。
數據庫-您將需要一個表,或者如果您已有用戶表,則至少需要一個字段。
會話用戶每次都應該將自己設置為語言,這有點無聊!
GET方法將要求用戶每次都轉到起始頁面,即使該用戶直接鏈接到內部內容也是如此。 否則,您將無法使用get,否則您必須將其包含在每個鏈接中。 會話方法將過期並忘記用戶。 該數據庫很好,但是用戶將必須登錄,然后以自己的語言查看該網站。 我認為最好的方法是使用Cookie。
好...
嘗試進行初始設置的一種好方法是使用Zend_Locale通過其OS /瀏覽器設置來檢測用戶的語言。 但是,如果執行此操作,則應始終讓用戶覆蓋您檢測到的值(並將其保存在會話或數據庫設置中)
這完全取決於您。 您將很難找到“標准”。
您可以根據會話中存儲的值在引導程序中更改默認的應用程序區域設置。 這樣,如果您要添加新的語言,則可以獲得更大的靈活性,如果所有代碼都是基於本地用戶構建的,則只需創建一個新的翻譯文件。 這也將簡化日期/時間和金錢顯示過程,因為它們也基於區域設置。
法語語言環境,即:fr_FR或fr_CA(用於法語加拿大的法語)英語語言環境ID:en_US或en_UK(用於英語美國或英語United Kindom)
然后如果您必須顯示貨幣,則本地貨幣將設置好貨幣符號(但不會進行價格轉換)(即fr_FR->€和fr_CA-> $)
您可以根據用戶基於其IP地址的地理位置來選擇默認語言
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.