前序
本人,一名在软件行业摸爬打滚多年的测试人员,遇到过很多形形色色的bug,有让人欣喜若狂的,有抓狂愤怒的,有不屑一顾的,有让人难堪的等等。一直想静下心来,将这些bugs心得写出来,可每每发现有趣问题,都想记录下来时候,结果总是由于各种原因戛然而止,当然主要原因还是个人懒,一次次与它们悄然而过,然后又慢慢将它们遗忘。昨天突然看到一句话,’念念不忘,必有回响’,其实只要将一个小小心愿努力坚持下去,结局无论如何,至少我心有所向,结果‘响’不‘响’,其实都不是那么重要了,而总找借口的人,结局还是比较悲哀的了。如果你和我一样,那就赶紧行动起来,谈不上给别人带来多少光和热,但至少可以暖和自己,是不是亲呢!
好的,废话不多说,说回主题bug的事。
今天,很巧,我在测试过程中发现了一个有趣的bug,所以毅然而决然的打开notes,将它记录下来。
多语言翻译
网站的多语言翻译,大家都很清楚,但是多国语言的习惯问题,您是否考虑的周全呢?像语言语法,大概除了母语和英语,也许大部分的我们都无能为力,只能借助还算很牛逼的Google翻译来完成我们伟大而艰辛的测试工作。有人要问了,不是还有规格吗?何必为难自己呢。是的,有规格,但是规格也有错的啊,所以作为测试的我们还得认真啄虫。
今天发现的这个问题,具体是这样的:
我们所做的网站目前支持英语,意大利语,德语(走国际化的)。多国语言支持,除了语言语法的方面,我们还要关注各国语言的使用习惯问题,比如我下面的举得这个例子,就是使用习惯问题。其实往往针对这类问题看似很小,但实际上影响却很大。
当网站切换到德语时,页面上页码显示为‘1-10 von 17.287 Ergebnissen’,英语正常显示为‘1-10 of 17,287 results’,作为中国人,习惯上对于‘17.287’这样的显示,还是蛮别扭的。同样的,页面还有显示价格的,比如: ‘€3,153.66',按照习惯,价格都能好理解,但是同样是数字,显示格式不一样,存在一致性问题。
针对这样的疑问,上网了解了一下,原来小数点的表示,在不同地区不同国家的用法和习惯是有区别的,这对网站的多语言支持的问题又增加了难度。
下面是摘录一部分wiki上关于小数点的描述。
小数点
小数点在数学里是一种基数点。
不同地区用不同的符号来表达小数点。即,其它语言与文化中表示小数与整数部分区隔的未必是“点”,所以它的英文名字是decimal seperator或decimal mark。国际上使用阿拉伯数字国家与地区主要采用两种小数点符号:“句点.”和“逗号,”。汉语地区和大多的英语地区都使用“句点.”,但是大多的其他欧洲国家和其前殖民地都使用“逗号,”。由于小数点符号的习俗影响其他数字分位符号的选择,如千分位符号(也称千位分隔符,group seperator),所以此条目也涵蓋其它数字分位符号的话题。
如何权衡
问题一出,为解决方案,开发和测试就步入了白热化阶段,开发要做归一化显示,测试要遵循多语言小数点使用习惯,如何权衡成了我们争执的根源。当然最终,考虑到网站的国际影响度,我们最终还是选择后者,用代码上实现,毕竟我们是一个有追求有挑战的团队。当然,满足了高要求,就得付出苦逼的代价,这个道理,IT行业的程序员们,大家都深有体会。
如何解决
至此,针对这个问题,最终我们达成了一致,也算是走了一大步,后面就是如何解决,开始步入漫漫苦逼之路、、、
具体是如何解决的,这部分,因为还在挣扎中,待有了思路和方案,后面会更新,敬请期待。
相关问题
其实除了上面所说的小数点使用习惯外,还有其他,比如,不同地区所规定的常用日期/时间格式表示方法也有所不同:
yyyy = 年份,mm = 月份,dd = 日期,MMM = 月份三字母缩写,mmmm = 月份全名,hr = 小时,mi = 分钟,se = 秒钟
国际标准ISO 8601:yyyy-mm-dd,hr:mi:se(24小时制)
澳大利亚:dd/mm/yyyy;MMM dd, yyyy;hr:mi:se a.m./p.m.(12/24小时制)
奥地利、德国、瑞士:dd.mm.yyyy;hr:mi:se Uhr(24小时制)
比利时:dd/mm/yyyy;hr:mi:se(24小时制)
巴西:dd/mm/yyyy;hrhmim;hr:mi:se(24小时制)
加拿大:dd/mm/yyyy;yyyy-mm-dd;hr:mi:se(英:12小时制;法:24小时制)
加拿大-溫哥華:mm/dd/yyyy
哥伦比亚:dd/mm(罗马数字)/yyyy;hr:mi:se(12小时制)
捷克:d. m. yyyy;dd.mm.yyyy;yyyy-mm-dd;hr:mi:se(12/24小时制)
丹麦:d.m.yyyy;d/m-yyyy;hr:mi:se(24小时制)
中国:yyyy年m月d日;hr时mi分se秒;hr:mi:se(12/24小时制)
印度:dd-mm-yyyy;hr:mi:se(12/24小时制)
日本:yyyy年m月d日;hr時mi分(12/24小时制)
韩国:yyyy년 m월 d일 오전(上午)/오후(下午) hr시 mi분 se초(12/24小时制)
英国:dd mmmm yyyy,dd/mm/yy,hr:mi:se(12/24小时制)
美国:mm/dd/yyyy;mm/dd/yy;mmmm dd, yyyy;hr:mi:se(12小时制)
臺灣:yyyy/mm/dd;mm/dd;時:分:秒(12/24小时制)
结论
对于多语言翻译,有时候一个小数点,一个符号的显示等等,在不同地区都代表着不同的习惯和意义,而一旦使用不当,隐含着各种意想不到的风险,往往看似很小的显示问题,却会带来很差的用户体验。当然这也呈现了团队在项目实现的专业度,细节决定一切,掌握未来,这话一点不假。