• zabbix 界面翻译不完全的处理


    zabbix是一个多语言监控系统,界面显示由对应的语言下的frontend.mo控制。当前对中文的翻译不完全,如下图

    image

    如果我们需要自己优化,将此翻译成中文,那么你需要修改zh_CN下的frontend.po,然后make_mo.sh创建frontend.mo。下面以

    image

    为例,介绍zabbix界面的汉化过程。

    汉化例子

    1、确认要修改的po文件的位置
    [root@zabbix ~]# find / -name frontend.po
    /root/cn_LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/bg/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/cs/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/de/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/el/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/en_US/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/es/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/fa/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/fi/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/fr/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/hu/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/id/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/it/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/ja/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/ko/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/lt/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/lv/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/nl/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/pl/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/pt_BR/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/pt_PT/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/ro/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/ru/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/sk/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/sv/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/tr/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/uk/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/vi/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/zh_TW/LC_MESSAGES/frontend.po
    /usr/share/zabbix/locale/ka/LC_MESSAGES/frontend.po
    2、添加中文内容到frontend.po
    [root@zabbix LC_MESSAGES]# vim frontend.po

    #: include/blocks.inc.php:486
    msgid "Number of items (enabled/disabled/not supported)"
    msgstr ""

    修改为

    #: include/blocks.inc.php:486
    msgid "Number of items (enabled/disabled/not supported)"
    msgstr "监控项(启用/禁用/不支持)"
    3、创建.mo文件
    /usr/share/zabbix/locale/make_mo.sh
    4、刷新界面,发现已经变成了中文

    image

    po文件编辑工具推荐---Poedit

    使用vim编辑frontend.po是一种办法,也可以使用专门的图形化工具Poedit对po文件进行编辑、编译。该工具具有翻译建议
    image2、
    将生成的frontend.mo替换掉/usr/share/zabbix/locale/zh_CN/LC_MESSAGES下的frontend.po 即可。

    gettext工具简介

    zabbix提供的脚本 /usr/share/zabbix/locale/make_mo.sh 实现语言文件po到mo的转换,其实/usr/share/zabbix/locale/make_mo.sh调用的就是gettext中的gettext。

    [root@zabbix locale]# cat /usr/share/zabbix/locale/make_mo.sh
    #!/bin/bash
    
    while read pofile; do
            msgfmt --use-fuzzy -c -o ${pofile%po}mo $pofile
    done < <(find $(dirname $0) -type f ! -wholename '*/.svn*' -name '*.po')

    gettext工具下载地址:http://gnuwin32.sourceforge.net/packages/gettext.htm

    gettext包中包含了msgunfmt.exe、msgfmt.exe 等文件,可以实现语言文件po和mo的互相转换

    根据po生成mo

    重新生成mo文件
    cd  C:SoftwareGetTextin
    msgfmt.exe         C:UsersxqztDesktop当前frontend.po  -o C:UsersxqztDesktop当前frontend.mo

    根据mo生成po

    cd  C:SoftwareGetTextin
    msgunfmt.exe     C:UsersxqztDesktopfrontend.mo    -o C:UsersxqztDesktopfrontend.po
  • 相关阅读:
    Silverlight第三方控件收集
    我们三十以后才明白
    修复编译Silverlight&quot;不能找到AppManifest.xaml&rdquo;的错误
    Android消息通知
    理解和认识udev
    QT进度条
    WARNING: Application does not specify an API level requirement!
    Linux设备驱动中的异步通知与异步I/O
    Qtopia2.2.0 的配置和交叉编译
    Android Menus
  • 原文地址:https://www.cnblogs.com/xqzt/p/5445293.html
Copyright © 2020-2023  润新知