|
楼上有几位对国际化的理解有误。
国际化是i18n,说一个软件国际化了,并不是把他的内容都翻译出来了,而是他里面用到的各种词汇和语言要素都是分离于程序逻辑之外的模块。客户(广义的客户,也可以是后续的开发)可以只要映射好新的词汇,立即就能替换掉原有的,并且最好是支持同时装载多种语言,根据客户环境动态变化的。这个语言包部分的替换过程应该就是简单的设置,而不再牵涉到代码的改变,这样可以说是国际化了
至于翻译的部分,是属于本地化i10n的范畴了
另外还有一个 language certification, 这个测试是对于输入,输出和内部处理的数据流中ASCII字符的处理,如果你的软件能够识别输入的特殊ASII字符(很多这些字符是被除英语外的语言所使用的内码),而不把他们简单的当作特殊符号,比如一个数据库,你可以支持中文的查询,更新,那么就通过了中文的language certification.
我原来做过1个月的i18n, 那时候产品还没到后期,只是经理让我实验性的做的,况且我们这个产品比较特殊,不太会有人搞本地化。。。所以随便做了下国际化的测试。大致介绍下情况给你:
这个产品服务器部分是通过命令行操作的,所以本地化完全忽略。。。测试的主要是一个管理工具和一个浏览工具。都是基于web的。这些部件使用了公司自己customized jsf,有一部分通用部件,比如登录按钮这些分语言包来自公司的技术中心的统一文字包,他们已经完成i10n了,这部分是技术中心的事情,他们是会动态适应客户环境的,所以我只是装了9个版本的windows语言包,逐一手工验证。
然后一部分是我们的开发设置的,这部分没有i10n,所以我们写了一个perl的脚本,通过perl的几个包风别自动生成unicode和本地编码的文件,然后加到jcf的文件设置里面去。结果是用unicode的都通过了,好在我们的要求不高,基本就算过了。真的要完全测试的话,光这样随便生成还是不够的,要考虑生成些特别的字符,你可以去参考网上的资料,这方面微软比较在行,有不少在线资料的。
另外一部分是在applet,很上面差不多,也是在定义文件里设置一下就好了。同时要看一下,比如同时加了2个包,德语和意大利语,那么用两个这个语言的浏览器应该能同时正常访问,而且都现实各自语言。
至于unix和linux下,主要是看浏览器,系统本身没什么语言包了,mozilla对东亚语言支持不行,不过我们也不在乎。如果你是非基于web的程序,那么设置上最多有点区别,思路应该差不多,生成各种语言的文件来替换原有的就可以了。
由以上可以看到,i18n实在是在设计之处就已经定了大势了,如果设计时没有很好的分离出来语言包,那后面是很费力的了,作为QA的话测试也很麻烦了,如果是这样,换句话说这个软件就是没有做到i18n,因为每一次更换都需要开发部门调整程序的了。
偶这方面只是偶然涉及,知道不多,知无不言:)专业的莫见效 |
|