返回介绍

概述

发布于 2019-11-13 06:14:53 字数 6061 浏览 1135 评论 0 收藏 0

概述

国际化和本地化的目的就是让一个网站应用能做到根据用户语种和指定格式的不同而提供不同的内容。

Django 对文本翻译, 日期、时间和数字的格式化,以及时区提供了完善的支持。

实际上,Django做了两件事:

  • 由开发者和模板作者指定应用的哪些部分应该翻译,或是根据本地语种和文化进行相应的格式化。
  • 根据用户的偏好设置,使用钩子将web应用本地化。

很显然,翻译取决于用户所选语言,而格式化通常取决于用户所在国家。 这些信息由浏览器通过Accept-Language 协议头提供。不过确定时区就不是这么简单了。

定义

国际化和本地化通常会被混淆,这里我们对其进行简单的定义和区分:

国际化

让软件支持本地化的准备工作,通常由开发者完成。

本地化

编写翻译和本地格式,通常由翻译者完成。

更多细节详见W3C Web Internationalization FAQWikipedia articleGNU gettext documentation

警告

是否启用翻译和格式化分别由配置项USE_I18NUSE_L10N 决定。 但是,这两个配置项都同时影响国际化和本地化。 这种情况是Django的历史因素所致。

下面几项可帮助我们更好地处理某种语言:

本地化名称

表示地域文化的名称,可以是 ll 格式的语种代码,也可以是 ll_CC 格式的语种和国家组合代码。例如:it, de_AT, es, pt_BR 。语种部分总是小写而国家部分则应是大写,中间以下划线(_)连接。

语言代码

表示语言的名称。浏览器会发送带有语言代码的 Accept-Language HTTP报头给服务器。例如:it, de-at, es, pt-br. 语种和国家部分都是小写,中间以破折线(-)连接。

消息文件

消息文件是纯文本文件,包含某种语言下所有可用的翻译字符串及其对应的翻译结果。消息文件以 .po 做为文件扩展名。

翻译字符串

可以被翻译的文字。

格式文件

针对某个地域定义数据格式的Python模块。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文