跳转到主要内容

翻译Django .po文件

项目描述

Django应用,用于翻译Django .po文件。它使用deep-translatorpolib

安装

当使用pip时

pip install django-translatemessages

当使用poetry时

poetry add django-translatemessages

配置

您必须在您的settings.py中声明要使用的翻译器和其参数。请参阅deep-translator 翻译者了解需要指定哪些参数(注意:django-translatemessages会自动添加sourcetarget参数)

要配置GoogleTranslator,请添加到您的settings.py

TRANSLATEMESSAGES_PARAMS = {
    "translator": {
        "class": "GoogleTranslator",
        "params": {},
    },
}

要配置DeeplTranslator,您需要一个API密钥,请添加到您的settings.py

TRANSLATEMESSAGES_PARAMS = {
    "translator": {
        "class": "DeeplTranslator",
        "params": {
            "api_key": "your deepl api key",
        },
    },
}

在Django应用程序中,将需要翻译的字符串封装到方括号中是一种良好的做法,这样你就可以立即看到哪些字符串还没有被翻译。你可以要求 django-translatemessages 从源字符串中提取需要翻译的字符串。使用正则表达式选择需要提取的文本。注意,如果没有匹配项,则不会进行翻译。

例如,如果你想将 [我的英文字符串] 翻译成 我的法语字符串,并使用deepl,请在 settings.py 中设置:

TRANSLATEMESSAGES_PARAMS = {
    "extract_regex": r"\[(.*)\]",
    "translator": {
        "class": "DeeplTranslator",
        "params": {
            "api_key": "your deepl api key",
        },
    },
}

默认情况下,源语言为 en,但你可以在 settings.py 中使用其他语言。

TRANSLATEMESSAGES_PARAMS = {
    "source_lang": "fr",
    ...
}

重要: 默认情况下,django-translatemessages 将使用标志 fuzzy 生成翻译。这将迫使开发者手动验证每个翻译。

为此,编辑每个 django.po 文件,搜索 #, fuzzy 行,如果你同意建议的翻译,则将其删除。如果不这样做,Django 将不会显示翻译。你还可以使用 poedit 并在同意的每个突出显示的翻译上按 CTRL + RETURN

要禁用自动模糊功能,请在 settings.py 中使用以下内容:

TRANSLATEMESSAGES_PARAMS = {
    "auto_fuzzy": False,
    ...
}

用法

自动翻译所有应用的所有语言

python ./manage.py translatemessages

如果需要,请不要忘记先进行 makemessages(参见Django文档)

有关更多选项,请运行 python ./manage.py translatemessages -h

新闻

0.0.5 (2023-06-29)

  • 除非已过时或已由django-translatemessages翻译,否则强制翻译模糊字符串

0.0.4 (2023-06-21)

  • 不翻译模糊字符串

0.0.2 (2023-06-11)

  • 首次提交

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

django-translatemessages-0.0.5.tar.gz (7.6 kB 查看哈希值)

上传时间

构建分发

django_translatemessages-0.0.5-py2.py3-none-any.whl (7.5 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持