国际化与本土化

概述

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

Django完全支持 translation of textformatting of dates, times and numberstime zones .

本质上,Django做了两件事:

  • 它允许开发人员和模板作者指定应用程序的哪些部分应根据本地语言和文化进行翻译或格式化。
  • 它使用这些钩子根据特定用户的偏好来本地化Web应用程序。

显然,翻译取决于目标语言,而格式化通常取决于目标国家。此信息由浏览器在 Accept-Language 标题。然而,时区并不容易获得。

定义

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

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

有关更多详细信息,请参见 W3C Web Internationalization FAQ , the Wikipedia articleGNU gettext documentation .

警告

翻译和格式化由 USE_I18NUSE_L10N 分别设置。然而,这两个特性都涉及国际化和本地化。这些场景的名字是 Django 历史的不幸结果。

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

区域名称
区域设置名称,或表单的语言规范 ll 或该表格的综合语言和国家规范 ll_CC . 实例: itde_ATespt_BR . 语言部分始终为小写,国家部分为大写。分隔符是下划线。
语言代码
表示语言的名称。浏览器发送他们接受的语言的名称 Accept-Language 使用此格式的HTTP头。实例: itde-atespt-br . 语言代码通常用小写表示,但HTTP Accept-Language 头不区分大小写。分隔符是破折号。
消息文件
消息文件是一个纯文本文件,表示一种语言,其中包含所有可用的 translation strings 以及如何用给定的语言表示它们。消息文件具有 .po 文件扩展名。
转换字符串
可以翻译的文字。
格式化文件
格式文件是定义给定区域设置的数据格式的python模块。