一般地,一个大型的项目,特别是一个跨国平台,都需要进行国际化支持。OpenStack作为一个开源的云平台方案,同样需要支持国际化。因此,OpenStack社区开发了oslo.i18n组件支持OpenStack项目的国际化。本文便简单的介绍了OpenStack支持国际化的实现与使用。
1 oslo.i18n的实现
OpenStack项目支持国际化的实现非常简单,在oslo.i18n中主要使用TranslatorFactory类实现国际化支持。该类中提供了primary()方法进行国际化翻译,而该类则实际调用了_make_translation_func(domain)实现具体的操作。
def _make_translation_func(self, domain=None):
"""Return a translation function ready for use with messages.
The returned function takes a single value, the unicode string
to be translated. The return type varies depending on whether
lazy translation is being done. When lazy translation is
enabled, :class:`Message` objects are returned instead of
regular :class:`unicode` strings.
The domain argument can be specified to override the default
from the factory, but t