caozhu 发表于 2009-4-29 12:50

【转帖】关于汉化完成度, 7106/7100等build质量,及其他等等

相信这里很多人也用上7100甚至是中文语言包了,最近也有不少帖子,觉得相当多人把这些东西解释得过于神秘化了,其实如果你了解一般大型软件开发流程的话,很多事是不难理解的.

比如说7106的乱码问题,有人非要解释成是微软故意做手脚之类的,其实看了我发的http://bbs.pcbeta.com/thread-456574-1-1.html(转载在2楼)就能知道这本来就是很正常的技术过程罢了.

另外说到7100中文包里面的那些还没翻译成中文的地方. 其实,要是换你来主持开发工作,你也会知道不可能在RC把所有翻译都完成的. 为什么? 因为首先汉化必须在原始英文版本稳定后才进行. 比如说我是开发者,你是汉化者. 我今天在程序里面显示这么一句:

I love pcbeta.com.

可能你需要花1天时间去把它翻译成中文. 好吧,大家都知道RC阶段还是会有很多bug会被不停地修复,那么比如我明天修复了一个bug,其中需要把前面那句话改成

We all love pcbeta.com.

那么你就又要重新把这句话翻译一遍,又是一天,而且前面你用掉的一天就是白做了. 那万一我后天还要改动,怎么办?

这只是个很小的例子,如果你想想下windows 7中所有需要翻译的字串的数量,和所有语言版本的数量,你就会知道这个工作量的数量级了. 那么, 在RC出来之前很久以前,就必然需要定下一个日期, 比如说4月1号吧,我们规定你作为汉化者,需要在RC版中把4月1号之前所有的英文字串都翻译掉, 但是如果是4月1号之后新添加的或者修改的字串,你就不用考虑. 这样你的工作就好做多了.

当然4月1号只是个假设,实际日期可能更远,这也就是为什么会在官方语言包中还能看到不少英文,因为它们都是后来加进去的或者改动的.

再说下7106和7100的区别,其实,严格来说,7106是rtm的分支,而rtm的汉化工作是在一直进行的,其中可能包含那些没来得及切入rc的东西,因为7106的汉化倒有可能比7100更多也难说.

最后说说大家很关心的最终RC会是哪个build. 其实,那个并不重要. 从7077开始RC就进入一个把关模式了, 只有极少数严重的bug才会被允许在这个阶段被修复并且发到rc中去. 为什么只有严重的bug才会允许进rc? 因为这个阶段每个bug的修复的成本是非常高的,而且每次修复一个bug,就必然有制造更多更大bug的风险, 这个是一个权衡利弊的过程. 那么,我问你, 7077和第二天的7078到底有什么区别? 唯一的区别就是那一天修复了几个bug. 如果那一天一个bug都没有修复,那么这两个build就是完全相同的, 虽然build号,文件内容,md5值都不同, (因为即使不修复任何bug,还是会重新做一遍build).

现在到了7100了,好吧,它和7077有什么不同呢? 假如我告诉你从7077到7100一个bug都没修复,那岂不是完全相同了? 那你们这么多人研究了那么半天的build岂不是要***? 当然这是极端的最好情况, 实际上自然是会有很小一部分bug被修复的, 但是我可以告诉你的是这个数量太小了,以至于你基本看不出有什么区别了. (当然如果是个比较明显的bug那你还是能看出来的)

那么又有人会怀疑这个7100是不是最后5/5的正式版本呢? 要回答这个问题,你可以想象一下,假如你是开发团队的总负责,你会允许多严重的bug才一定要在这个节骨眼被修复呢? 每次修复一个bug都是要冒着制造更多bug的风险的. 假如有个bug是IE8不能正常访问pcbeta.com, 这个即使是真的也不可能在这个时候被允许修复, 即使这个问题对于我们可能是很大的,但是放在整个window 7的角度来看,还是太小了.

所以,现在这个阶段,你能够期望rc版本再发生变化的唯一可能,就是某个天才突然在半夜发现一个非常非常重大的安全漏洞什么的并且公布于众,或者说7100版本突然不能访问google了(笑),那么这个可能足以改变正式rc版本甚至推迟整个rc发布日期. 其他的小问题吗,其实从7077开始就不可能进rc了.

所以我看到这里的人不停地重装每一个新的build,我是很难理解的. 因为7077/7100/7106, 他们之间真的区别不大, 也就是若干的bug的区别,而且很有可能你根本没机会碰到那些bug. 真要问你区别在哪里,你肯定说不上来了.

[ Edited bycaozhu on 2009-4-29 12:53 ]

caozhu 发表于 2009-4-29 12:51

timchenyx:解答关于所谓7106中文乱码的由来

其实,这个不是bug,是正常的本地化过程. 你们看见的所谓乱码的正式名称叫做: pseudo localization, 伪本地化.

所谓pseudo localization,是在翻译还没有完成之前,先用程序自动对应英文的字串,生成一个特殊的本地化字串,用来占个位置,并且可以让测试人员进行初步的测试. 能测试的项目是:

- 测试是否所有的英文字串都可以被本地化,如果发现某个界面中还有纯英文字串,而非pseduo localized字串,就说明有bug.
- 测试本地化版本中的界面是否有字串截断的问题. 因为本地化中一个关键问题是某些语言的字串要比英文长很多,翻译过去之后就有可能放不下,而pseudo localization出来的字串会特意做的很长,这样可以找出此类问题.

那么哪些build中会有pseudo localization呢? 答案是普通的winmain build,比如你们拿到的7106,才会有. 而在escrow build, 比如从7077开始的winmain_win7rc中的build, pseudo localization是被禁用的. 因此在这些build中,如果还有字串没完成翻译,那么显示的将会是纯英文. 而像最早的7000的beta build显然也是取消pseudo localization的.

最终的RTM release自然肯定是所有翻译都会完工的,这点可以放心.

冷风天子 发表于 2009-4-29 13:26

解释很专业,也很全面,一定是个高手,呵~~~

caozhu 发表于 2009-4-29 13:29

timchenyx是这次的win7测试部门的专业测试员.经常看到他的一线消息
页: [1]
查看完整版本: 【转帖】关于汉化完成度, 7106/7100等build质量,及其他等等