Django按照此处记录的顺序搜索消息文件(.mo): https://docs.djangoproject.com/en/dev/topics/i18n/translation/#how-django-discovers-translations
是否可以让Django首先搜索当前正在使用的应用程序的语言环境目录中的消息文件?
我最近发现了一个项目中的错误,这是由两个具有相同消息ID但翻译不同的应用程序引起的。所有应用程序都有自己的语言环境目录。
答案 0 :(得分:0)
我担心这不是django因各种原因而起作用的方式:
我建议您在INSTALLED_APPS
中重新排序应用以匹配您喜欢的翻译,或者使用LOCALE_PATHS
设置定义新的翻译消息路径,以提供您自己的翻译。
注意:从技术上讲,可以通过提供此模块的自定义实现来覆盖django.utils.translation.trans_real中的默认行为,以根据需要更改行为(它是{此模块中实现选择算法的{1}}方法。然后,您还应该覆盖最初在translation()
模块中定义的Trans
类,以返回您的自定义trans_real模块(例如,将此新类命名为django.utils.translation.__init__
)并将其显式设置为某个位置的转换类你的项目的init模块,以便它在代码的早期加载:
MyCustomTrans
现在可以使用自定义算法,但这需要大量工作,而且我认为不值得麻烦。