简介

po语言包是一种翻译资源文件,用于支持多语言软件的本地化。po是Portable Object(可移植对象)的缩写,通常由程序的源代码提取,用于翻译人员进行文本的翻译和修改。mo代表Machine Object,这是一个二进制数据文件,是po文件编译后的产物,通常我们汉化程序时,如果没有po文件,可以用mo文件反编译出po文件进行多语言的翻译。

OPNsense和pfSense都是基于Gettext的标准进行开发,支持多语言显示,方便了全球各地的用户使用。由于OPNsense和pfSense官方已经很久没更新po语言模板,导致志愿者参与的其他语言翻译也不能及时更新,现在发布的版本,除了本语英语外,其他多语言显示并不完全。

官方不提供,我们可以使用Gettext工具来提取翻译词条,制成po语言文件并汉化,替换系统自带mo文件,实现Web界面汉化。

需要用到的软件:

下载文件

安装 pfSense 和 OPNsense 最新版本,开启 shell 后,将/usr/local/www 和 /etc/inc/ 目录的所有文件下载到本地硬盘( OPNsense下载/usr/local/www、/usr/local/opnsense/mvc/app目录下所有文件)。

制作文件列表

运行cmd程序,进入下载文件所在的目录。运行以下命令,制作不同文件的列表文件php.list、inc.list、xml.list。

dir *.php /s/b>php.list 
dir *.inc /s/b>inc.list
dir *.xml /s/b>xml.list

使用notepad++,将文件合并到一个列表文件po.list中。

提取po文件

安装完gettext以后,在程序的安装目录找到xgettext程序,复制到下载目录,然后执行以下命令,制作pfSense的po文件。

xgettext --files-from="po.list" --output=pfSense.po --extract-all --from-code=UTF-8 --no-location --sort-by-file

参数的详细信息,可以运行“xgettext –help”获取,也可以浏览使用手册了解详细信息。

整理文件

用notepad++打开pfSense.po(OPNsense.po)文件,将不需要翻译的条目手动删除。

翻译文件

使用 Poedit 打开 pfSense.po(OPNsense.po),逐项翻译并保存。保存后会自动生成 pfSense.mo(OPNsense.mo)文件。有网友开发了自动翻译工具,可以减少部分工作量。

替换文件

将 pfSense.mo 文件上传到 /usr/local/share/locale/zh_Hans_CN/LC_MESSAGES 目录,替换原有文件(OPNsense 将文件 OPNsense.mo 上传到/usr/local/share/locale/zh_CN/LC_MESSAGES目录)。

切换语言

重启防火墙,找到语言选择选项,切换简体中文即可。

  • 无标签
写评论...