我想在django-standalone应用程序中提供翻译文本(makemessages和写翻译字符串),以使应用程序支持多种语言。怎样才能做到呢?
目前,我使用from django.utils.translation import gettext
定义翻译字符串。我不想在父项目中运行manage.py makemessages
命令,并为每个父项目重复编写翻译字符串。
如果您使用的是Linux,您可以使用以下代码:
cd your_app_name
python ../manage.py makemessages
在窗口也没有区别,但我从来没有测试过!
要了解更多信息和理解翻译目录的优先级,请阅读此文档。
为了在没有父项目的情况下运行makemessages,我制作了以下python脚本makemessages.py
,我把它放在我的应用程序根目录中:
#!/usr/bin/env python
import sys
import django
from django.conf import settings
from django.core.management import call_command
from django.utils.translation import gettext_lazy as _
settings.configure(DEBUG=True,
LANGUAGES = [
('fi', _('Suomi')),
('en', _('English')),
],
USE_I18N = True,
USE_L10N = True,
USE_TZ = True,
LOCALE_PATHS = (
'locale/',
)
)
django.setup()
call_command('makemessages', '-l', 'fi', '-l', 'en')
之后,我能够通过运行
创建指定语言的第一个翻译。python3 makemessages.py
运行一次后,我能够更新翻译字符串并使用
编译消息django-admin makemessages --all
django-admin compilemessages