如何在模型或管理中的當前線程中獲取當前語言?如何在django中獲取當前語言?
回答
特別感興趣的功能是django.utils.translation.get_language()
,它返回當前線程中使用的語言。見documentation。
鏈接現在被破壞,應該是[this one](https://docs.djangoproject.com/es/1.9/ref/utils/#django.utils.translation.get_language)。 – LostMyGlasses 2016-03-03 11:47:14
注意事項:*如果翻譯暫時停用(通過deactivate_all()或當None傳遞到override()時,則返回None。在Django 1.8之前,get_language()在停用翻譯時總是返回LANGUAGE_CODE * – Pieter 2017-01-03 13:11:54
您可以閱讀系統的locale
獲取語言信息。
您的主題爲-3,但我認爲這個問題很模糊 - 「我的網絡的當前語言」。猜測這不意味着你的錯誤意味着操作系統。 – mikemaccana 2011-10-25 12:34:45
或者你也可以在你的觀點得到這個
request.LANGUAGE_CODE
我投票贊成(由於某種原因從-1開始)。請注意以下內容(來自http://docs.djangoproject.com/en/dev/topics/i18n/deployment/#how-django-discovers-language-preference),使用靜態(無中間件)轉換,語言處於設置.LANGUAGE_CODE,而動態(中間件)翻譯,它在request.LANGUAGE_CODE。「 – 2010-12-01 18:10:12
該鏈接已死亡,我沒有理由不使用上述文檔接受的解決方案:'django.utils.translation.get_language()' – qris 2014-04-02 13:52:44
嘗試在例如模型中獲得語言是不可能的,如果沒有請求,我認爲''''''''''''''''''''''''''''''''''''總是一個更好的解決方案 – Hussam 2015-09-15 11:38:41
我想補充的是,如果你使用django.utils.translation.get_language()
,那麼你應該記住,如果該代碼段將被異步調用(例如,作爲芹菜任務),那麼這種方法將不會工作,因爲它運行在不同的線程中。
這裏明顯的做法是通過語言作爲任務參數ter,然後用翻譯設置語言。激活(語言) – xyzman 2015-06-02 12:49:42
請注意您使用語言的方法。根據哪種方法,Django將使用不同的方式和信息來確定使用正確的語言。
當使用django.utils.translation.get_language()
函數時,它鏈接到線程語言。在Django 1.8之前,當翻譯被禁用時,它總是返回settings.LANGUAGE_CODE
。如果你想手動覆蓋線程的語言,你可以使用override()
或activate()
功能,這是不是很明確點名,但好,還是有用的:
from django.utils import translation
with translation.override('fr'):
print(_("Hello")) # <= will be translated inside the with block
translation.activate('fr') # <= will change the language for the whole thread.
# You then have to manually "restore" the language with another activate()
translation.activate('en') # <= change languages manually
如果你想Django的檢查路徑和/或請求(語言cookie,...),這是很常見的例如www.example.com/en/<somepath>
vs www.example.com/fr/<somepath>
,使用django.utils.translation.get_language_from_request(request, check_path=False)
。此外,它總是會返回一個有效的語言集settings.LANGUAGES
我發現它不是很容易通過谷歌關於這個主題找到這些差異,所以在這裏它是進一步的參考。
請注意,它是'django.utils.translation',而不是翻譯。所提供的鏈接中存在拼寫錯誤。在代碼片段中是正確的。 – J0ANMM 2017-06-13 06:43:10
@ J0ANMM:謝謝,修正;) – achedeuzot 2017-06-13 10:50:05
+1爲'django.utils.translation.get_language()'和'django.utils.translation.get_language_from_request(request,check_path)'之間的區別。如果在視圖中,你應該使用'check_path = True'來獲取模板將被渲染的語言。 – 2017-07-25 06:29:41
- 1. 如何在django上獲取當前語言環境的「short_date_format」?
- 2. 獲取TYPO3當前語言
- 3. 在CultureInfo中獲取當前語言
- 4. Django的:在當前語言
- 5. 獲取C#中的當前語言
- 6. 獲取當前TTS語音的語言
- 7. django:獲取templatetag中的當前語言環境
- 8. 如何在joomla 2.5中獲取當前語言的方向?
- 9. 在xamarin中,如何獲取Android設備的當前語言?
- 10. 如何在Apple Watch中獲取Siri的當前語言
- 11. django admin - 從i18n獲取對象的語言 - *不*當前語言的管理員
- 12. $語言 - >語言獲取默認語言不是當前語言[Drupal 7]
- 13. 獲取當前語言的Android設備
- 14. Thmeleaf獲取當前語言環境
- 15. django i18n - 獲取不同語言的當前路徑
- 16. Django模板:以另一種語言獲取當前網址
- 17. 如何獲取控制器中的當前語言?
- 18. 如何獲取symfony 2.3中的當前語言環境?
- 19. 如何獲取Sharepoint(MOSS)2007中的當前語言或變體?
- 20. 如何獲取CakePHP中的當前語言代碼?
- 21. 如何使用LocaleInfo獲取GWT中的當前語言環境
- 22. 如何獲取當前的密鑰語言?
- 23. 十月CMS如何獲取當前的語言環境名稱?
- 24. 如何獲取Android上的當前語言設置
- 25. iOS:如何獲取當前應用語言
- 26. 如何使用WP_Query獲取當前語言的woocommerce產品?
- 27. 如何從當前顯示語言獲取Windows文本資源
- 28. 如何從Spring MVC獲取當前使用的語言環境?
- 29. 如何獲取當前輸入語言C++?
- 30. qmake語言,如何獲取當前文件夾名稱?
請具體說明。 '我的網站的語言' - 你的意思是網絡請求,網絡服務器,還是什麼? – mikemaccana 2011-10-25 12:36:17