欢迎光临散文网 会员登陆 & 注册

Windows 伪本地化 & 本地化小史

2022-08-25 08:28 作者:STR-BSOD  | 我要投稿

这是下面这期视频的后半部分的文字版

上期回顾:

Windows 是什么时候引入伪本地化的?

据前微软员工 Michael S. Kaplan 称,

在开发 XP 或 Server 2003 或 Server 2003 R2 时,它(指伪本地化)并不存在。

事实上,它始于 Vista 的早期设计阶段。在当时,它被称为 Longhorn。

伪本地化构建首先在 Vista 的 Beta 1 中可用。

Kplan 的博客

但我们能在 Server 2003 的源代码中找到对XP测试版的伪本地化构建的引用。

可以在 Windows Server 2003 的源代码中找到对此构建的伪本地化版本的引用"NT\tools\ploc\run\readme.txt"

ie:autoploc -p:\\ntdev\release\main\usa\2499\x86fre\bin -w:tst -l:mir

——betawiki(https://betawiki.net/wiki/Windows_XP_build_2499)


那么,至少有两种可能:

1.那位员工记错了;

2.Windows XP 当时的“伪本地化”并没有与对应的语言环境,伪本地化的原理也与后来的 Windows 不同。

(这个问题我们先存疑,但我们可以确定,在 Vista(或者说,Longhorn)时就已经引入伪本地化了。)

而在已泄露的版本中,最早留有伪本地化痕迹的是 Build 5712,出现在命令提示符中。

5712 的命令提示符

(在已泄露的版本中)

而拥有伪语言语言包的构建大多出现在 Win8/8.1 的构建中,如 8331,7973-8102,9457 甚至 Win8 RTM 中。

而非 Win8 测试版有伪语言语言包的构建有 Build 9907。

伪语言语言包未泄露,但拥有局部伪本地化的版本有 9370,9466 等。

Build 8331
Build 7973

而在 7973-8102 中,伪语言语言包并未直接泄露,但可以用特殊方法手动开启。

(方法可以去看MicrosoftRTX2080 的 Build 8056 那期的后半部分,这里不再赘述)

一直到 Win11,我们也还能看到伪本地化的痕迹。(当然,已经修复)

Win11 中的伪语言

而在一开始,因为出于架构原因,不得不使用现有的语言环境,

所以当时微软内部选择了 tk-TM 作为伪语言的语言环境,当时它被认为是“永远不会成为 Windows 或 Office 中的本地化目标语言”的语言环境。

但是,到了 Win7 ,tk-TM 被用于标识土库曼语。

(其实在 Win7 之前,微软就已经不再使用 tk-TM 作为伪语言的语言环境。)

现在,微软选用三种名称来标识伪语言的语言环境,上期已经讲过,这里不再赘述。

最后,是 Windows 本地化的历史。

(引自雷蒙德 · 陈的博客 https://devblogs.microsoft.com/oldnewthing/20120726-00/?p=7043)

早在 16 位 Windows 时代,Windows 只针对单一目语言进行开发:英语。

尽管其中有可用于本地化的资源文件,但源代码中经常有针对英文的假设。

比如,它可能会假设文本阅读方向是从左到右,这就不适用于阿拉伯语等从右往左书写的语言。它可能还会假设单个字符对应单个字节(当时 Unicode 还没有被发明出来) ,这就不适用于使用 DBCS(双字节字符集)的中文、日文和韩文等语言。

Windows 的本地化团队进行了必要的代码更改,以使 Windows 在上述这些语言环境中工作,结果是出现了三个不同的版本 Windows 的代码库,通常称为西方、中东和远东。

比如,如果你想让 Windows 支持中文,你必须购买远东版本的 Windows。

而在当时,如果你遇到了西方语言的问题,比如德语,那么你就不走运了,因为没有德语 Windows 代码库;它与英语等语言使用同一个西方代码库。

举个例子,德语中的“是/否”为“J/N”(Ja/Nein),但如果想回答“是”,你必须输入“Y”。

Windows 95 尝试了一个疯狂的想法:在开发周期中将 Windows 翻译成德语,以帮助解决这些仅限于德语的问题,当然,这会产生大量的额外费用,因为微软必须在整个产品周期中都需要有翻译人员,而不是到了最后阶段才雇用他们。

多年来,Windows 团队开发了一些技术,用于在开发周期的早期识别这些潜在的本地化问题。Windows 被“早期本地化”为德语和日语,以覆盖西方和远东的案例。后来添加了阿拉伯语,将覆盖范围扩大到了中东,并且在 Windows 7 中添加了印地语以涵盖仅适用于 Unicode 的语言。

翻译 Windows 的每个内部版本都有其优点和缺点:优点是它可以使得在仍有时间修改代码以解决问题时就能发现问题。缺点是在本地化时代码可能会发生变化,而这些代码更改可能会使您迄今为止所做的工作无效或者毫无意义。

例如,有人可能会编辑您已经花时间翻译的语段,这将迫使您重新翻译它,或者至少验证旧的翻译仍然有效。

最终,Windows 的本地化人员想出了一个“聪明的解决方案,它可以在避免大多数缺点的同时有效地发现问题”这个解决方案就是刚刚介绍的“伪本地化”。

这期专栏到这里就结束了,感谢大家的阅读!






Windows 伪本地化 & 本地化小史的评论 (共 条)

分享到微博请遵守国家法律