我在翻譯我的Django應用程序,其中有一個推送通知模塊。從該模塊,我發送一個文本字段到用戶的移動設備。由於這些通知的觸發器不是正確的HTTP請求(使用其「請求」對象),因此默認的Django字符串翻譯方式不起作用。沒有請求對象的Django翻譯
我在每個用戶配置文件中都有一個首選語言的字段,所以我認爲我應該編寫一些中間件,以便與該字段匹配正確的翻譯。
有沒有辦法做到這一點?
我在翻譯我的Django應用程序,其中有一個推送通知模塊。從該模塊,我發送一個文本字段到用戶的移動設備。由於這些通知的觸發器不是正確的HTTP請求(使用其「請求」對象),因此默認的Django字符串翻譯方式不起作用。沒有請求對象的Django翻譯
我在每個用戶配置文件中都有一個首選語言的字段,所以我認爲我應該編寫一些中間件,以便與該字段匹配正確的翻譯。
有沒有辦法做到這一點?
您正在尋找translation.override
情況管理器:
language = user.get_language()
with translation.override(language):
# Translate your message here.
中間件取決於請求一樣,所以不知道爲什麼你認爲會有幫助。但Django文檔明確描述了[如何在視圖之外設置語言](https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#using-translations-outside-views-and-templates )。 –