介绍

Babel为国际化(I18N)和本地化(L10N)提供的功能可以分为两个不同的方面:

  • 用于构建和使用的工具 gettext 消息目录,和

  • 到CLDR(通用区域设置数据存储库)的Python接口,提供对各种区域显示名称、本地化数字和日期格式等的访问。

邮件目录

而Python标准库包括一个 gettext 模块使应用程序能够使用消息目录,它要求开发人员使用GNU工具构建这些目录,例如 xgettextmsgmergemsgfmt 。而当 xgettext 不支持从Python文件中提取消息,但它不知道如何处理Python Web应用程序中常见的其他类型的文件,如模板,也不提供简单的可扩展性机制来添加这种支持。

Babel通过提供一个框架来解决这个问题,在该框架中,可以将各种提取方法插入到更大的消息提取框架中,并且还消除了对GNU的依赖 gettext 用于常见任务的工具,因为这些工具不一定在所有平台上都可用。看见 使用邮件目录 关于巴别塔这方面的详细信息。

区域设置数据

此外,虽然Python标准库确实支持关于数字和日期格式化的基本本地化( locale 模块等),这种支持是基于这样的假设:每个进程只使用一个特定的区域设置(至少同时使用)。此外,它不提供对其他类型的区域设置数据的访问,例如基于Web的应用程序中经常需要的国家、语言或时区的本地化名称。

对于这些要求,巴别塔包括从 Common Locale Data Repository (CLDR) ,并为访问和使用此数据提供了许多方便的方法。看见 区域设置数据日期和时间数字格式化属性 有关巴别塔这方面的更多信息。