我为pl语言环境创建了一个.po文件并翻译了所有字符串。除了“登录”字符串外,一切正常。我将“登录”翻译成“Zaloguj”,但在HTML中它显示为“Zalogujsię”,尽管这种翻译甚至没有出现在我的.po文件中。我想“登录”是如此受欢迎,以至于Django提供开箱即用的翻译(如错误消息),但它是否记录在任何地方?
我想知道如何强制使用我的翻译而不是Django的翻译。感谢。
答案 0 :(得分:0)
Django按以下顺序发现翻译,尝试实现本地资源优先于更多全局翻译。来自文档:
- LOCALE_PATHS中列出的目录具有最高优先级,首先出现的目录优先级高于稍后出现的目录。
- 然后,它会查找并使用它是否存在于INSTALLED_APPS中列出的每个已安装应用程序中的语言环境目录。首先出现的优先级高于后来出现的优先级。
- 最后,Django在django / conf / locale中提供的基本翻译被用作后备。
醇>
所以我想问题是你是否按正确的顺序放置了LOCALE_PATHS
(1)或INSTALLED_APPS
(2)。请注意,如果第三方应用被放在他们面前,他们可能会否决您自己的翻译。
有关详细信息,请参阅https://docs.djangoproject.com/en/dev/topics/i18n/translation/#how-django-discovers-translations。