前序
本人,一名在軟件行業(yè)摸爬打滾多年的測試人員园匹,遇到過很多形形色色的bug雳刺,有讓人欣喜若狂的,有抓狂憤怒的裸违,有不屑一顧的掖桦,有讓人難堪的等等。一直想靜下心來供汛,將這些bugs心得寫出來枪汪,可每每發(fā)現(xiàn)有趣問題涌穆,都想記錄下來時候,結(jié)果總是由于各種原因戛然而止雀久,當(dāng)然主要原因還是個人懶宿稀,一次次與它們悄然而過,然后又慢慢將它們遺忘赖捌。昨天突然看到一句話祝沸,’念念不忘,必有回響’越庇,其實只要將一個小小心愿努力堅持下去罩锐,結(jié)局無論如何,至少我心有所向悦荒,結(jié)果‘響’不‘響’唯欣,其實都不是那么重要了,而總找借口的人搬味,結(jié)局還是比較悲哀的了境氢。如果你和我一樣,那就趕緊行動起來碰纬,談不上給別人帶來多少光和熱萍聊,但至少可以暖和自己,是不是親呢悦析!
好的寿桨,廢話不多說,說回主題bug的事强戴。
今天亭螟,很巧,我在測試過程中發(fā)現(xiàn)了一個有趣的bug骑歹,所以毅然而決然的打開notes预烙,將它記錄下來。
多語言翻譯
網(wǎng)站的多語言翻譯道媚,大家都很清楚扁掸,但是多國語言的習(xí)慣問題,您是否考慮的周全呢最域?像語言語法谴分,大概除了母語和英語,也許大部分的我們都無能為力镀脂,只能借助還算很牛逼的Google翻譯來完成我們偉大而艱辛的測試工作牺蹄。有人要問了,不是還有規(guī)格嗎薄翅?何必為難自己呢沙兰。是的虑省,有規(guī)格,但是規(guī)格也有錯的啊僧凰,所以作為測試的我們還得認(rèn)真啄蟲探颈。
今天發(fā)現(xiàn)的這個問題,具體是這樣的:
我們所做的網(wǎng)站目前支持英語训措,意大利語伪节,德語(走國際化的)。多國語言支持绩鸣,除了語言語法的方面怀大,我們還要關(guān)注各國語言的使用習(xí)慣問題,比如我下面的舉得這個例子呀闻,就是使用習(xí)慣問題化借。其實往往針對這類問題看似很小,但實際上影響卻很大捡多。
當(dāng)網(wǎng)站切換到德語時蓖康,頁面上頁碼顯示為‘1-10 von 17.287 Ergebnissen’,英語正常顯示為‘1-10 of 17,287 results’垒手,作為中國人蒜焊,習(xí)慣上對于‘17.287’這樣的顯示,還是蠻別扭的科贬。同樣的泳梆,頁面還有顯示價格的,比如: ‘€3,153.66'榜掌,按照習(xí)慣优妙,價格都能好理解,但是同樣是數(shù)字憎账,顯示格式不一樣套硼,存在一致性問題。
針對這樣的疑問鼠哥,上網(wǎng)了解了一下熟菲,原來小數(shù)點的表示看政,在不同地區(qū)不同國家的用法和習(xí)慣是有區(qū)別的朴恳,這對網(wǎng)站的多語言支持的問題又增加了難度。
下面是摘錄一部分wiki上關(guān)于小數(shù)點的描述允蚣。
小數(shù)點
小數(shù)點在數(shù)學(xué)里是一種基數(shù)點于颖。
不同地區(qū)用不同的符號來表達(dá)小數(shù)點。即嚷兔,其它語言與文化中表示小數(shù)與整數(shù)部分區(qū)隔的未必是“點”森渐,所以它的英文名字是decimal seperator或decimal mark做入。國際上使用阿拉伯?dāng)?shù)字國家與地區(qū)主要采用兩種小數(shù)點符號:“句點.”和“逗號,”。漢語地區(qū)和大多的英語地區(qū)都使用“句點.”同衣,但是大多的其他歐洲國家和其前殖民地都使用“逗號,”竟块。由于小數(shù)點符號的習(xí)俗影響其他數(shù)字分位符號的選擇,如千分位符號(也稱千位分隔符耐齐,group seperator)浪秘,所以此條目也涵蓋其它數(shù)字分位符號的話題。
如何權(quán)衡
問題一出埠况,為解決方案耸携,開發(fā)和測試就步入了白熱化階段,開發(fā)要做歸一化顯示辕翰,測試要遵循多語言小數(shù)點使用習(xí)慣夺衍,如何權(quán)衡成了我們爭執(zhí)的根源。當(dāng)然最終喜命,考慮到網(wǎng)站的國際影響度沟沙,我們最終還是選擇后者,用代碼上實現(xiàn)壁榕,畢竟我們是一個有追求有挑戰(zhàn)的團(tuán)隊尝胆。當(dāng)然,滿足了高要求护桦,就得付出苦逼的代價含衔,這個道理,IT行業(yè)的程序員們二庵,大家都深有體會贪染。
如何解決
至此,針對這個問題催享,最終我們達(dá)成了一致杭隙,也算是走了一大步,后面就是如何解決因妙,開始步入漫漫苦逼之路痰憎、、攀涵、
具體是如何解決的铣耘,這部分,因為還在掙扎中以故,待有了思路和方案蜗细,后面會更新,敬請期待。
相關(guān)問題
其實除了上面所說的小數(shù)點使用習(xí)慣外炉媒,還有其他踪区,比如,不同地區(qū)所規(guī)定的常用日期/時間格式表示方法也有所不同:
yyyy = 年份吊骤,mm = 月份缎岗,dd = 日期,MMM = 月份三字母縮寫白粉,mmmm = 月份全名密强,hr = 小時,mi = 分鐘蜗元,se = 秒鐘
國際標(biāo)準(zhǔn)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(羅馬數(shù)字)/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小時制)
結(jié)論
對于多語言翻譯振亮,有時候一個小數(shù)點巧还,一個符號的顯示等等,在不同地區(qū)都代表著不同的習(xí)慣和意義坊秸,而一旦使用不當(dāng)麸祷,隱含著各種意想不到的風(fēng)險,往往看似很小的顯示問題褒搔,卻會帶來很差的用戶體驗阶牍。當(dāng)然這也呈現(xiàn)了團(tuán)隊在項目實現(xiàn)的專業(yè)度,細(xì)節(jié)決定一切星瘾,掌握未來走孽,這話一點不假。