Django - Javascript 国际化:翻译未在站点中呈现
Django - Javascript internationalization: translation not rendered in site
我已经关注了docs.
./manage.py makemessages -d djangojs
工作正常。
./manage.py compilemessages
创建了相关的 .po
文件
但是,翻译不是在现场进行的。
urls.py
js_info_dict = {
'packages': ('market',),
}
urlpatterns = [url(r'^jsi18n/$', javascript_catalog, js_info_dict), ]
urlpatterns += i18n_patterns(
url(r'^$', HomePage.as_view(), name='home'),
)
settings.py
LOCALE_PATHS = (
pjoin(BASE_DIR, '00', 'locale'),
)
# Middleware ===================================================================
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
# Internationalization =========================================================
LANGUAGE_CODE = 'en'
TIME_ZONE = 'Europe/Paris'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = (
('en', gettext_noop('English')),
('fr', gettext_noop('French')),
)
home.html(脚本加载成功)
<script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' %}"></script>
this post 中提供了解决方案,其中指出
javascript catalog should be added to i18n urls patterns, not to
normal patterns.
因此urls.py必须改为:
js_info_dict = {
'packages': ('market',),
}
urlpatterns += i18n_patterns(
url(r'^$', HomePage.as_view(), name='home'),
url(r'^jsi18n/$', javascript_catalog, js_info_dict),
)
Django documentation will be updated相应地:
We should add a note in the i18n_patterns documentation stating: if used all translated content views must also be placed within it.
我已经关注了docs.
./manage.py makemessages -d djangojs
工作正常。
./manage.py compilemessages
创建了相关的 .po
文件
但是,翻译不是在现场进行的。
urls.py
js_info_dict = {
'packages': ('market',),
}
urlpatterns = [url(r'^jsi18n/$', javascript_catalog, js_info_dict), ]
urlpatterns += i18n_patterns(
url(r'^$', HomePage.as_view(), name='home'),
)
settings.py
LOCALE_PATHS = (
pjoin(BASE_DIR, '00', 'locale'),
)
# Middleware ===================================================================
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
# Internationalization =========================================================
LANGUAGE_CODE = 'en'
TIME_ZONE = 'Europe/Paris'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = (
('en', gettext_noop('English')),
('fr', gettext_noop('French')),
)
home.html(脚本加载成功)
<script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' %}"></script>
this post 中提供了解决方案,其中指出
javascript catalog should be added to i18n urls patterns, not to normal patterns.
因此urls.py必须改为:
js_info_dict = {
'packages': ('market',),
}
urlpatterns += i18n_patterns(
url(r'^$', HomePage.as_view(), name='home'),
url(r'^jsi18n/$', javascript_catalog, js_info_dict),
)
Django documentation will be updated相应地:
We should add a note in the i18n_patterns documentation stating: if used all translated content views must also be placed within it.