国际化和本地化¶
概述¶
国际化和本地化的目标是允许单个 Web 应用程序以适合目标受众的语言和格式提供其内容。
Django 完全支持文本翻译、日期、时间和数字的格式化以及时区。
本质上,Django 做了两件事
它允许开发者和模板作者指定其应用程序的哪些部分应该翻译或格式化为本地语言和文化。
它使用这些钩子根据用户的偏好为特定用户本地化 Web 应用程序。
翻译取决于目标语言,格式通常取决于目标国家/地区。浏览器在Accept-Language
标头中提供此信息。但是,时区不容易获得。
定义¶
“国际化”和“本地化”这两个词经常引起混淆;这是一个简化的定义
更多详细信息可以在W3C Web 国际化常见问题解答、维基百科文章或GNU gettext 文档中找到。
警告
翻译由USE_I18N
设置控制。但是,它涉及国际化和本地化。设置的名称是 Django 历史的意外结果。
以下是一些其他术语,这些术语将帮助我们处理一种通用语言
- 区域设置名称¶
区域设置名称,可以是
ll
形式的语言规范,也可以是ll_CC
形式的组合语言和国家/地区规范。示例:it
、de_AT
、es
、pt_BR
、sr_Latn
。语言部分始终为小写。如果国家/地区部分的字符数超过 2 个,则为标题大小写,否则为大写。分隔符是下划线。- 语言代码¶
表示语言的名称。浏览器使用此格式在
Accept-Language
HTTP 标头中发送它们接受的语言名称。示例:it
、de-at
、es
、pt-br
。语言代码通常以小写表示,但 HTTPAccept-Language
标头不区分大小写。分隔符是连字符。- 消息文件¶
消息文件是一个纯文本文件,表示单一语言,其中包含所有可用的翻译字符串以及它们在给定语言中的表示方式。消息文件具有
.po
文件扩展名。- 翻译字符串¶
可以翻译的文字。
- 格式文件¶
格式文件是一个 Python 模块,它定义给定区域设置的数据格式。