Cinder 的 i18n 支持

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/cinder/+spec/i18n-enablement

这份蓝图/规范建议完成 Cinder 的 i18n(国际化)支持的启用工作。

在最近的 OpenStack 版本中,国际化实现一直是一个持续进行的工作。在 Icehouse 版本中,许多国际化支持已经合并到 Cinder 中。具体来说,Oslo 的 gettextutils 的更新(提交 1553a1e78ec262b044ce99b418103c91b7b580f6)完成了大部分流程。移除异常和消息中使用 str() 的做法是另一项主要的工作内容:(提交 cbe1d5f5e22e5f792128643e4cdd6afb2ff2b5bf)。

为了在 Juno 中完成这项工作,我们需要启用“延迟”翻译。启用延迟翻译将允许最终用户不仅以多种语言生成日志,还增加了 REST API 消息也能够以用户选择的语言返回的能力。此功能对于支持国际社区使用 OpenStack 非常重要。

用例

问题描述

目前,Cinder 还没有所有支持延迟翻译的代码。与此蓝图相关的代码将添加适当的代码并启用 REST API 响应的翻译。

提议的变更

此更改的代码将在 bin 目录中的每个二进制文件中添加 ‘gettextutils.enable_lazy()’。

它还将移除在每个二进制文件中使用 gettextutils.install()。相反,它将在所有尚未导入 _() 函数的文件中添加 _() 的显式导入。更改为显式导入 _() 的必要性在 bug https://bugs.launchpad.net/cinder/+bug/1306275 中有记录。

备选方案

无。

数据模型影响

无。

REST API 影响

除了启用客户使用 Accept-Language 选项指定希望 REST API 响应返回的语言之外,REST API 没有其他额外的更改。

安全影响

无。

通知影响

无。

其他最终用户影响

无。

性能影响

无。

其他部署者影响

合并后,此功能将立即对用户可用。

开发人员影响

开发人员的影响已经存在一段时间了。开发人员一直在使用 _() 围绕需要翻译的消息。

实现

负责人

主要负责人

<jsbryant@us.ibm.com> (Jungleboyj)

其他贡献者

<jecarey@us.ibm.com>

工作项

我计划将其作为两个补丁来实现。第一个补丁将确保 _() 被显式导入。依赖补丁然后将设置 enable_lazy()。

依赖项

无。

测试

将为 Cinder 添加一个 tempest 测试,以确保延迟翻译正常工作。

文档影响

无。

参考资料

无。