1.概述
国际化和本地化的目的是允许一个web应用来根据受众的不同来以不同的语言提供内容。
django完全支持 文本翻译,日期格式,时间和数字,以及时区。
本质上,Django做了2件事:
- 它允许开发员和模板作者来指定他们应用的那个部分应该被翻译或者说格式化为本地的语言和形式。
- 它使用这些钩子来根据特殊用户的喜好来本地化web应用。
很明显,翻译是基于目标语言,并且格式化依赖于目标国家。这个信息是由浏览器中的Accept-Language头来提供的。然而,时区并不行。
2. 定义
“国际化”和“本地化”经常会混淆;下面是简单的定义:
国际化
为国际化准备软件。通常是程序员来完成
本地化
编写翻译和本地格式。通常是翻译员。
你可以在 <W3C国际化FAQ>,<维基百科>或<GNU文档>里找到更多信息。
警告
翻译和格式化分别由USE_I18N和USE_L10N设置来控制。然而,这2个特性都涉及国际化和本地化。设置的名称是Django历史上一个不幸的结果。
下面是其他一些帮助我们处理一个常见语言的条款:
本地名称
一个本地名称,或者ll形式的规范语言,或者ll_cc形式的语言和国家的组合。例如:it,de_AT,es,pt_BR。语言的 部分总是小写并且国家部分是大写。使用下划线分隔。
语言代码
表示一种语言的名称。浏览器发送它们接收的以这种形式存在于Accept-Language HTTP头的语言的名称。例 如:it,de-at,es,pt-br。语言代码通常是小写,但是HTTP Accept-Language是大小写敏感的。使用连接号分隔。
消息文件
消息文件是一个纯文本文件,表示为一种语言,包含所有可用的翻译字符串以及它们应该如何以给定的语言来展 示。消息文件有一个.po文件扩展名。
翻译字符串
能被翻译的字面量。
格式文件
格式文件是为一个给定的部分定义日期格式的python模块。