Django只翻译一个单词

时间:2016-11-14 02:20:12

标签: django localization internationalization

我正在尝试在Django中对简体中文进行导航栏翻译,但是,只翻译了第一个单词。也就是说,我创建了一个navbar.html,内容如下:

{% load i18n %}
<li><a href="{% url 'homepage' %}">{% trans 'Home' %}</a></li>
<li><a href="{% url 'security' %}">{% trans 'Security' %}</a></li>

然后我做了./manage.py makemessages -l zh_CN并构建了一个包含

的文件django.po
#: templates/navbar.html:20
msgid "Home"
msgstr "首页"

#: templates/navbar.html:25
msgid "Security"
msgstr "安全性"

然后我做了一个./manage.py compilemessages来获取django.mo,它似乎拥有我需要的所有翻译。

this question相反,我的LOCALE_PATHS确实是一个元组:

LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)

我的LocaleMiddlewareSessionMiddleware之后和CommonMiddleware之前,正如文档所指定的那样:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]

尽管如此,只翻译了Home;所有其他模板变量都未翻译。

为了增加一点神秘感,我将导航栏翻译成西班牙语,所有变量都在浏览器中正确翻译。这让我怀疑我的浏览器没有使用正确的语言代码,因此我运行了./manage.py makemessages -l zh-hans并复制了zh_CN目录中的翻译,但没有骰子。

关注this后,我删除了#, fuzzy的所有实例,但无济于事。

我在Django 1.10.3和Python 3.5上。

0 个答案:

没有答案