如何在应用程序内为 Django 独立应用程序提供翻译?
How to provide translations for django standalone app inside app?
我想在 django-standalone 应用程序中提供翻译文本(makemessages 和编写翻译字符串),以使应用程序支持多种语言。怎么做到的?
目前,我使用from django.utils.translation import gettext
定义翻译字符串。我不想在父项目中 运行 manage.py makemessages
命令并为每个父项目重复编写翻译字符串。
如果您正在使用 Linux,您可以使用此代码:
cd your_app_name
python ../manage.py makemessages
windows 也没有区别,但我从未测试过!
有关翻译目录优先级的更多信息,请阅读 this documentation。
为了 运行 为没有父项目的应用程序制作消息,我制作了以下 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')
在那之后,我能够通过 运行ning
为指定的语言创建第一个 t运行slations
python3 makemessages.py
一次 运行 之后,我能够更新 t运行slation 字符串并使用
编译消息
django-admin makemessages --all
django-admin compilemessages
我想在 django-standalone 应用程序中提供翻译文本(makemessages 和编写翻译字符串),以使应用程序支持多种语言。怎么做到的?
目前,我使用from django.utils.translation import gettext
定义翻译字符串。我不想在父项目中 运行 manage.py makemessages
命令并为每个父项目重复编写翻译字符串。
如果您正在使用 Linux,您可以使用此代码:
cd your_app_name
python ../manage.py makemessages
windows 也没有区别,但我从未测试过!
有关翻译目录优先级的更多信息,请阅读 this documentation。
为了 运行 为没有父项目的应用程序制作消息,我制作了以下 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')
在那之后,我能够通过 运行ning
为指定的语言创建第一个 t运行slationspython3 makemessages.py
一次 运行 之后,我能够更新 t运行slation 字符串并使用
编译消息django-admin makemessages --all
django-admin compilemessages