介绍¶
Babel为国际化(I18N)和本地化(L10N)提供的功能可以分为两个不同的方面:
用于构建和使用的工具
gettext
消息目录,和到CLDR(通用区域设置数据存储库)的Python接口,提供对各种区域显示名称、本地化数字和日期格式等的访问。
邮件目录¶
而Python标准库包括一个 gettext
模块使应用程序能够使用消息目录,它要求开发人员使用GNU工具构建这些目录,例如 xgettext
, msgmerge
和 msgfmt
。而当 xgettext
不支持从Python文件中提取消息,但它不知道如何处理Python Web应用程序中常见的其他类型的文件,如模板,也不提供简单的可扩展性机制来添加这种支持。
Babel通过提供一个框架来解决这个问题,在该框架中,可以将各种提取方法插入到更大的消息提取框架中,并且还消除了对GNU的依赖 gettext
用于常见任务的工具,因为这些工具不一定在所有平台上都可用。看见 使用邮件目录 关于巴别塔这方面的详细信息。
区域设置数据¶
此外,虽然Python标准库确实支持关于数字和日期格式化的基本本地化( locale
模块等),这种支持是基于这样的假设:每个进程只使用一个特定的区域设置(至少同时使用)。此外,它不提供对其他类型的区域设置数据的访问,例如基于Web的应用程序中经常需要的国家、语言或时区的本地化名称。
对于这些要求,巴别塔包括从 Common Locale Data Repository (CLDR) ,并为访问和使用此数据提供了许多方便的方法。看见 区域设置数据 , 日期和时间 和 数字格式化属性 有关巴别塔这方面的更多信息。