django 1.10翻译,虽然语言切换,但没有翻译出现

时间:2016-08-29 12:55:36

标签: python django

我正在使用Django 1.10。我想要的是,将中文翻译添加到我的页面。

虽然该语言已切换为zh-hans,但翻译未成功显示。

我指的是官方指南https://docs.djangoproject.com/en/1.10/topics/i18n/translation/ 这是我的代码中的内容。 (我正在使用当地)

settings.py

...
MIDDLEWARE = [
    ...
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]
TEMPLATES = [
    { ...
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.i18n',
                ...
            ],},},]
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LOCALE_PATHS = (os.path.join(BASE_DIR, 'locale'))
...

index.html ,位于“主页”应用中:

...
<!-- Current language: {{ LANGUAGE_CODE }} -->
<p>{% blocktrans %}Harbor. Shelter. WC. SDK.{% endblocktrans %}</p>
...

django.po ,位于(root)/ locale / zh_hans / LC_MESSAGES

#: home/templates/home/index.html:23 msgid "Harbor. Shelter. WC. SDK." msgstr "高端黑"

然后我重新编译了消息,重新启动了服务器,然后重新加载了页面。  (我使用了go-incognito,这意味着没有缓存。)

从评论部分的{{LANGUAGE_CODE}},我可以看到语言切换得非常好,已经是“zh-hans”。

然而,翻译没有显示,字符串仍然是“Harbour.Shelter.WC.SDK。”,仍未翻译。

出了什么问题?我错过了什么?

1 个答案:

答案 0 :(得分:0)

鉴于你很久以前发布了这个问题,你可能已经解决了这个问题,但这是我发现的作品。以为我为了以防万一而告诉您。

我发现的解决方案(我不知道它为什么有效......必须是一个错误)是创建一个带有下划线和大写字母H的语言环境文件夹。

所以它看起来像:

django-admin makemessages -l zh_Hans