0

我在翻譯我的Django應用程序,其中有一個推送通知模塊。從該模塊,我發送一個文本字段到用戶的移動設備。由於這些通知的觸發器不是正確的HTTP請求(使用其「請求」對象),因此默認的Django字符串翻譯方式不起作用。沒有請求對象的Django翻譯

我在每個用戶配置文件中都有一個首選語言的字段,所以我認爲我應該編寫一些中間件,以便與該字段匹配正確的翻譯。

有沒有辦法做到這一點?

+1

中間件取決於請求一樣,所以不知道爲什麼你認爲會有幫助。但Django文檔明確描述了[如何在視圖之外設置語言](https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#using-translations-outside-views-and-templates )。 –

回答

2

您正在尋找translation.override情況管理器:

language = user.get_language() 
with translation.override(language): 
    # Translate your message here. 
+0

有一件事要指出,語言只在'with'語句中設置,所以要特別注意(或不要使用)[懶惰翻譯](https://docs.djangoproject.com/en/dev/topics/i18n /翻譯/#懶惰翻譯)裏面或你可能會得到意想不到的結果 – dnaranjo

+0

工作得很好,謝謝! – Pau

相關問題