前面在5.4版本介绍的时候有提到汉化部分依然有些粗糙,甚至相比于4.X版本还要粗一点,但这些其实不影响Zabbix的整体价值,只能算是一个瑕疵点,而且能保持80%以上的汉化程度,其实已经不错了,正常来看,用英文版的软件绝对是有很多好处的,毕竟很多开源产品都是国外的大神开发的,自然文档都是英文的,虽然目前浏览器都支持在线翻译,但是一些直译可能让人很难理解。
All Dashboard翻译成添加仪表盘,有点令人费解
部分未汉化的地方
正文
可以通过官网了解到,Zabbix的中文翻译文件在
/usr/share/zabbix/locale/zh_CN/LC_MESSAGES目录下。
如果用正常vi或者vim工具翻译会显示乱码,所以需要用到其他工具,本文采用的方式为先由.mo后缀转译为.po后缀,然后用vim等文本编辑工具编辑完后,再反编译为.mo后缀文件。
显示乱码
转译前提
转译的前提,我们需要有gettext软件。通过rpm -qa | grep gettext命令查看,CentOS默认有该文件,如果没有请自行安装
反转译过程
由po到mo叫转译,由mo到po叫反转译
1.先将相关文件备份一遍
- cd /usr/share/zabbix/locale/zh_CN/LC_MESSAGES
- cp frontend.mo frontend.mo.bak
2.转译文件
- cd /usr/share/zabbix/locale/zh_CN/LC_MESSAGES
- msgunfmt frontend.mo -o frontend.po
3.编辑反转译的文件
- vim frontend.po
令人费解的翻译
我们可以通过这个文件来进行二次翻译,第一行(msgid)代表英文,第二行(msgstr)代表中文。
这里分两种情况,一种没有被翻译的,还有一种是翻译有点匪夷所思的(上图的All dashboard)。
未被翻译的
修改翻译
新建的翻译字段
编译过程
修改完成后,需要将po文件编译为zabbix识别的mo文件,并重启相关服务
- rm -rf frontend.mo
- msgfmt -o frontend.mo frontend.po
- systemctl restart httpd zabbix-server php-fpm
效果图
改善过的所有仪表盘
用户角色
动作部分的汉化
写在最后
本文只列举部分案例,如果需要完美汉化需要大家下去自己调整,不是很难,同时希望大家慢慢习惯英文版的操作界面,中文版虽然接受程度快,但是再去适应其他软件的时候显得比较吃力,当然如果不经常折腾,或者给其他用户使用,那就不必有这么多顾虑了。