面向全球用戶的Teams app之Culture數字篇

我前幾周在微軟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開發的同學來說,必看!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277986.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277986.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277986.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Dubbo原理與框架設計

Dubbo是常用的開源服務治理型RPC框架,在之前osgi框架下不同bundle之間的方法調用時用到過。其工作原理和框架設計值得開源技術愛好者學習和研究。 一、Dubbo的工作原理 調用關系說明 服務容器負責啟動,加載,運行服務提供者。服務提供者在啟動…

面向全球用戶的Teams app之Culture計量單位和禁忌篇

我在前一篇文章里分享了Global Ready的app時會遇到的不同文化對于數字方面的挑戰。這篇我繼續分享不同文化對于計量單位和禁忌方面的挑戰。 我們先來看一個例子,假如有一個teams bot,它告訴你一些動物的速度,比如它告訴你: 獵豹能…

【我的Android進階之旅】Android自定義Lint實踐

背景 2017年8月份的時候,我在公司開始推廣Lint、FindBugs等靜態代碼檢測工具。然后發現系統自帶的Lint檢測的Issue不滿足我們團隊內部的特定需求,因此去自定義了部分Lint規則。這個檢測運行了大半年,運行良好,團隊的代碼規范也有了…

存儲結構與索引

一、SQL數據存儲的基本介紹 數據庫中的數據存儲涉及頁(Page)和區(Extent)這兩個概念了。SQL server中數據存儲的基本單位是頁。為數據庫中的數據文件(.mdf或.ndf)分配的磁盤空間可以從邏輯上劃分成頁(從0到…

面向全球用戶的Teams app之時區篇

我在前兩篇文章里分享了Global Ready的app時會遇到的不同文化的挑戰。這篇我繼續分享在時區方面的挑戰。 時間是最復雜的,最容易出錯的部分。時間復雜的最根本原因是時區問題。 首先,大家都知道,我們地球是圓的,這個意味著如果大…

Linux: Nginx proxy_pass域名解析引發的故障

背景 業務架構: 部署細節:  兩容器均部署在同一機器上,通過 docker-compose 編排,并且通過link方式鏈接。 故障描述 在有次更新代碼時,發現前端能夠打開,但是所有接口請求全是502(Bad GateWay) 故障排查 …

Oracle建立全文索引詳解

Oracle建立全文索引詳解1.全文檢索和普通檢索的區別 不使用Oracle text功能,當然也有很多方法可以在Oracle數據庫中搜索文本,比如INSTR函數和LIKE操作: SELECT *FROM mytext WHERE INSTR (thetext, Oracle) > 0; SELECT * FROM mytext WHE…

面向全球用戶的Teams app之夏令時篇

我在前兩篇文章里分享了Global Ready的teams app時會遇到的不同挑戰。這篇我繼續分享在夏令時方面的挑戰。 夏令時,主要是為了節約能源,英文里通常縮寫成DST(Daylight Saving Time)。一般在天亮早的夏季人為將時間調快一小時,可以使人早起早…

爬取全部的校園新聞

1.從新聞url獲取新聞詳情: 字典,anews 2.從列表頁的url獲取新聞url:列表append(字典) alist 3.生成所頁列表頁的url并獲取全部新聞 :列表extend(列表) allnews *每個同學爬學號尾數開始的10個列表頁 4.設置合理的爬取間隔 import time import…

面向全球用戶的Teams app之合規性篇

我在前兩篇文章里分享了Global Ready的app時會遇到的不同挑戰。這篇我繼續分享在合規性方面的挑戰。 說到合規性compliance,不得不說GDPR標準,當我們發布了一個teams app后,微軟會要求開發人員做一個security self assessment,這…

C進階 - 內存四驅模型

一.內存四驅模型 不知我們是否有讀過 《深入理解 java 虛擬機》這本書,強烈推薦讀一下。在 java 中我們將運行時數據,分為五個區域分別是:程序計數器,java 虛擬機棧,本地方法棧,java 堆,方法區。…

行內元素中去掉文字的上下間距,使得文字所在元素的高度同字體高度一致的方法...

之前在p這類塊元素中的文字,給line-hight1;就可以去掉文字自帶的上下間距, 像這樣: 最近突然發現這個方法在行內塊和塊元素上好使,可當用在span或者a這類內聯元素上都不好使,除了轉為塊元素的方法來去掉上下間距&#…

VSCode的Teams插件

隨著今年在線的Build大會的結束,又是一大波的 Teams 新功能,新工具,新SDK。我接下來幾篇博客就會詳細和大家一一介紹。我今天先從VSCode的插件開始。 打開VS Code,搜索Teams,就可以找到Microsoft Teams Toolkit插件&a…

ADB原理,Wi-Fi連接,常用命令及拓展

Android 開發筆記 onGithub 文章多處鏈接需要科學上網 本文按順序主要講解了ADB的原理,使用Wi-Fi連接設備,ADB常用命令,在Java代碼中執行shell命令,使用ddmlib進行擴展。 ADB的原理 參考 官方文檔 ADB(Android Debug B…

使用Flow快速開發Teams小應用

繼續我的上一篇博客,這篇繼續介紹BUILD大會里的內容:Flow。 Flow是微軟power平臺的一個服務,通過簡單的拖拽就可以完成一個業務邏輯的處理,現在Flow和Teams的結合十分緊密。我們來試一下。 先點擊Teams左邊的Flow菜單。 如果你的…

python正則中如何匹配漢字以及encode(‘utf-8’)和decode(‘utf-8’)的互轉

正則表達式&#xff1a;  [\u2E80-\u9FFF]$ 匹配所有東亞區的語言   [\u4E00-\u9FFF]$ 匹配簡體和繁體   [\u4E00-\u9FA5]$ 匹配簡體   <input type"text" name"username" οnkeyup"valuevalue.replace([\u4E00-\u9FA5]$)"> 正則表…

【區塊鏈】認識區塊鏈的基本概念

2018年區塊鏈技術風卷全球&#xff0c;似乎大家都在談論區塊鏈&#xff0c;那到底什么區塊鏈&#xff0c;區塊鏈到底能干什么&#xff0c;對普通人會有什么影響&#xff0c;很多人還是稀里糊涂&#xff0c;那么就談談我的一些理解吧&#xff0c;拋磚引玉歡迎探討。 我是如何接觸…

Java 分割、合并byte數組

場景&#xff1a;上傳文件較大&#xff0c;把存放文件內容byte數組拆分成小的。下載的時候按照順序合并。 起初覺得挺麻煩的&#xff0c;寫完覺得挺簡單。 切割&#xff1a; /*** 拆分byte數組* * param bytes* 要拆分的數組* param size* 要按幾個組成一…

Java版本的Bot Framework SDK

微軟為了鼓勵Java開發人員開發bot&#xff0c;在上個月推出了Java的Bot SDK v4.6版本&#xff0c;目前還在Preview版本&#xff0c;相信不用多久就可以趕上其他版本了。 我的java還停留在 n 年前的水平&#xff0c;但是處于好奇&#xff0c;決定玩一下這套sdk。 這套sdk目前建…

jquery方法.serializeArray()獲取name和value并轉為json數組

jquery的.serializeArray()方法可以獲取形如以下 [ {name: firstname, value: Hello}, {name: lastname, value: World}, ] name value組成的對象數組&#xff0c;如果我們想得到key為name,value為value的json對象&#xff0c;則如下轉換&#xff1a; var m {}; $.each($(&quo…