Skip to main content

国际化和本地化

概述

国际化和本地化的目标是允许单个Web应用程序以针对观众定制的语言和格式提供其内容。

Django完全支持 翻译文本格式化日期,时间和数字时区

基本上,Django做了两件事:

  • 它允许开发人员和模板作者指定他们的应用程序的哪些部分应翻译或格式化为本地语言和文化。

  • 它使用这些钩子根据他们的偏好为特定用户本地化Web应用程序。

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

定义

“国际化”和“本地化”一词常常造成混乱;这里有一个简化的定义:

国际化

准备软件进行本地化。通常由开发人员完成。

本土化

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

更多细节可以在 W3C Web Internationalization FAQWikipedia articleGNU gettext documentation 中找到。

警告

翻译和格式化分别由 USE_I18NUSE_L10N 设置控制。然而,这两个特征涉及国际化和本地化。设置的名称是Django历史的一个不幸的结果。

这里有一些其他术语,将帮助我们处理一种共同的语言:

区域设置名称

语言环境名称,即 ll 格式的语言规范或 ll_CC 格式的组合语言和国家规范。实例:itde_ATespt_BR。语言部分始终为小写,国家部分为大写。分隔符是下划线。

语言代码

表示语言的名称。浏览器使用此格式发送在 Accept-Language HTTP标头中接受的语言的名称。示例:itde-atespt-br。语言代码通常以小写形式表示,但HTTP Accept-Language 头部不区分大小写。分隔符是破折号。

消息文件

消息文件是一个纯文本文件,表示单一语言,包含所有可用的 翻译字符串 以及如何以给定语言表示它们。消息文件具有 .po 文件扩展名。

翻译字符串

一个可以翻译的文字。

格式文件

格式文件是一个Python模块,用于定义给定语言环境的数据格式。