国际化和本地化 — Django 文档

来自菜鸟教程
Django/docs/3.2.x/topics/i18n/index
跳转至:导航、​搜索

国际化和本地化


概览

国际化和本地化的目标是允许单个 Web 应用程序以适合受众的语言和格式提供其内容。

Django 完全支持 文本翻译日期、时间和数字格式 以及 时区

本质上,Django 做了两件事:

  • 它允许开发人员和模板作者指定他们的应用程序的哪些部分应该针对当地语言和文化进行翻译或格式化。
  • 它使用这些挂钩根据特定用户的喜好为特定用户本地化 Web 应用程序。

翻译取决于目标语言,格式通常取决于目标国家。 此信息由浏览器在 Accept-Language 标头中提供。 但是,时区并不容易获得。


定义

“国际化”和“本地化”这两个词经常引起混淆; 这是一个简化的定义:

国际化
准备软件进行本地化。 通常由开发人员完成。
本地化
编写翻译和本地格式。 通常由翻译人员完成。

更多详细信息可以在 W3C Web 国际化常见问题解答维基百科文章GNU gettext 文档 中找到。

警告

翻译和格式化分别由 :setting:`USE_I18N`:setting:`USE_L10N` 设置控制。 但是,这两个功能都涉及国际化和本地化。 这些设置的名称是 Django 历史的不幸结果。


以下是一些有助于我们处理通用语言的其他术语:

区域名称
区域设置名称,可以是 ll 形式的语言规范或 ll_CC 形式的组合语言和国家/地区规范。 示例:itde_ATespt_BRsr_Latn。 语言部分总是小写。 如果国家/地区部分超过 2 个字符,则为标题大写,否则为大写。 分隔符是下划线。
语言代码
表示一种语言的名称。 浏览器使用这种格式在 Accept-Language HTTP 标头中发送它们接受的语言名称。 示例:itde-atespt-br。 语言代码通常以小写形式表示,但 HTTP Accept-Language 标头不区分大小写。 分隔符是破折号。
消息文件
消息文件是一个纯文本文件,代表一种语言,包含所有可用的 翻译字符串 以及它们在给定语言中的表示方式。 消息文件具有 .po 文件扩展名。
翻译字符串
可以翻译的文字。
格式化文件
格式文件是一个 Python 模块,用于定义给定语言环境的数据格式。