LingosHook:1.4.000 and gettext

LingosHook:1.4.000 and gettext


    看,下面是什么?!

LingosHook:1.4.000 and gettext_第1张图片

    不认识了吧?就是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版本就是支持中文了。。。要新增什么功能还没有计划好。。。
   

你可能感兴趣的:(LingosHook:1.4.000 and gettext)