【问题标题】:Django - Javascript internationalization: translation not rendered in siteDjango - Javascript 国际化:翻译未在站点中呈现
【发布时间】:2015-11-12 23:26:51
【问题描述】:

我关注了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>

【问题讨论】:

    标签: javascript python django internationalization


    【解决方案1】:

    this post 中提供了解决方案,其中指出

    javascript 目录应该添加到 i18n url 模式,而不是 正常模式。

    因此 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 将相应地成为updated

    我们应该在 i18n_patterns 文档中添加一条注释说明:如果使用所有翻译的内容视图,也必须放在其中。

    【讨论】:

      猜你喜欢
      • 2019-06-08
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多