如何使用django-admin.py makemessages --all
我正在尝试在我的Django项目中创建消息文件。
为此,我在我的主页视图函数中写了这个:
def startpage(request):
# Translators: This message appears on the home page only
output = _("Welcome to my site.")
然后在settings.py文件中,我做了这个:
from django.utils.translation import ugettext_lazy as _
LANGUAGES = [
('de', _('German')),
('en', _('English')),
('fr', _('French')),
('es', _('Spanish')),
('pt', _('Portuguese'))
]
接着我在我的应用程序里创建了一个locale
目录。
现在我在我的应用程序目录下,输入了这个命令:
django-admin.py makemessages --all
结果却出现了这个:
#!C:\workspace\newsportal\venv_np\Scripts\python.exe
# EASY-INSTALL-SCRIPT: 'django==1.6','django-admin.py'
__requires__ = 'django==1.6'
import pkg_resources
pkg_resources.run_script('django==1.6', 'django-admin.py')
并没有在locale
目录下创建消息文件。
我尝试了这个:
python manage.py makemessages --all
但是它找不到manage.py
,因为我在我的应用程序目录里,而不是在项目的根目录。通常应该怎么做呢?
1 个回答
20
你只需要把你的语言目录路径添加到 LOCALE_PATHS
里。例如:
LOCALE_PATHS = [
os.path.join(BASE_DIR, "locale"),
os.path.join(BASE_DIR, "yourapp/locale"),
]
一旦你在项目中加入了一些需要翻译的文本,就可以对每种你想翻译的语言执行这个命令。在你的情况下:
django-admin.py makemessages -l de
django-admin.py makemessages -l en
django-admin.py makemessages -l fr
django-admin.py makemessages -l es
django-admin.py makemessages -l pt
然后翻译所有的文本并进行编译。我推荐使用 django-rosetta,这是一个可以简化你Django项目翻译过程的应用。
django-admin.py makemessages --all
现在一切应该都能正常工作了