《国际化软件开发》读书笔记——感想和经验总结

 


<script type="text/javaScript">function doZoom(size){ document.getElementById('zoom').style.fontSize=size+'px'}</script> 欢迎访问作者的个人主页(http://www.mrspace.net/

一、给Static、Label控件保留足够的长度

    据说中文是最简洁的语言,当然我对其它语言的了解比较有限。不过根据我经手的几个日语和英语的产品界面来说,大多数界面上的句子都是中文的要短些。所以不要忘记给你的标签控件保留足够的长度,最好甚至多准备一行空间,或者干脆自己写一个能够自动改变长度的控件——顺便说一下,Delphi 的TLabel控件的AutoSize 属性很不可靠,特别是上面的文字使用非英文的时候。

二、尽可能不要在一个显示字符的控件右边再排一个控件,假如非得那么做,记得留够空间。

图片1

图片1描述的是一个典型的失败例子。你完全可以想象,在试图翻译成日语或者英语的时候,字符串长度的问题会谋杀掉你多少头发。另外一个更加可怕的事实就是——阿拉伯文字的排列甚至根本就是与中文或者英文相反的!所以这样的界面基本不能指望通过资源替换来完成国际化。假如你手头有这样的界面,并且你忽然发现你的老板跟穆罕默德来往很密切…… 你最好跟你的同事们讨论一下,改掉这个界面布局吧

三、图像上不要带文字!

    我知道你很难在你的界面上画出美术们画出来的那种艺术字效果,但是无论如何,你肯定会发现修改图像上的文字是件苦差使,特别是你在维护很多语言版本的产品的时候。也许用英文会好一些——这个星球上大多数电脑用户或多或少可以懂点英文,但是99%的美国人不懂中文。当然,那不是一个很理想的解决办法,会影响你讨好本国用户的努力。比如对一个普通的中国电脑用户来说“金山毒霸”一定比“Kingsoft Antivirus”来得亲切,不信你可以问一问身边的朋友。毫无疑问,更好的本土化一定会给用户带来更好的体验。另外,你也许还会有其它的不能完全依赖英文的理由,比如品牌上的原因,或者其它的。

    所以尽量把文字放到StringTable 里面,尽量不要把文字写在图片上。假如对字体有更高的要求,可以尝试购买一下某些漂亮字体的分发许可,然后在产品里带上它。

四、有些事情让系统替你操心

    “桌面”还是“Desktop”?或者在日语里面的其它什么词?其实很多时候你根本不需要关心,因为你需要的仅仅是获得当前桌面的路径,你才不关心它究竟叫“桌面”还是“哈里波特”呢。这个时候最好的办法是用系统给你提供的API SHGetFolderLocation,而不是去问你的翻译到底应该用什么词语。(友善的提醒一下,不同版本的shell32.dll,提供了不同的能力,要注意版本说明。

五、他山之石

    我还记得两年前面对第一个英文版时的郁闷,我们雇佣的一个翻译公司把产品中所有的中文都给出了一个臃肿的、符合语法规则但冗长不堪的英文翻译。翻译中充斥了大量的介词,它们甚至夹杂在了大多数的名词中。任何一个通用产品都不会这样用英语。“你的语法是正确的,你说的确实也是这些东西—— 但是人们通常不使用这个说法!”最后我们只好自己动手翻译了其中很大一部分的用语。

    假如你对自己的专业英语水平不大有信心,大多数我们在开发的产品都有它们的英文同类,你可以参考它们的用语,不要使用一些很奇怪的说法,哪怕它们是语法正确的。同样的原则适用于各个语言。拥有精通目标语言的同事是件幸运的事情——一个熟悉日语的程序员比一个日语的高级翻译对产品的日文化帮助更大。假如你身边有很好的资源,千万要利用好。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值