Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django没有为第三方应用程序获取覆盖的翻译_Django_Django Apps_Django I18n - Fatal编程技术网

Django没有为第三方应用程序获取覆盖的翻译

Django没有为第三方应用程序获取覆盖的翻译,django,django-apps,django-i18n,Django,Django Apps,Django I18n,我安装了一个第三方应用程序,它的模板中有翻译标签,还提供了几种语言的翻译,但我想只为一种语言更改一些翻译 我运行了makemessages命令,这些第三方应用程序的msgid很好地显示在我自己的.po文件中,该文件位于我用作LOCALE\u路径的文件夹中。然后,我为他们添加了相应的msgstr,运行了compilemessages,希望我的翻译覆盖第三方应用程序提供的翻译,但是,即使我自己的.po/.mo文件中的其他翻译正确显示,我仍然可以看到应用程序提供的翻译 这个过程确实可以覆盖Django

我安装了一个第三方应用程序,它的模板中有翻译标签,还提供了几种语言的翻译,但我想只为一种语言更改一些翻译

我运行了
makemessages
命令,这些第三方应用程序的
msgid
很好地显示在我自己的
.po
文件中,该文件位于我用作
LOCALE\u路径的文件夹中。然后,我为他们添加了相应的
msgstr
,运行了
compilemessages
,希望我的翻译覆盖第三方应用程序提供的翻译,但是,即使我自己的
.po
/
.mo
文件中的其他翻译正确显示,我仍然可以看到应用程序提供的翻译

这个过程确实可以覆盖Django管理界面中的翻译(我使用的是完全相同的
.po
文件),所以我不确定在这种情况下应该采取什么不同的做法。应用程序中是否有一些设置可以防止覆盖翻译

我尝试了一切,直到重新启动Web服务器,重建我正在使用的Docker映像,等等,但我只有在删除应用程序的
.mo
文件后才能看到我自己的翻译,这确实表明我的
compilemessages
工作正常,例如,将我的应用程序翻译添加到我自己的
.mo
文件中,但显然Django优先选择应用程序的
.mo
文件,而不是我的文件,尽管声明来自我的
区域设置路径的语言应具有最高优先级


我在这里遗漏了什么?

在本例中,第三方应用程序提供的
django.po
文件遗漏了一行
复数形式,而试图覆盖翻译的
django.po
文件确实有这一行,这显然使Django无法将它们匹配在一起

在创建了第三方应用程序的一个分支后,我使用
复数形式
行创建了
django.po
/
django.mo
文件,我能够毫无问题地覆盖默认翻译