云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

文件存储_虚拟主机国内_高性能

小七 141 0

我身边的朋友中追求个性的人很多,但我最佩服的是我表弟小周。他的人生处处都把"酷"作为唯一的行事准则,甚至反映在了高考报考这种人生大事上。

"我要学最酷的专业。"

深知他个性的我明白这事挡不住,只能顺着。于是给他推荐长沙民政职业技术学院的殡仪学院,里面的专业随便说一个出来都是让人目瞪口呆。何止是酷,简直酷到口吐白沫!

他爸妈听了我的建议恨不得打死我,只有小周眼放金光,作势就要把志愿填了且不服从调剂。全家人一致决定剥夺我提出建议的权利,并通过各种威逼利诱、恐吓威胁终于把小周的殡仪梦想扼杀于摇篮之中。

可强权暴政镇压不住一颗红彤彤的向往个性的心,最终小周还是报考了一个极其冷门的专业——北外的豪萨语专业。

"先不说这个专业多冷门,就这个名字,说出来,酷不酷?"

"酷酷酷!"我连声附和。

可后来我才知道这真的是一门极其冷门极其古老的语言,甚至古老到了仍在大量使用象声词的程度。比如鸭子就叫"啊呱呱"(agwagwa),两只鸭子就叫"啊呱呱啊呱呱"。感叹这孩子真有个性之余,我也在内心暗暗替小周祈祷,毕业千万别去了当地的养鸭场工作。实在无法想象他用豪萨语骄傲地给客户介绍"我们公司年产50万只鸭子"会是怎样磅礴的景象。

今天的文章跟鸭子无关,我只想谈一谈语言。

据统计世界上已存在的语言多达5000多种,即便不考虑豪萨语这种冷门语言,被广泛使用的语言也有几十种。把温暖(chǎn pǐn)洒满人间是每一个程序员的梦想,可你又不能指望每一个客户都使用英语,这时便产生了软件Globalization这一概念。

作为SAP九大Product Standards之一的Globalization不单单是指文本的翻译,还包含支持多货币、支持各国相关法律、支持不同国家业务流程等要求。为了满足这一系列的标准,不但需要开发人员有过硬的业务知识,有时还需要花大把精力实现一些枯燥复杂的功能(比如为满足阿拉伯语,需要UI支持从右向左的排布)。但是在产品的设计和开发初期,如果开发人员愿意花费极少的精力去留心一些方面,那么就可以大大降低未来出现Globalization问题的概率。下面我们就列举几个例子(感谢Ray Ding和Vicky Chen同学对文中部分内容的研究)。

在UX设计UI布局的初期,就应该将Globalization纳入考虑,而这时最容易引发的问题就是空间不够。一套布局在英文环境看上去美轮美奂,并不代表在其他语言环境中也有很好的用户体验,有时甚至会影响到可用性。比方说下面这个"添加"按钮,在英文环境下看起来还不错,但是切换到了德语就会让人完全看不懂。

大多数情况下,一个英文单词的长度是短于其他语言相同意义的单词。而我们大多数的产品都是以英语作为第一版语言进行开发的。当用户已经习惯了英语的布局之后,这时再因为引入其他语言而大幅度更改页面布局,将会是非常痛苦的事情。所以,请永远记得给文本足够的空间。

可是多大才算足够呢?幸运的是我们有一个工具叫做Text Space Calculator。它能够根据你提供的英文文本给你推荐一个能够满足90%以上情况的长度。感兴趣的同学可以看一下它的说明文档,也许你会发现它背后的逻辑非常简单粗暴,但是的确能够帮助到我们。同时它还有一个Bridge的版本,你可以在Bridge中搜索"UI text space calculator"然后把它添加进你的应用。

另外一个非常实用的工具就是Pseudo,它的基础就是上面的Text Space Calculator。你可以通过它快速的发现潜在的文本截断问题,同时它还能够帮助你发现UI上的Hardcode以及拼接文本。

拼接文本是指在i18n文件中将某些固定文本以参数的形式传入,并拼接在一起的方式。这样做的好处是可以在运行时动态的生成一些文本。类似的代码在我们的产品中屡见不鲜,可当我们开始考虑多语言的时候,突然间一切可能都玩不转了。

也许……你hardcode了标点符号

一天,你的PO告诉你"我们把所有有效的产品都展示给用户吧!这真是个伟大的idea!"于是,大数据系统,免费云服务器,你可能就写下了这样的代码:

一切看起来这么完美,多语言的情况也加以考虑了,然后你在英文环境中测试了一下,并得到了想要的结果:Your active products: "apple" "orange" "banana"。但实际上你忽略了双引号,在不同的语言中双引号看起来有可能是不同的。与之类似的还有括号,句号等。虽然我并不认为这是一个致命的问题,但是从Globalization的角度来讲它确实不是一个完美的解决方案。

即便你的客户是冯绍峰,也不要随便把人家的名字倒过来写