有用吗?我根据documentation
做settings.py
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = [
('en', _('English')),
('ru', _('Russian')),
]
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
urls.py
urlpatterns += i18n_patterns(
url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
)
壳
django-admin makemessages -l ru
我已将翻译添加到语言环境\ ru \ LC_MESSAGES \ django.po
壳
django-admin makemessages -d djangojs -l ru
django-admin compilemessages
但是来自http://127.0.0.1:8000/ru/jsi18n/的回复不包含来自语言环境的转换\ ru \ LC_MESSAGES \ django.po
我做错了吗?或者它是JavaScriptCatalog中的错误?
答案 0 :(得分:0)
来自https://docs.djangoproject.com/en/1.11/ref/django-admin/#makemessages
--domain DOMAIN, -d DOMAIN . Specifies the domain of the messages files. Supported options are: django for all *.py, *.html and *.txt files (default) . djangojs for *.js files
当您为JavaScript生成PO文件时,您将运行以下内容:
django-admin makemessages -l ru -d djangojs
仅 会为 JavaScript ( djangojs.po )生成翻译存根,它将在JavaScript代码中搜索gettext和其他相关函数以获取“ msgid”)。使用“ compilemessages”进行编译后,您将获得 djangojs.mo 文件。
服务于:
urlpatterns = [
url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
]
将成功转换 gettext 调用,因为默认域为“ djangojs”。如果您通过domain=django
,则将加载django.mo文件中的翻译,但这可能不是使用它的预期方式。