首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么你不能旋转文字?

在上一篇文章中,我曾说过,我们宁愿将”开始”这两个字隐藏也不愿意采用其他方案。在评论区有人就问了:”为什么不可以将文字进行垂直显示呢?”

啊(惊奇),你是时候开始了解垂直文字的精彩世界了。

我们在设计新版的XP开始菜单的时候,也想过将文字进行垂直显示。在这种设计方案中,你的用户名将会在菜单的左侧进行垂直显示,而不是在菜单的上方水平显示。

对于传统的以垂直方式显示的语言,例如中文,对它们进行旋转是存在很多问题的。因为你的机器上可能并没有按照中文字体。想象这样一种情况,X, Y和Z是中文汉字,表示的是你的名字。在传统的垂直显示方式中,它看起来会像下图1中所显示的那样。需要注意的是,英文是以顺时针进行旋转的,这样就可以保持自顶向下的阅读模式。

为了和西方文字的显示方式保持一致,我们可以以从左至右的方式来显示中文汉字,这样你的名字就会显示为:XYZ (Amy Smith)。

这个时候,和传统西方文字的旋转相比,上述的文字会以逆时针方式旋转而被显示为”Amy Smith”,见上图中的Example 2。

如果使用西方文字显示方式来显示中文,例如”XYZ (Amy Smith)”,则会出现上图中Example 3的结果。如果从中文角度来看,这样的显示方式就完全颠倒过来了。本来应该显示在最上面的X,这个显示在了最下面。

Windows经过多年的进化后,已经完全实现了操作系统的多语言支持。这意味着,不管显示的语言是哪种,都不会影响到底层的系统代码。修改系统的语言很少会修改被显示的字符串。这还意味着,系统中不会出现和语言相关的用户界面。在这个案例中,我们不能为中文添加一种独立的字符串旋转规则(这个规则与英文或者德文完全相反)。

(即使我们可以有独立的旋转规则,我们也需要知道名字是以上面描述的格式组装而成,还是以”Amy Smith (XYZ)”这种格式。在这种格式中,我们应该如同上图中Example 2中那样进行旋转,因为在它是一个嵌入有中文的英文字符串,和我们上面列举的例子恰好相反(上面的例子是嵌入有英文字符的中文字符串),如果你曾经碰到过阿拉伯语和英语混合在一起的情况,就会看到标点符号带着相似程度的混淆。

操作系统的多语言特性,也解释了为什么你会看到类似于”1 folder(s)”这样的字符串,而不是”1 folder”和”2 folders”。为什么不使用两种格式的字符串表示呢?一个表示数量是1的情况,另一个表示数量为2或者更多的情况?

一方面在于,如果设计两种不同的格式,那会显著地增加需要维护的字符串的数量。另一方面,有一些语言,例如斯洛文尼亚语,除了表示单个的”singular”和多个的”plural”,还有一个表示两个的”dual”。在印尼语中,有单个的”singular”,两个的”dual”,三个的”trial”,和一些的”paucal”,以及很多的”plural”。因此,你可能需要对每个包含可替换数字的字符串使用多达五个不同的版本。

除了上面说的例子,还有另外一个相似的例子。当表示表单的属性的时候,我们通常会使用”Property: Value”的形式,例如”Last modified: Monday, September 29, 2003″,而不是采用短语形式(“Last modified on Monday, September 29, 2003”)。这对于避免出现语法错误十分必要。如果你需要显示一个短语,则你需要考虑各种语法结构(主语/动词,性别表示,数量表示等)是否正确,而这恰好是计算机不擅长的。所以,唯一比较安全的做法是以”Property: Value”这样的格式来显示各种属性。

但是,我们还对上面所说的”不依赖语法”规则开放了一次例外,那就是:个性化文件夹。如果你观察到某个用户的”My Documents”文件夹,则它会显示”Chris’s Documents”。我们将这个要求提给了负责翻译的同时,他们花了很多精力来确保在任何语言下的语法的准确性。

(幸运的是,我们不需要处理那些模板的形式依赖于我们知道Chris是男人还是女人的语言。)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200515A0R58K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券