使用 Django 进行国际化和本地化
首先,需要在 settings.py 文件中设置语言和时区。
# settings.py LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai'
接下来,在需要进行国际化和本地化的代码中,使用 Django 提供的 gettext 函数对字符串进行标记。如下所示:
from django.utils.translation import gettext as _ welcome_msg = _('Welcome to pidancode.com')
然后,需要在项目中生成语言文件,在语言文件中翻译标记的字符串。可以使用以下命令生成语言文件:
python manage.py makemessages -l zh_Hans
其中,-l 参数指定生成的语言文件的目标语言。生成的语言文件会保存在项目的 locales 目录下,可以在其中找到需要翻译的标记字符串。如下所示:
# locales/zh_Hans/LC_MESSAGES/django.po msgid "Welcome to pidancode.com" msgstr "欢迎来到皮蛋编程"
完成翻译后,需要使用以下命令编译生成的语言文件:
python manage.py compilemessages
最后,可以在视图函数中使用 Django 提供的 ugettext 函数将翻译后的字符串返回给模板进行渲染。如下所示:
from django.utils.translation import ugettext as _ def my_view(request): welcome_msg = _('Welcome to pidancode.com') return render(request, 'my_template.html', {'welcome_msg': welcome_msg})
在模板中可以直接使用渲染后的字符串:
<!-- my_template.html --> <h1>{{ welcome_msg }}</h1>
这样就完成了 Django 的国际化和本地化设置,当浏览器的语言设置和项目支持的语言相同时,会渲染对应的翻译文本。
相关文章