gettext 0.13多语言支持工具

gettext 的 0.13 版本是个挺实用的老工具,尤其适合你想快速把程序多语言化的时候用。它不是那种一看就高大上的家伙,但胜在实用、稳、好上手。像平时开发 C++项目,只要加个_()宏,就能把字符串标出来,方便后面统一翻译,省了不少事。

gettext 工具链的组合拳还挺齐全,xgettext负责抓字符串、msgfmt编译翻译文件,配合Poeditmsgmerge这种小工具,翻译流程跑得顺。哪怕是冷门语言或者右到左的阿拉伯语,它也扛得住,Unicode 支持做得比较稳。

0.13 这个版本性能上有过优化,加载翻译文件快了不少,接口也更灵活了。你可以更细粒度地控制翻译逻辑,比如错误这块也做了提升,调试时会舒服点。感觉用起来比较省心,是在老项目里,升级不容易出坑。

要注意的地方嘛,最好项目结构一开始就规划好,翻译文件要放到规范的目录下,比如locales/zh_CN/LC_MESSAGES这种,不然运行时找不到文件就麻烦了。多语言的开发环境下,推荐加个语言切换机制,会更灵活。

如果你做的是面向全球用户的软件,那 gettext 真挺值得一试的。用熟了之后,哪怕是 Unity、Laravel、Django 这种框架配合,也挺方便。下面这几个链接也蛮有,看看不同平台怎么整合 gettext,思路会清晰不少。

gz 文件大小:6.23MB