概述
概述
国际化和本地化的目的就是让一个网站应用能做到根据用户语种和指定格式的不同而提供不同的内容。
Django 对文本翻译, 日期、时间和数字的格式化,以及时区提供了完善的支持。
实际上,Django做了两件事:
- 由开发者和模板作者指定应用的哪些部分应该翻译,或是根据本地语种和文化进行相应的格式化。
- 根据用户的偏好设置,使用钩子将web应用本地化。
很显然,翻译取决于用户所选语言,而格式化通常取决于用户所在国家。 这些信息由浏览器通过Accept-Language
协议头提供。不过确定时区就不是这么简单了。
定义
国际化和本地化通常会被混淆,这里我们对其进行简单的定义和区分:
国际化
让软件支持本地化的准备工作,通常由开发者完成。
本地化
编写翻译和本地格式,通常由翻译者完成。
更多细节详见W3C Web Internationalization FAQ、Wikipedia article和GNU gettext documentation。
警告
是否启用翻译和格式化分别由配置项
USE_I18N
和USE_L10N
决定。 但是,这两个配置项都同时影响国际化和本地化。 这种情况是Django的历史因素所致。
下面几项可帮助我们更好地处理某种语言:
本地化名称
表示地域文化的名称,可以是 ll
格式的语种代码,也可以是 ll_CC
格式的语种和国家组合代码。例如:it
, de_AT
, es
, pt_BR
。语种部分总是小写而国家部分则应是大写,中间以下划线(_)连接。
语言代码
表示语言的名称。浏览器会发送带有语言代码的 Accept-Language
HTTP报头给服务器。例如:it
, de-at
, es
, pt-br
. 语种和国家部分都是小写,中间以破折线(-)连接。
消息文件
消息文件是纯文本文件,包含某种语言下所有可用的翻译字符串及其对应的翻译结果。消息文件以 .po
做为文件扩展名。
翻译字符串
可以被翻译的文字。
格式文件
针对某个地域定义数据格式的Python模块。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论