我有一个Django项目,希望使用i18n
来支持不同的语言。
我在模板中写道:
{% load i18n l10n %}
<span>{% trans 'Sun' %}</span>
然后在BASE_DIR
中创建所需的目录:
./locale/LC_MESSAGES/ar
./locale/LC_MESSAGES/ru
我的设置:
LANGUAGE_CODE = 'en-us'
LANGUAGES = (
('en', _('English')),
('ar', _('Arabic')),
('ru', _('Russian')),
)
LOCALE_PATHS = (
join(BASE_DIR, 'locale'),
)
然后运行python manage.py makemessages -a
,创建.po
文件。到目前为止,还不错。。你知道吗
在检查.po
文件时,我看到以下内容(在大量其他行中):
#: myproject/web/templates/reports/mycalendar.html:24
#: venv/lib/python3.5/site-packages/django/utils/dates.py:11
msgid "Sun"
msgstr ""
嘿,他们想让我自己翻译所有来自Django的信息吗??你知道吗
打开文件venv/lib/python3.5/site-packages/django/conf/locale/ar/LC_MESSAGES/django.po
:
msgid "Sun"
msgstr "أحد"
所以,这个词的翻译已经存在了!你知道吗
运行python manage.py compilemessages
-这对这个单词没有影响,它变成了英语。你知道吗
我已经尝试包含本地django的locale路径LOCALE_PATHS
:
from django.conf import locale as django_locale
DJANGO_LOCALE_PATH = abspath(dirname(django_locale.__file__))
LOCALE_PATHS = (
DJANGO_LOCALE_PATH,
join(BASE_DIR, 'locale'),
)
不可能。行仍然出现在我的.po
文件中,msgstr仍然是空的。我试图从我的.po
文件中删除这些行,但是在makemessages
之后它们又出现了。你知道吗
现在的问题是:为什么本机.po文件被忽略,以及如何使用它?你知道吗
Django==1.8.12
目前没有回答
相关问题 更多 >
编程相关推荐