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)¶
设置此处理程序的格式化程序。