支持类和函数

这个 babel.support 模块包含许多类和函数,它们可以帮助将Babel集成到您的应用程序或框架中,并实现总体上的国际化。此模块中的代码不是由Babel本身使用的,而是为了解决应该处理国际化的应用程序的常见需求而提供的。

懒惰评估

一个这样的要求是对翻译的懒惰评估。许多基于Web的应用程序在模块级别定义一些可本地化的消息,或者通常在远程用户的区域设置尚不知道的某个级别定义一些可本地化的消息。对于这种情况,web框架通常提供 gettext 函数,这些函数基本上是转换消息,而不是在 gettext 函数,但是当以某种方式访问字符串时。

扩展翻译类

许多基于Web的应用程序由各种不同的组件组成(可能使用某种插件系统),其中一些组件可能会提供它们自己的消息目录,需要集成到更大的系统中。

为了支持此使用模式,Babel提供了一个 Translations 类派生的 GNUTranslations 类中 gettext 模块。这个类添加了一个 merge() 方法,该方法接受另一个 Translations 实例,并将后者的内容合并到主目录中:

translations = Translations.load('main')
translations.merge(Translations.load('plugin1'))