Django-Javascript国际化:未在网站中呈现翻译 [英] Django - Javascript internationalization: translation not rendered in site

查看:123
本文介绍了Django-Javascript国际化:未在网站中呈现翻译的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已遵循文档.

./manage.py makemessages -d djangojs正常工作.

./manage.py compilemessages创建了相关的.po文件

但是,翻译不会在网站上进行.

However, the translation is not performed on site.

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

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(脚本已成功加载)

home.html (The script is successfully loaded)

<script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' %}"></script>

推荐答案

该解决方案在

The solution was provided in this post, which states that

javascript目录应添加到i18n网址格式,而不是 正常模式.

javascript catalog should be added to i18n urls patterns, not to normal patterns.

因此,urls.py必须更改为:

Therefore urls.py must be changed to:

js_info_dict = {
    'packages': ('market',),
}

urlpatterns += i18n_patterns(
    url(r'^$', HomePage.as_view(), name='home'),
    url(r'^jsi18n/$', javascript_catalog, js_info_dict),
)

Django文档将相应地更新:

我们应该在i18n_patterns文档中添加一条注释,指出:如果使用了所有翻译后的内容视图,也必须将其放置在其中.

We should add a note in the i18n_patterns documentation stating: if used all translated content views must also be placed within it.

这篇关于Django-Javascript国际化:未在网站中呈现翻译的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆