我想在用戶在url中引入區域設置時更改語言,如http://example.com/es/,http://example.com/es/article-name,http://example.com/en/。如何從Django URL更改語言?
我該怎麼做?
我想在用戶在url中引入區域設置時更改語言,如http://example.com/es/,http://example.com/es/article-name,http://example.com/en/。如何從Django URL更改語言?
我該怎麼做?
它提供了一箇中間件,做你所要求的到底是什麼,所以你不需要在urls.py檢查語言
想到這一點的方法很多。可以說,最「符合標準」的方式是使用標頭HTTP Accept-Language
,該標頭可用於查看request.META['HTTP_ACCEPT_LANGUAGE']
以確定用戶喜歡接收資源的語言,並簡單地以適當的語言返回翻譯的HttpResponse
。
另一種常見的方式,更多地沿着你所描述的方向,是要求用戶在他們第一次到達時選擇一種語言,並將選擇存儲在會話中。用戶做出選擇後,將瀏覽器重定向到適當的語言子目錄,並在視圖中使用相關鏈接,以免擔心跨語言。你可以調整你的URLconf到語言的關鍵字傳遞給您的看法,像這樣:
urlpatterns = patterns('',
(r'^(?P<lang>[a-zA-Z]{2})/ ...
有一個Internationalization/Localization頁關於國際化,可以幫助您開始Django文檔的網站。
相關的使用確實幫助。我也從http://westiseast.co.uk/blog/django-translation-tools/採取了方法,並且我可以在模板中執行{%url changeling'en'%}' – Aitvaras 2014-02-20 12:29:24
目前最好的辦法是使用內置的URL語言前綴圖案: https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#language-prefix-in-url-patterns
+1的¿:) – 2010-06-10 00:53:14
http://stackoverflow.com/questions/13636604/django-i18n-default-language-without-path-prefixes – 2015-06-01 23:04:47