Zabbix 6.0 汉化操作笔记 (基于 frontend.po 文件,文件在下载列表可取)
核心原理
Zabbix 界面不能直接读取 .po (Portable Object) 源文件,需要将其编译成二进制格式的 .mo (Machine Object) 文件后才能被识别和加载。本笔记记录的就是这个“编译+部署”的手动过程。
适用场景
- 服务器无法连接互联网,无法通过
yum或apt直接安装语言包。 - 只能找到或下载到
frontend.po此类翻译源文件。 - 希望对汉化过程有更彻底的控制。
操作步骤
第1步:安装编译工具 msgfmt
msgfmt 是 GNU gettext 工具集的一部分,负责将 .po 文件编译为 .mo 文件。
- 在 CentOS / RHEL / Rocky Linux 系统上执行:
sudo yum install gettext
- 在 Ubuntu / Debian 系统上执行:
sudo apt update
sudo apt install gettext
第2步:编译 .po 文件为 .mo 文件
- 将您获取到的
frontend.po文件上传到 Zabbix 服务器的任意目录,例如/tmp或您的主目录~。 - 打开终端,进入存放
frontend.po文件的目录。 - 执行编译命令:
# 这条命令会读取 frontend.po 文件,并生成一个标准的 zh_CN.mo 文件
msgfmt -o zh_CN.mo frontend.po
如果命令执行成功,不会有任何输出,但当前目录下会生成一个新的 zh_CN.mo 文件。
第3步:部署 .mo 文件到正确目录
- 创建 Zabbix 中文语言包目录(如果目录不存在):
sudo mkdir -p /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/
- 将编译好的
.mo文件移动到此目录,并确保文件名正确:
sudo cp zh_CN.mo /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/
- 【关键】设置正确的文件权限和所有者:
必须确保 Web 服务器软件(如 Nginx 或 Apache)的运行用户有权读取这个文件。
# 首先,查看您的 Web 服务器用户(通常是 nginx 或 apache)
ps aux | grep nginx
# 或者
ps aux | grep apache
# 然后,将文件所有者改为该用户(请根据您的实际用户修改!)
# 如果您的用户是 nginx:
sudo chown nginx:nginx /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/zh_CN.mo
# 如果您的用户是 apache:
sudo chown apache:apache /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/zh_CN.mo
第4步:重启服务并应用更改
使新的语言文件生效:
# 重启 PHP-FPM 和 Web 服务器
# 如果使用 Nginx:
sudo systemctl restart php-fpm nginx
# 如果使用 Apache:
sudo systemctl restart php-fpm apache2
# 或者
sudo systemctl restart apache2
第5步:在 Web 界面完成汉化
- 打开浏览器,访问您的 Zabbix 地址。
- 登录后,点击右上角的 用户头像 -> Language。
- 在下拉菜单中,选择 Chinese (zh_CN)。
- 点击 Update 保存设置。
- 至关重要的一步:按住键盘上的
Ctrl+F5(或Ctrl+Shift+R)强制彻底刷新浏览器页面。界面将立即切换为中文。
注意事项与常见问题
- 权限问题:第3步中的
chown命令是成功的关键。如果权限不对,Zabbix 将无法读取.mo文件,导致语言列表中不出现中文选项。 - 浏览器缓存:切换语言后,必须强制刷新浏览器,否则可能看不到变化。
- 文件路径:文件必须放在
/usr/share/zabbix/locale/zh_CN/LC_MESSAGES/zh_CN.mo这个精确的路径上。 - 版本一致性:您使用的
frontend.po文件最好与您的 Zabbix 6.0 小版本号一致,以避免出现少量未翻译的字符串。
命令总结
| 步骤 | 核心命令 |
| 安装工具 | sudo yum install gettext |
| 编译文件 | msgfmt -o zh_CN.mo frontend.po |
| 创建目录 | sudo mkdir -p /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/ |
| 移动文件 | sudo cp zh_CN.mo /usr/share/zabbix/locale/zh_CN/LC_MESSAGES/ |
| 设置权限 | sudo chown nginx:nginx .../zh_CN.mo (按需修改用户) |
| 重启服务 | sudo systemctl restart php-fpm nginx |
| 最终操作 | 在浏览器中按 Ctrl+F5 强制刷新 |