第09章 国际化
概述
国际化
为了django项目可以翻译,必须在python代码和模块中添加少量的hooks钩子。这些钩子称为translation strings
。 它们告诉django:“如果该语言的翻译版本以该语言提供,则该文本应该翻译为最终用户的语言。”
django提供了实用程序将translation strings
提取到消息文件中。此文件是翻译人员以目标语言提供等效翻译字符串的便捷方式。翻译人员填写完消息文件后,必须进行编译。此过程依赖于GNU gettext工具集。
完成后,Django会根据用户的语言偏好,使用每种可用语言动态翻译Web应用程序。
Django的国际化挂钩默认开启,这意味着在框架的某些位置有一些与i18n相关的开销。如果不使用国际化,则应在设置文件中设置两秒钟 。然后Django将进行一些优化,以免加载国际化机制。[USE_I18N = False](https://docs.djangoproject.com/zh-hans/2.0/ref/settings/#std:setting-USE_I18N)
确保您已为项目激活了翻译(最快的方法是检查是否
[MIDDLEWARE](https://docs.djangoproject.com/zh-hans/2.0/ref/settings/#std:setting-MIDDLEWARE)
包含[django.middleware.locale.LocaleMiddleware](https://docs.djangoproject.com/zh-hans/2.0/ref/middleware/#django.middleware.locale.LocaleMiddleware)
)。如果您还没有,请参阅Django如何发现语言首选项。
标准翻译
使用函数gettext()
指定translation strings
。导入此函数时通常使用_
作为别名做为简写