看,下面是什么?!
不认识了吧?就是LingosHook,全中文的LingosHook!
一直想着写个中文版的LingosHook,但一想到要维护中、英文两个版本就有点怕,所以一直没有去做。这次下决心做的时候,才发现实际wxWidget最i18n支持的很好的。。。
先说wxWidget,其支持通过gettext工具制作语言包的,并直接提供了字符串宏来自动处理:
1. wxLocale类负责语言的管理工作,如设置当前语言、指定语言包位置等;
2. _()宏,将根据当前设置语言的不同,自动读取语言包,处理语言转换;
3. _T()、wxT()宏则跟_()宏相对应,其中的字符串不会因为语言不同而转换,可用于需要转换的地方,如SQL语句等;
4. 这三个就够了。。
再说gettext,这个刚用,不熟悉,简单说下:
1. 下载gettext-tools-0.17和gettext-runtime-0.17,这里下载
http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/ 2. 通过./bin目录下的xgettext自动提取代码中的字符串;
xgettext -a .\LingosHookApp\*.cpp .\LingosHookApp\*.h -o lang.po
3. 编辑输出.po文件,就是翻译了;
4. 使用msgfmt编译.po文件到.mo文件;
msgfmt -o lang.mo lang.po
5. 将.mo放到指定目录就好了。
简单吧,这里多说下编辑.po文件是的经验,只做了中文的转换,其它应该类似吧。。
1. 先将.po中的CHARSET改为UTF-8;
2. 使用编辑工具设置编码为UTF-8,然后再翻译;(我使用的是Notepad++,对付这个很好用)
3. 翻译好后,将编码转换回ASCII,原因是如果直接用msgfmt处理UTF-8的文档会有错误的;
4. 就好了。
真的很简单,有兴趣的下载个
lang.po,根据自己的需要翻译好,然后发给我,LingosHook就可以再支持一种语言界面了。。。。
<---- 要失望的分割线---->
嗯,1.4.000版本就是支持中文了。。。要新增什么功能还没有计划好。。。