Python Django国际化不';无法工作(makemessages无法找到.py文件)
我正在尝试用I18N将我的Django站点国际化。当我做makemessages时。未获取view.py文本的位。我做了以下几件事:Python Django国际化不';无法工作(makemessages无法找到.py文件),python,django,internationalization,Python,Django,Internationalization,我正在尝试用I18N将我的Django站点国际化。当我做makemessages时。未获取view.py文本的位。我做了以下几件事: # my flow PROJECT - LOCALE - MYSITE - urls.py - settings.py - APP1 - views.py - APP2 - APP3 manage.py # settings.py LANGUAGES = ( ('it', 'Italiano'), ('en', 'En
# my flow
PROJECT
- LOCALE
- MYSITE
- urls.py
- settings.py
- APP1
- views.py
- APP2
- APP3
manage.py
# settings.py
LANGUAGES = (
('it', 'Italiano'),
('en', 'English'),
)
LANGUAGE_CODE = 'it'
USE_I18N = True
LOCALE_PATHS = ('home/project/locale/',)
MIDDLEWARE_CLASSES = ( ...
'django.middleware.locale.LocaleMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (...,
'django.core.context_processors.i18n',
)
# views.py
from django.utils.translation import ugettext as tra
text = tra("this is a text")
...
# template.html
...
{% trans 'Dashboard' %}
....
从根目录(其中是manage.py)执行“python manage.py makemessages.py en-l”时,我只会得到一个来自html文件而不是views.py的带有文本的django.po。我还尝试了“python manage.py makemessages.py en-l-e html,py”,但它不起作用。我哪里做错了?
makemessages
在代码中查找非常特定的模式tra()
不是这些模式之一
从中,您可以看到命令行工具被指示查找:
gettext\u noop
,gettext\u lazy
,ngettext\u lazy
,ugettext\u lazy
,ugettext\u lazy
,pgettext
,pgettext\u lazy
,pgettext lazy
(除了可调用的)
将您的视图.py
代码更改为:
from django.utils.translation import ugettext as _
text = _("this is a text")
要遵循广泛使用的gettext
约定,或使用:
from django.utils.translation import ugettext
text = ugettext("this is a text")
最好坚持原版的翻译。*
方法或\
,在这里