2014-08-31 71 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了解更多详情。