Django i18n使用它自己的翻译

时间:2014-08-31 16:12:33

标签: django-i18n

我为pl语言环境创建了一个.po文件并翻译了所有字符串。除了“登录”字符串外,一切正常。我将“登录”翻译成“Zaloguj”,但在HTML中它显示为“Zalogujsię”,尽管这种翻译甚至没有出现在我的.po文件中。我想“登录”是如此受欢迎,以至于Django提供开箱即用的翻译(如错误消息),但它是否记录在任何地方?

我想知道如何强制使用我的翻译而不是Django的翻译。感谢。

1 个答案:

答案 0 :(得分:0)

Django按以下顺序发现翻译,尝试实现本地资源优先于更多全局翻译。来自文档:

  
      
  1. LOCALE_PATHS中列出的目录具有最高优先级,首先出现的目录优先级高于稍后出现的目录。
  2.   
  3. 然后,它会查找并使用它是否存在于INSTALLED_APPS中列出的每个已安装应用程序中的语言环境目录。首先出现的优先级高于后来出现的优先级。
  4.   
  5. 最后,Django在django / conf / locale中提供的基本翻译被用作后备。
  6.   

所以我想问题是你是否按正确的顺序放置了LOCALE_PATHS(1)或INSTALLED_APPS(2)。请注意,如果第三方应用被放在他们面前,他们可能会否决您自己的翻译。

有关详细信息,请参阅https://docs.djangoproject.com/en/dev/topics/i18n/translation/#how-django-discovers-translations