Codejie's C++ Space

Using C++

LingosHook:1.4.000 and gettext


    看,下面是什么?!



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

posted on 2011-03-19 22:15 codejie 阅读(1784) 评论(8)  编辑 收藏 引用 所属分类: C++LingosHook

评论

# re: LingosHook:1.4.000 and gettext 2011-03-21 10:17 巫云

请问,这个可以移植到ubuntu下面使用吗?  回复  更多评论   

# re: LingosHook:1.4.000 and gettext 2011-03-21 12:08 codejie

@巫云
除了HOOK用了Windows API外,其它都是标准C++,包括GUI部分都能跨平台的。但我觉得问题是,Lingoes好像不能在Linux上跑吧?LingosHook是一个其的增加应用,脱离它用处还真不大了,除非不用来取词,只是管理和背单词那是可以的。  回复  更多评论   

# re: LingosHook:1.4.000 and gettext 2011-03-22 21:16 haolly

要中文版干什么。。。。。。
英文的挺好  回复  更多评论   

# re: LingosHook:1.4.000 and gettext[未登录] 2011-03-22 22:59 codejie

@haolly
。。。只是为了多语言,大家都可以定制自己使用语言的界面了就。。。练手,写了玩玩,好不。。。  回复  更多评论   

# re: LingosHook:1.4.000 and gettext 2011-03-23 13:13 wdj


热切盼望能在“自动朗读语音”的基础上增加一个选择TTS合成语音的选项,这样就不用再受windows自带的那个TTS的折磨了!  回复  更多评论   

# re: LingosHook:1.4.000 and gettext 2011-03-24 12:24 codejie

@wdj
麻烦先试试系统TTS设置里面能不能配置下,这个我现在还不熟悉的。。  回复  更多评论   

# re: LingosHook:1.4.000 and gettext 2011-03-25 22:43 haolly

@codejie

我一直害怕看英翻中的东西,特别是软件。哈哈  回复  更多评论   

# re: LingosHook:1.4.000 and gettext[未登录] 2011-03-27 23:25 codejie

@haolly
哈哈,哈哈,实际我也都用英文的系统。。。这不是因为我E文不好,怕描述的不清楚,才用中文再来一次了。。。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

Using C++

导航

统计

留言簿(73)

随笔分类(513)

积分与排名

最新评论

阅读排行榜

评论排行榜