【问题标题】:django-admin.py makemessages creates no filesdjango-admin.py makemessages 不创建文件
【发布时间】:2014-11-28 23:38:03
【问题描述】:

我正在尝试为 django 项目启用翻译,django-admin.py makemessages -l de 似乎没有创建任何 .po 文件,尽管模板中有几个 {% trans ... %} 和模型中有几个 gettext(...)测试。 根据文档https://docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-makemessages,该命令应在整个项目树中搜索翻译并在例如创建相应的文件。 conf/locale 目录,如果没有指定设置。 我得到的唯一输出是processing locale ru

有什么方法可以调试它,或者我在 google 中找不到的众所周知的陷阱?

【问题讨论】:

    标签: django localization django-admin translation


    【解决方案1】:

    让我回答我自己的问题:)

    问题是我:

    1. 不是import gettext as _,而是import gettext as t,因此makemessage 无法识别.py 文件中的翻译字符串
    2. 试图转换模板中不存在的变量而不是字符串。 {% trans some_var %} 而不是 {% trans "some_string" %}

    【讨论】:

      【解决方案2】:

      确保您的 settings.py 文件中有以下可用设置:

      DJANGO_ROOT = dirname(dirname(abspath(__file__)))
      SITE_ROOT = dirname(DJANGO_ROOT)
      USE_I18N = True
      
      LOCALE_PATHS = (
          SITE_ROOT + '/locale',
      )
      

      如果没有设置 LOCALE_PATHS 值,则它不知道应该在哪里创建语言环境目录和翻译文件,您也不必为了便于使用而设置 DJANGO_ROOT 和 SITE_ROOT 值。

      【讨论】:

      • 我在settings.py中有这样的:BASE_DIR = os.path.dirname(os.path.dirname(__file__)) LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), )
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多