如何在应用程序内为 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