实现 Django 2.2 中的 i18n 多语言国际化,您需要执行以下几个步骤:

一、设置语言
首先,在 Django 2.2 中,您需要在项目的 settings.py 文件中进行一些配置,以指定可用的语言和默认语言。您可以通过 LANGUAGE_CODE 设置默认语言,并通过 LANGUAGES 列表设置可用的语言选项。例如,要设置为中文简体作为默认语言,并允许用户选择英语和中文,您可以将以下代码添加到 settings.py 文件中:


LANGUAGE_CODE = 'zh-hans'

LANGUAGES = [
    ('zh-hans', '中文简体'),
    ('en', 'English'),
]

二、制作翻译文件
接下来,您需要创建翻译文件以供多语言支持。Django 2.2 使用 Gettext 格式进行翻译,这需要您安装 gettext 工具。然后,您可以使用 Django 自带的 makemessages 命令创建翻译文件。执行以下命令:


python manage.py makemessages -l zh_Hans

使用 -l 参数指定要创建翻译文件的语言代码,此处使用的是 zh_Hans。

三、编辑翻译文件
通过上一步,您将在您项目的根目录下的 locale 文件夹中找到刚刚生成的翻译文件,其格式为 .po 文件。您可以使用文本编辑器打开此文件,并为每个需要翻译的文本(通常是模板中的字符串)提供相应的翻译。在每个字符串的 msgstr 字段中填写对应的翻译内容。

四、编译翻译文件
在编辑翻译文件完成后,您需要使用 Django 的 compilemessages 命令将 .po 文件编译为二进制 .mo 文件,以便 Django 能够使用它们进行翻译。执行以下命令:


python manage.py compilemessages

这将生成一个与 .po 文件对应的 .mo 文件。

通过以上步骤,您就可以在 Django 2.2 中成功实现 i18n 多语言国际化。您可以在模板中使用 Django 的内置模板标签进行国际化的文本显示。例如,在模板中您可以使用 {% trans %} 标签将需要翻译的文本包裹起来,然后使用 {% blocktrans %} 标签将多行文本进行翻译。在视图中,您可以使用 Django 的内置函数 gettext 来翻译字符串。

希望以上解答对您有所帮助,祝您成功实现 Django 2.2 中的 i18n 多语言国际化!