现在的位置: 首页 > 综合 > 正文

关于软件国际化工具GNU GetText

2013年03月14日 ⁄ 综合 ⁄ 共 1710字 ⁄ 字号 评论关闭

软件的国际化Internationalization,在Linux社区中一般简称为i18n(去掉开始的I和最后的N,中间一共18个字符),就是使软件具有适应各国语言环境的能力,这牵涉到软件设计和软件编码的很多方面,包括文字编码、时区设置和时间表示方法、语法顺序、语句翻译、数字表示、货币表示等等,一般情况下工作最多的可能就是对语言翻译的支持。 
和国际化对应的,就是本地化Localization,在Linux社区中一般简称为l10n,也就是将软件转换成当地语言的过程。这一般是翻译过程,可能牵涉到少量的编码(当然,如果软件国际化能力不够的情形除外)。 

为了支持跨平台,因此微软的国际化模式就不予以考虑。另外找到两个开源的模式,一个是IBM的ICU4C,一个是GNU GetText。由于IBM的ICU4C考虑比较全面,但过于庞大,复杂的东西在应用中总会导致比较多的问题和代价,因此为简单计,在进行软件国际化工作中,我们可以采用GNU的GetText,GNU GetText是Linux下一个比较统一的国际化解决方案。 
由于GetText的核心库是采用LGPL授权的,因此可以在商用系统中链接使用。工具程序是GPL的。 

编写国际化代码的一些问题(Microsoft): http://www.microsoft.com/china/MSDN/library/archives/technic/develop/code.asp 
IBM的ICU4C中文介绍: http://www.ibm.com/developerworks/cn/opensource/os-icu4c/index.html?ca=dwcn-newsletter-opensource 
GNU/Linux 中文化探讨: http://www.debian.org/intl/zh/devel/zhongwenhua 
GetText的官方主页为: http://www.gnu.org/software/gettext 
在线手册为: http://www.gnu.org/software/gettext/manual/gettext.html 
已采用GetText的软件进行本地化(尤其是中文化)的工作流程和注意事项: http://i18n.linux.net.cn/method.php 
一个GetText中文使用介绍: http://cvs.woodpecker.org.cn/svn/woodpecker/newedit/tags/3.0/doc/i18n.txt 
关于GetText性能的讨论: http://lists.gnu.org/archive/html/bug-gnu-utils/2004-06/msg00004.html 
GetText相关语言文件的编辑工具(翻译辅助工具): http://www.poedit.org 
                                              http://citkit.ru/package/poedit/ 
关于不同语言下参数位置不同的输出格式问题: http://www.icequake.net/cgi-bin/info2www?(gettext)c-format 
初步试验结果: 
1. 必须在代码中使用bindtextdomain设置本地化文件的根路径(即(LANG)/LC_MESSAGES的所在目录)。 
2. 在Windows环境下,似乎不用setlocale,即使设置也没有用处,应该继续测试。 
3. 直接使用命令行进行转换可能会在调用iconv时有问题,因此直接使用编辑工具poEdit将.po文件翻译并转换到.mo文件。 

在Linux下,GetText依赖于Bash, Binutils, Bison, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed. 因此,是否适合嵌入式产品,还有待测试。

 

 

http://stack.blogbus.com/logs/4155249.html

抱歉!评论已关闭.