我正在尝试在Django模板中设置模板翻译,我有点不知道为什么它不起作用。我已经按照文档进行了操作,但我想我错过了一件让它绊倒的小事。
我做了以下事情:
USE_I18N = True
LOCALE_PATHS = (os.path.join(BASE_DIR, 'locale/'),)
LANGUAGE_CODE = 'en-us'
LANGUAGES = [('en-us', _('English - US')), ('zh-hans', _('简体中文')), ('es', _('Spanish'))]
{% load i18n %}
添加到模板顶部{% trans %}
个标记添加到模板中,如下所示:<a href="{% url 'about-us' %}">{% trans 'About' %}</a>
./manage.py makemessages -l es
并在语言环境路径中获取.po文件,因此我知道它正在查找所有模板标记。./manage.py compilemessages
并在区域设置路径中获取.mo文件我将这两行添加到模板中以确保正在设置语言代码。
{% get_current_language as LANGUAGE_CODE %}
<h2>Current Language Code: {{ LANGUAGE_CODE }}</h2>
然后我能够看到正在设置正确的语言代码。
我也在使用本教程的模板来设置语言: http://joaoventura.net/blog/2016/django-translation-4/
据我所知,正在应用翻译,因为表单中的选择菜单更新了语言(在代码方面)。我假设这是在i18n应用程序中使用区域设置文件。
我还注意到它正在管理界面中正确地获取翻译。
我在OS X 12.12.6上使用Django 1.11.6和Python 3.6.3。
我感到困惑的是,我还能遗失什么?