看起来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',
)
我做错了什么?
谢谢
答案 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。