最近在研究 Typecho 的多语言切换(自动翻译)问题,官方也有提供翻译语言包。
但是有个问题,官方提供的翻译文件都是 .po 文件,我试了一下 Typecho 并不支持 .po 文件,放入指定文件夹后不显示,没有任何效果。
有人说是正式版 Typecho 不支持 .po 文件,开发版支持,但我用的就是开发版。
那只能把 .po 文件编译一下,整成 .mo 文件就行了。
这里需要 gettext 的 msgfmt 。
这里以 CentOS 为例,其他平台安装命令放在最后面。
sudo yum install -y gettext
如果您的系统不支持 sudo 命令,需要安装 sudo:
yum install sudo
然后执行转换命令,将 .po 文件转换成 .mo 文件:
msgfmt -o /langs/languages-master/en_US.mo /langs/languages-master/en_US.po
#msgfmt -o 新文件 源文件
注意顺序,不然会报错:
msgfmt: error while opening "/langs/languages-master/ja_JP_.mo" for reading: No such file or directory
更多 msgfmt 命令可以参考:
msgfmt --help
操作系统 | 包管理器 | 安装命令 |
---|---|---|
Windows | scoop | scoop install gettext |
macOS | HomeBrew | brew install gettext |
GNU/Linux | LinuxBrew | brew install gettext |
Debian GNU/LinuxUbuntuUbuntu KylinTails LinuxKali LinuxMX LinuxLinux MintDeepinantiXKDE neonPop!_OSZorin OSelementaryOSPCLinuxOS | apt | sudo apt-get install -y gettext |
CentOS | yum | sudo yum install -y gettext |
FedoraMageia | dnf | sudo dnf install -y gettext |
openSUSE | zypper | sudo zypper install -y gettext-tools gettext-runtime |
Alpine Linux | apk | sudo apk add gettext |
Arch LinuxArcoLinuxManjaro Linux | pacman | sudo pacman -Syyu --noconfirmsudo pacman -S --noconfirm gettext |
Gentoo Linux | Portage | sudo emerge gettext |
未经允许不得转载:w3h5 » gettext msgfmt安装及po/mo文件编译转换
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有