前几天汉化了Archlinux下的mintMenu,今天又来撸mate-mplayer的汉化。
mate-mplayer.mo在/usr/share/locale/zh_CN/LC_MESSAGES里已经有了。strace mate-mplayer发现它也能找到mo文件的路径,可就是出不了中文界面。
后来在终端里运行msgunfmt mate-mplayer.mo -o mate-mplayer.po发现了错误提示:
msgunfmt: 文件“mate-mplayer.mo”包含非 NUL 结束的字符串
看来是mo文件本身有错误。
于是在github网站(https://github.com/NiceandGently/mate-mplayer/blob/master/po/zh_CN.po)找到了po文件源码。
然后拷贝源码保存为po文件,用msgfmt mate-mplayer.po -o mate-mplayer.mo生成中文包,放到/usr/share/locale/zh_CN/LC_MESSAGES里,启动mate-mplayer终于出现了中文界面。
经验:
1,linux软件翻译汉化步骤其实很简单:用msgunfmt将mo文件生成po源码,然后用poedit或记事本软件打开它即可开始翻译,编辑完po源码后用msgfmt编译成mo包放到/usr/share/locale/zh_CN/LC_MESSAGES即可搞定程序界面汉化;
2,已经有mo汉化包的时候仍出现不了中文界面,主要有两种原因:要不是路径错误,要不就是mo汉化包本身错误。