django-admin.py makemessages不会创建任何文件

时间:2014-10-03 21:19:34

标签: django localization django-admin translation

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

任何调试方法或者谷歌中没有找到的众所周知的陷阱?

2 个答案:

答案 0 :(得分:3)

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

问题在于我:

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

答案 1 :(得分:0)

确保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值。