zoukankan      html  css  js  c++  java
  • Zabbix 5.0切换中文语言小结

    最近测试Zabbix 5.0,去修改语言时发现不能选择Chinese(zh_CN),这个选项在下拉框中是灰色的(无法选择)。提示You are not able to choose some of the languages, because locales for them are not installed on the web server., 操作系统为CentOS Linux release 8.1.1911 (Core)

     

    clip_image001

     

     

    从旁边的提示信息判断,可能是Web服务器没有安装中文包,但是也有可能Zabbix把对中文的支持给关闭了,所以我们先检查一下php代码,找到/usr/share/zabbix/include/下的locales.inc.php文件

     

    clip_image002

     

    如上所示,Zabbix是允许你选择Chinese(zh_CN)选项的,那么可能是没有安装中文包,那么接下来,我们来检查一下这台服务器是否安装中文包。

     

    # locale -a | grep "zh_CN"

     

    输出为空,那么可以判断这台服务器没有安装中文包,下面来安装。

     

    查找有哪些语言安装包

    #yum search langpacks

     

     

    安装中文语言包有下面两种方式

    #yum install langpacks-zh_CN.noarch
     
    #dnf install langpacks-zh_CN.noarch

     

    我使用yum安装成功后,检查发现下面输出依然为空,这个是因为这里没有安装glibc-common包,需要安装glibc-common实现对已安装语言包的识别。

     

    # locale -a | grep "zh_CN"

    # dnf install glibc-common

     

    安装完glibc-common包,验证测试langpacks-zh_CN.noarch已经安装成功了。

    # locale -a | grep zh_CN
    zh_CN
    zh_CN.gb18030
    zh_CN.gbk
    zh_CN.utf8

     

    完成上面步骤后,回到Zabbix界面刷新后,就可以选择Chinese(zh_CN)了。问题解决。

     

     

    Zabbix图片文字乱码

     

    在后续的使用过程中,发现一些界面中文显示为乱码.如下截图所示:

     

    clip_image003

     

    在/usr/share/zabbix/include/下,检查defines.inc.php,可以发现代码里面定义了下面字体相关常量

     

    define('ZBX_FONTPATH', realpath('assets/fonts')); // where to search for font (GD > 2.0.18)
    define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
     
     
    define('ZBX_FONT_NAME', 'graphfont');
    define('ZBX_PREG_DEF_FONT_STRING', '/^[0-9.:% ]+$/')
    define('ZBX_STYLE_MONOSPACE_FONT', 'monospace-font');

     

    可以看出zabbix使用了/usr/share/zabbix/assets/fonts下面定义的字体文件,而没有使用linux的系统字体,从网上搜索的资料来看,可以将Windows下的一些字体文件上传到这个目录来解决乱码问题。

     

    方案1:使用Windows中的字体替换graphfont.ttf

     

    从C:WindowsFonts中找到微软雅黑字体上传到/usr/share/zabbix/assets/fonts下面后,将雅黑字体MSYH.TTF改名为graphfont.ttf

     

    # mv graphfont.ttf graphfont.ttf.bak

    # mv MSYH.TTF  graphfont.ttf

     

    完整上面操作后,刷新页面,发现乱码确实解决了

    clip_image004

     

    方案2:修改代码中的字体相关常量

     

    sftp> cd /usr/share/zabbix/assets/fonts
    sftp> put -r "C:WindowsFontsSTFANGSO.TTF"
    Uploading STFANGSO.TTF to /usr/share/zabbix/assets/fonts/STFANGSO.TTF
      100% 11096KB  11096KB/s 00:00:00

     

    # mv STFANGSO.TTF STFANGSO.ttf  #这里必须将文件后缀类型从TTF改为ttf,否则无法识别,或者说必须修改代码才能识别

     

    define('ZBX_FONTPATH',                          realpath('assets/fonts')); // where to search for font (GD > 2.0.18)

    #define('ZBX_GRAPH_FONT_NAME',          'graphfont'); // font file name

    define('ZBX_GRAPH_FONT_NAME',           'STFANGSO'); // font file name

    define('ZBX_GRAPH_LEGEND_HEIGHT',       120); // when graph height is less then this value, some legend will not show up

     

    clip_image005

     

    #define('ZBX_FONT_NAME', 'graphfont');

    define('ZBX_FONT_NAME', '华文仿宋');

     

    clip_image006

     

    完成后刷新页面,问题也可以解决。当然你也可以选择一个你喜欢的字体。

     

  • 相关阅读:
    Python-OpenCV——进阶操作一网打尽
    深入理解jQuery插件开发
    Bootstrap整合ASP.NET MVC验证、jquery.validate.unobtrusive
    实用的Bootstrap的扩展和插件集合
    hadoop编程小技巧(5)---自定义输入文件格式类InputFormat
    mapreduce作业状态一直是ACCEPTED
    hadoop CLASSNAME命令使用注意点
    运行java的class文件方法详解
    Hadoop、Zookeeper、Hbase分布式安装教程
    java enum(枚举)使用详解 + 总结
  • 原文地址:https://www.cnblogs.com/kerrycode/p/13186953.html
Copyright © 2011-2022 走看看