如何在Django中禁用默认翻译值?

Jas*_*nTS 3 django translation internationalization

有些标签在不设置*.po文件的情况下为我翻译了单词.

{% trans "groups" %}
{% trans "users" %}
Run Code Online (Sandbox Code Playgroud)

不幸的是,在创建*.po文件并运行时,它们不会被覆盖:

django-admin.py compilemessages
Run Code Online (Sandbox Code Playgroud)

那么如何摆脱默认翻译呢?我更喜欢项目级别的解决方案,因为我不想修改Django核心文件.

okm*_*okm 5

有几种方法可以覆盖它

  • 在设置文件中的LOCALE_PATHS中设置您的语言环境路径,这将为您的翻译提供更高的优先级.
  • 将msgid更改为与Django使用的不同.然后提供将要使用的语言的翻译.msgid可以是任何加上基本字符串,只要它的唯一和转换器友好,例如命名空间前缀:{% trans "my:groups" %}
  • Django1.3 +的上下文标记,然后它看起来像{% trans "groups" context "my" %}