OpenStack(kilo)界面dashboard的二次开发(四)-国际化
2021/5/7 10:30:31
本文主要是介绍OpenStack(kilo)界面dashboard的二次开发(四)-国际化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
openstack界面支持英语、简体中文、繁体中文等多种语言。用户可以在用户设置中进行设置。如果要对openstack进行二次开发,那么就一定要对界面上的标题、提示的内容等进行修改。
国际化
看下面两幅图,分别是简体中文、English的实例页面:
openstack的界面采用的是django的架构,django国际化就是开发者对需要翻译的字符串进行标记,并对相应的字符串进行翻译。
进入/usr/share/openstack-dashboard/openstack_dashboard/dashboards/project /instances目录,并打开panel.py:
1from django.utils.translation import ugettext_lazy as _ 3import horizon 5from openstack_dashboard.dashboards.project import dashboard 8class Instances(horizon.Panel): name = _("Instances") slug = 'instances' permissions = ('openstack.services.compute',) 14dashboard.Project.register(Instances)
以上代码的结构在博主前面博文中已经进行简单的说明。这里看到class Instances,它的name属性即是上面两幅图中箭头所指显示的部分。可以看到它是import的django.utils.translation的ugettxt_lazy这个函数,这个函数就可以对其内容进行翻译。(具体原理博主没有深入研究,想要知道所以然的朋友可以自行研究学习,该博文仅总结具体方法。)而翻译的依据则是/usr/share/openstack-dashboard/openstack_dashboard/locale/目录下的文件。简体中文对应的是该目录下的zh_CN。进入该目录可以看到一个django.mo文件,该文件即是翻译成简体中文的核心文件。mo文件是不可编辑的文件,首先得将其反编译成po文件。网上有很多的方法,这里就不再赘述。
打开生成的django.po文件,找到instances。
为了测试,这里我把改成“我的实例”,然后编译成mo文件,重启httpd服务。效果图如下:
当然修改标题这些现实问题不止这一种方法,但是这种通过国际化这种方式,兼容性更好,便于支持多种语言。
这篇关于OpenStack(kilo)界面dashboard的二次开发(四)-国际化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验
- 2024-05-29AutoMQ 对象存储数据高效组织的秘密: Compaction
- 2024-05-29活动预告|来 GIAC 大会听大数据降本利器:AutoMQ 基于云原生重新设计的 Kafka