Django不为我的项目创建locale po文件

时间:2014-07-07 12:55:19

标签: django localization

看起来django不想为我的项目创建/更新.po文件(或者django不知道我正在使用任何其他语言)。

# mkdir locale
# python manage.py makemessages --all
# ls locale/
# (empty dir)

但是:

# mkdir locale
# python manage.py makemessages -l ru-ru
# ls locale/
# ru-ru  (will create ru-ru directory)

但如果在此文件中进行修改,那么执行compilemessages -l ru-ru - django将不会使用应用它,并且似乎此修改不会对任何内容做出反应。

这是我的settings.py

TIME_ZONE = "Europe/Moscow"
LANGUAGE_CODE = 'ru-ru'

SITE_ID = 1
USE_I18N = True
USE_L10N = True

MIDDLEWARE_CLASSES = (
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.locale.LocaleMiddleware',
   'django.middleware.common.CommonMiddleware',
   'django.middleware.clickjacking.XFrameOptionsMiddleware',
   'cms.middleware.user.CurrentUserMiddleware',
   'cms.middleware.page.CurrentPageMiddleware',
   'cms.middleware.toolbar.ToolbarMiddleware',
   "account.middleware.TimezoneMiddleware",
)

TEMPLATE_CONTEXT_PROCESSORS = (
  'django.contrib.auth.context_processors.auth',
  'django.core.context_processors.i18n',
  'django.core.context_processors.debug',
  'django.core.context_processors.request',
  'django.core.context_processors.media',
  'django.core.context_processors.csrf',
  'django.core.context_processors.tz',
)

我做错了什么?

谢谢

3 个答案:

答案 0 :(得分:2)

我怀疑你还需要设置LOCALE_PATHS

答案 1 :(得分:2)

如果它们不存在,您需要逐个创建.po文件:

django-admin makemessages -l ru-ru

然后你可以使用-a / - 更新所有.po文件的所有参数:

django-admin makemessages -a

除此之外,还需要设置LOCALE_PATHS

答案 2 :(得分:1)

如果代码中的任何翻译字符串发生了变化,您需要执行两个步骤。

首先,您需要使用django-admin.py makemessages -a更新现有的消息文件,然后使用.po编译django-admin.py compilemessages个文件,请参阅https://docs.djangoproject.com/en/dev/topics/i18n/translation/#message-files