如何为django独立应用内部的应用提供翻译?



我想在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

相关内容

  • 没有找到相关文章

最新更新