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)
- 其他贡献者
工作项¶
我计划将其作为两个补丁来实现。第一个补丁将确保 _() 被显式导入。依赖补丁然后将设置 enable_lazy()。
依赖项¶
无。
测试¶
将为 Cinder 添加一个 tempest 测试,以确保延迟翻译正常工作。
文档影响¶
无。
参考资料¶
无。