pfSense2.60版本推出后,很多Web界面的多语言显示并不完全,究其原因是因为官方未更新其多语言包,目前翻译平台提供的多语言文件还是2.50版本的。虽然已经跟开发人员进行了反馈,但截止目前,还没有更新。
pfSense从2.0开始,所有的PHP文件都使用了基于Gettext的标准进行开发,确保了程序的输出使用用户设置的语言而不是默认的英文。我们可以使用Gettext工具来抓取程序的多语言显示选项,制作po多语言包来替换系统的默认语言包,实现Web界面完全汉化的目标。gettext的使用说明,可以参考官方的使用手册。
需要用到的软件:
操作步骤
下载php文件
全新安装pfSense2.60版本,然后开启shell,使用Winscp软件,将”/usr/local/www”和“/etc/inc/”目录的所有文件下载到本地硬盘。
制作文件列表
运行cmd程序,进入下载文件所在的目录。运行以下命令,分别制作两个目录的列表文件php.list和inc.list。使用notepad++等文本程序,将两个文件合并到一个列表文件php.list中。
dir *.php /s/b>php.list dir *.inc /s/b>inc.list
制作文件
安装完gettext 0.21以后,在程序的安装目录找到xgettext程序,复制到下载目录,然后执行以下命令,制作po文件。详细参数见官方使用手册。
xgettext --files-from="F:\gettext\php.list" --output=pfsense.po --language=PHP --extract-all --from-code=UTF-8
修改文件
使用notepad++打开pfsense.po文件,将不需要翻译的条目删除,根据官方的po语言文件格式,替换所有文件的目录列表形式。
翻译文件
使用poedit打开pfsense.po文件,逐项翻译并保存。保存后会自动生成pfsense.mo文件。
替换文件
将保存后的pfsense.mo文件复制到/usr/local/share/locale/zh_Hans_CN/LC_MESSAGES目录,替换原有文件。
切换显示语言
进入防火墙的Web界面,在”系统设置>常规设置”的语言选项,选中简体中文并切换。如果已经是简体中文,只需重启防火墙即可。
相关程序下载:
gettext0.21-iconv1.16-static-64
相关文章: