2010-06-10 65 views

回答

8

結帳django-locale-url

它提供了一箇中間件,做你所要求的到底是什麼,所以你不需要在urls.py檢查語言

+2

鏈接給出了403. – phunehehe 2011-06-12 04:00:21

+0

但是我聽說localeurl猴子補丁核心django功能。這是我非常關心的問題。 – 2011-07-19 17:33:52

+1

該中間件目前未被維護,django中有一個內置的選項,它帶有url模式的語言前綴 – chaim 2015-12-03 09:13:35

3

想到這一點的方法很多。可以說,最「符合標準」的方式是使用標頭HTTP Accept-Language,該標頭可用於查看request.META['HTTP_ACCEPT_LANGUAGE']以確定用戶喜歡接收資源的語言,並簡單地以適當的語言返回翻譯的HttpResponse

另一種常見的方式,更多地沿着你所描述的方向,是要求用戶在他們第一次到達時選擇一種語言,並將選擇存儲在會話中。用戶做出選擇後,將瀏覽器重定向到適當的語言子目錄,並在視圖中使用相關鏈接,以免擔心跨語言。你可以調整你的URLconf到語言的關鍵字傳遞給您的看法,像這樣:

urlpatterns = patterns('', 
    (r'^(?P<lang>[a-zA-Z]{2})/ ... 

有一個Internationalization/Localization頁關於國際化,可以幫助您開始Django文檔的網站。

+0

相關的使用確實幫助。我也從http://westiseast.co.uk/blog/django-translation-tools/採取了方法,並且我可以在模板中執行{%url changeling'en'%}' – Aitvaras 2014-02-20 12:29:24