我前幾周在微軟Ignite the Tour北京大會上,分享了如何開發一款面向全世界用戶的Teams App,里面介紹了在開發Global Ready的app時會遇到的各種挑戰,反響很好。所以我準備寫幾篇文章,將這些內容分享給沒有時間參加大會的同學。
這篇我主要想講一下,開發一款Global Ready的Teams App,在文化(Culture)方面會遇到的挑戰。
假設我們現在開發了一款定時提醒軟件,有一個用戶給我們的bot發了一條消息:讓bot在2/10/2020 3pm
提醒此用戶給朋友買生日禮物。當我們的app收到了這么一個日期時,我們如何判斷這是幾月幾號呢?
很多在美國外企工作過的人會立刻反應過來說,這個是2020年2月10日。但是!一些在英文留學過的人會說,這個是2020年10月2日。到底哪個正確?
實際上這兩個都是正確的,因為在美國等一些國家,他們的日期格式是月 / 日 / 年
,但在另一些國家,比如英國,澳大利亞,他們的日期格式是日 / 月 / 年
,所以,當我們去解析這個日期格式的時候需要特別注意當前用戶所在的國家區域,根據用戶的culture不同,對日期字符串進行不同的解析。
看完日期,再來看一下數字。當用戶發文字消息給你的bot,說幫我轉賬295,000
元,那是指多少錢?很多同學會問:這個難道不是29萬5千嗎?
實際上,不同國家對于數字的分割和不同,比如下面這幾個:
- Canadian (French): 4 294 967 295,000
- German: 4 294 967.295,000
- Italian: 4.294.967.295,000
- Great Britain, United States: 4,294,967,295.00
可以看到有些是每三位一個逗號,有些是一個點,有些是空格,有些國家小數點是一個點,有些小數點是一個逗號。所以回到上面這個數字,到底是295元,還是29萬5千元?這個和前面的日期格式一樣,必須根據當前用戶所在的culture來定。
我們再看一下不同國家的貨幣:
- Russia: 2,25 €
- Great Britain: €2.25
- Germany: € 2,25
可以看到,除了上面說的小數點不同,不同國家對于貨幣符號放在數字前面還是后面也很不同。像俄羅斯就是放在后面的。
對于上面這些情況,我們在開發的時候如何處理呢?我建議對于時間,數字的處理,使用成熟的library,千萬不要自己去寫,不要重復造輪子。別人的library已經試錯,改進了成百上千次了。你自己開發的不經歷類似的過程,很難達到類似的質量。
如果大家對Teams app開發感興趣,強烈推薦中國微軟的牛人Ares陳老師最近出了一套的Teams開發系列視頻講座:Microsoft Teams開發入門和實踐 https://aka.ms/teamsdev163study?,從入門到精通Teams開發,對于準備從事或者正在從事Teams app開發的同學來說,必看!