通俗的说法叫多语言支持,为严谨的说法叫做创建国际化和本地化,
国际化:使你项目中的字符串可以翻译成成其他的语言。
本地化:为某个项目创建翻译的过程。
使用可翻译字符串:
#在py文件中
from django.utils.translation import gettext as _
translated_string = _("Parent")
#在html模板中
{% load i18n %}
<h1>{% translate "Parent"}
设置Django:
在Django项目的settings.py文件中,检查以下设置:
#国际化支持
USE_I18N = True #设置网站的语种
LANGUAGES = [ ('en', 'English'), ('zh-hans', '简体中文'), #设置翻译文件的存储位置
LOCALE_PATHS = [ os.path.join(BASE_DIR, 'locale'), ]
这里,您需要根据您项目支持的语言来配置LANGUAGES。
收集翻译字符串:
使用Django的makemessages管理命令来收集你项目中的翻译字符串。运行以下命令:
python manage.py makemessages -l zh_hans
上述命令会根据LANGUAGES设置中的语言(例如,英语'en')创建翻译文件。
这里可能会报错:Make sure you have GNU gettext tools 0.15 or newer installed.
https://mlocati.github.io/articles/gettext-iconv-windows.html
去下载64bit的static,安装一下就可以了。
编辑翻译文件:
打开创建的翻译文件(locale目录下,语言名称文件夹下的.po文件,随便用记事本vscode打开),然后添加或编辑扩展中的翻译字符串。您需要为每个支持的语言创建一个对应的翻译文件,并为每个字符串提供翻译。
#...
#: .\zheng\models.py:36
msgid "Parent"
msgstr "上级分类"
msgid:代码中的可翻译字符串
msgstr:对应的翻译
全部翻译好以后保存
编译翻译文件:
python manage.py compilemessages
使用compilemessages命令来编译翻译文件: 生成.mo文件,这些文件包含了实际的翻译内容,用于在运行时进行翻译。
通过以上步骤,翻译就创建好了。
详情参考:https://docs.djangoproject.com/zh-hans/4.2/topics/i18n/translation/
本文还参考了:https://blog.csdn.net/weixin_66526635/article/details/125894950

Comments NOTHING