2014-08-31 69 views
0

我已經爲pl語言環境創建了一個.po文件並翻譯了所有字符串。除「登錄」字符串外,一切正常。我將「登錄」翻譯成「Zaloguj」,但是在HTML中它顯示爲「Zalogujsię」,儘管這樣的翻譯甚至不會出現在我的.po文件中。我認爲「登錄」非常流行,Django提供了即時翻譯(如錯誤消息),但它在任何地方都有記錄?Django i18n使用它自己的翻譯

我想知道如何強制使用我的翻譯,而不是Django的翻譯。謝謝。

回答

0

Django按以下順序發現翻譯,試圖實現本地資源獲得比更多全局翻譯更高的優先級。從文檔:

  1. 在LOCALE_PATHS列出的目錄具有最高的優先級,與出現第一個具有比後面出現的那些優先級高的人。
  2. 然後,它查找並使用它是否存在INSTALLED_APPS中列出的每個已安裝應用程序中的區域設置目錄。首先出現的優先級高於後來出現的優先級。
  3. 最後,Django在django/conf/locale中提供的基礎翻譯被用作後備。

所以我想的問題是,如果你把你的LOCALE_PATHS(1)或INSTALLED_APPS(2)以正確的順序。請注意,如果第三方應用放在他們面前,它們可能會否決自己的翻譯。

查看https://docs.djangoproject.com/en/dev/topics/i18n/translation/#how-django-discovers-translations瞭解更多詳情。