oslo_i18n 包

子模块

oslo_i18n.fixture 模块

用于使用 oslo_i18n 的测试固定装置。

class oslo_i18n.fixture.PrefixLazyTranslation(languages=None, locale=None)

基础: Fixture

固定装置,用于为启用延迟翻译的消息添加前缀

使用此固定装置将导致支持延迟翻译的消息被替换为带有“domain/language:”前缀的消息 ID。例如,“oslo/en_US: 关于某事的消息”。它还会将从 oslo_18n.get_available_languages 返回的可用语言覆盖为指定的语言。

这将使测试能够确保消息已使用指定的语言进行了延迟翻译,而没有立即使用默认语言进行翻译。

请注意,除非启用延迟翻译,否则此功能不起作用,因此它使用 ToggleLazy 固定装置来启用延迟翻译。

参数:

languages (list of strings) – 要支持的语言列表。如果未指定(None),则使用 [‘en_US’]。

setUp()

准备 Fixture 以供使用。

不应覆盖此方法。具体的 fixture 应该实现 _setUp。仍然支持覆盖 setUp,但不推荐。

在 setUp 完成后,fixture 将具有一个或多个属性,这些属性可用于(具体取决于具体的子类)。

引发:

如果 _setUp 失败,则引发 MultipleExceptions。MultipleExceptions 中捕获的最后一个异常将是一个 SetupError 异常。

返回值:

None。

更改于 1.3:

覆盖 setUp 的建议已反转 - 在 1.3 之前,应该覆盖 setUp(),现在不应该覆盖。

更改于 1.3.1:

现在捕获 BaseException,并且只有 Exception 的子类才会被包装在 MultipleExceptions 中。

class oslo_i18n.fixture.ToggleLazy(enabled)

基础: Fixture

固定装置,用于在测试中启用或禁用延迟翻译。

setUp()

准备 Fixture 以供使用。

不应覆盖此方法。具体的 fixture 应该实现 _setUp。仍然支持覆盖 setUp,但不推荐。

在 setUp 完成后,fixture 将具有一个或多个属性,这些属性可用于(具体取决于具体的子类)。

引发:

如果 _setUp 失败,则引发 MultipleExceptions。MultipleExceptions 中捕获的最后一个异常将是一个 SetupError 异常。

返回值:

None。

更改于 1.3:

覆盖 setUp 的建议已反转 - 在 1.3 之前,应该覆盖 setUp(),现在不应该覆盖。

更改于 1.3.1:

现在捕获 BaseException,并且只有 Exception 的子类才会被包装在 MultipleExceptions 中。

class oslo_i18n.fixture.Translation(domain='test-domain')

基础: Fixture

用于管理可翻译字符串的固定装置。

此类提供使用延迟翻译和立即翻译创建可翻译字符串的方法。它可以用于生成从 oslo_i18n 返回的不同类型的消息,以测试代码可能需要了解该类型才能以不同的方式处理它们(例如,WSGI 应用程序中的错误处理,或日志记录)。

使用此类生成消息,而不是切换全局延迟标志并使用常规翻译工厂。

immediate(msg)

将字符串作为立即翻译后的字符串返回。

参数:

msg (str or unicode) – 输入消息字符串。可以选择包含位置或命名字符串插值标记。

lazy(msg)

返回延迟翻译的消息。

参数:

msg (str or unicode) – 输入消息字符串。可以选择包含位置或命名字符串插值标记。

oslo_i18n.log 模块

用于翻译的日志记录实用程序

class oslo_i18n.log.TranslationHandler(locale=None, target=None)

Bases: MemoryHandler

处理程序,在记录它们之前翻译记录。

当应用程序中启用延迟翻译时(请参阅 enable_lazy()),TranslationHandler 使用其区域设置配置设置来确定如何翻译 LogRecord 对象,然后将其转发到 logging.Handler。

当禁用延迟翻译时,LogRecord 中的消息将转换为 unicode 而不进行任何更改,然后转发到 logging.Handler。

处理程序可以以声明方式配置在 logging.conf 中,如下所示

[handlers]
keys = translatedlog, translator

[handler_translatedlog]
class = handlers.WatchedFileHandler
args = ('/var/log/api-localized.log',)
formatter = context

[handler_translator]
class = oslo_i18n.log.TranslationHandler
target = translatedlog
args = ('zh_CN',)

如果指定的区域设置在系统中不可用,则处理程序将以默认区域设置记录。

emit(record)

发出记录。

附加记录。如果 shouldFlush() 告诉我们,则调用 flush() 以处理缓冲区。

setFormatter(fmt)

设置此处理程序的格式化程序。

模块内容