2014-10-10 72 views
2

我正在尋找一種檢測用戶語言的方法。我將默認語言設置爲'en_US',並將我的網站翻譯爲'pt_BR'。我怎樣才能切換語言,並顯示巴西人的'pt_BR'版本和世界其他地區的'en_US'?用Django檢測用戶語言

我閱讀這些文檔鏈接:

https://docs.djangoproject.com/en/dev/topics/http/sessions/

https://docs.djangoproject.com/en/1.7/topics/i18n/translation/

我相信,也許我會不得不採取從用戶的Cookie,瀏覽器偏好這一信息,但我怎麼能做到這一點?

此外,如何測試不同的語言?我必須改變我的瀏覽器語言? OS語言?使用代理?

回答

2

每個用戶的HTTP請求中包含在報頭參數Accept-Language

例子是:

user_langs = request.META.get('HTTP_ACCEPT_LANGUAGE', ['en-US', ]) 
+0

是否有這個頭適用於自動應答語言中間件或設置選項? – 2017-08-22 07:28:33

+0

假設我的答案已過時。 Django引入了''LocaleMiddleware'',它動態地確定用戶的正確語言。請注意,總是有一些邊緣情況。有關更多信息,請參閱[Django的i18n頁面](https://docs.djangoproject.com/en/1.11/topics/i18n/)和[Django如何發現語言首選項](https://docs.djangoproject.com/ EN/1.11 /主題/國際化/翻譯/#如何-的Django發現的語言偏好) – gcerar 2017-08-22 08:28:56