我有django應用程序,它是用於多個電視設備的JavaScript應用程序的後端。每個設備都有不同的前端,但我不認爲創建多個.po文件對於此目標是個好主意,因爲大多數翻譯對於這些設備是重複的。Django的方式爲一種語言或參數化翻譯的多個翻譯
是否可以爲翻譯添加額外的參數,例如在我的情況下,某些帶參數「device」的函數會非常有用?如果沒有,在Django的方式如何做?
我有django應用程序,它是用於多個電視設備的JavaScript應用程序的後端。每個設備都有不同的前端,但我不認爲創建多個.po文件對於此目標是個好主意,因爲大多數翻譯對於這些設備是重複的。Django的方式爲一種語言或參數化翻譯的多個翻譯
是否可以爲翻譯添加額外的參數,例如在我的情況下,某些帶參數「device」的函數會非常有用?如果沒有,在Django的方式如何做?
你可以使用上下文標記脫身:https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#contextual-markers和pgettext()儘管你可能需要手動將它們添加到您的.POT文件作爲標準提取物不會拿起可用的選項生成,如果他們parametised 。
這正是我所需要的。謝謝,它解決了我的問題:) –
我假設你正在使用Django來創建一個API,並且你使用JavaScript來使用API。您可以檢查標題中的用戶代理字符串,並根據請求進行適當的重定向。
是的,Django是我的API,但我需要的是爲一種語言存儲兩種不同版本的翻譯。例如,在一個設備上,後退按鈕稱爲「後退」,在另一個「前一個」上。我想將所有翻譯存儲在.po文件中,而不是存儲在js客戶端中。這就是爲什麼我正在尋找一些方法,如'ugettextByParam(msgID,deviceID)' –
所以你需要翻譯所有版本。至少所有的鑰匙。如果你想將不同的鍵映射到相同的值,你可以做某事。喜歡這個。
#: core/models.py:160
msgid "previous"
msgstr "Previous"
#: core/models.py:161 core/models.py:169
msgid "Back"
msgstr "Previous"
翻譯取決於您發送的請求,例如,當您發送來自瀏覽器的請求時,它發送標題「Accept-Language:en-US,en; q = 0.8,ms; q = 0.6,ja; q = 0.4」將決定哪個語言服務器必須返回輸出。 – Nilesh