我正在使用Django本地化API为我的网站提供多语言功能。但在生成.po文件后,所有msgstr都是空白的。我没有得到任何翻译的字符串。
以下是setting.py配置
MIDDLEWARE_CLASSES = (
'framework.botdetection_middleware.AvoidBotsMiddleware',
'framework.cl_redirect.MainSiteRedirect',
'framework.ssl_redirect.SSLRedirect',
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.common.CommonMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'framework.wlabel_middleware.CustomDomainMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
'social.apps.django_app.middleware.SocialAuthExceptionMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.locale.LocaleMiddleware',
)
# Implementation of Localiztion
# Path to locale folder
LOCALE_PATHS = (
os.path.join(APP_DIR, 'locale').replace('\\', '/'),
)
# The language your website is starting in
LANGUAGE_CODE = 'en'
# The languages you are supporting
ugettext = lambda s: s
LANGUAGES = (
('en', ugettext('English')),
('fr', ugettext('French')),
('pl', ugettext('Polish')),
)
# Use internationalization
USE_I18N = True
# Use localization
USE_L10N = True
我使用以下命令创建.po文件。
django-admin makemessages --locale=fr --extension=html --ignore=env --ignore=*.py
以下是我得到的输出
msgid "Change Payment Method"
msgstr ""
msgid "Return to Purchase Details"
msgstr
我错过了什么。另外如何在不使用url.py
的情况下加载我的网站的翻译版本答案 0 :(得分:0)
这是正常行为。您必须自己翻译msgstr
部分并使用manage.py compilemessages
进行编译。 RTFM。