看,下面是什么?!

不認識了吧?就是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版本就是支持中文了。。。要新增什么功能還沒有計劃好。。。