Teams Bot如何做全球化

Office365在全球有大量的用戶,可以說是擁有最多用戶的商業SaaS平臺。Teams最近在發展迅猛,有1300萬日活用戶,已經超越了Slack。??Microsoft Teams overtakes Slack with 13 million daily users

我在設計Teams LuckyDraw bot的時候就希望我的bot能夠被全世界的用戶所使用,這個實際上還是一個非常有挑戰的事情。拋開各國的法律法規要求(比如歐盟的GDPR,國家領土歸屬問題)不說,拋開不同宗教文化要求不說,單單多語言,多時區就是十分復雜。

舉幾個語言的例子:

  • 英語里有單復數,中文和一些語言里就沒有。你在設計多語言界面的時候就需要注意
  • 即使是英語,美式英語(en-US),英式英語(en-UK),印度英語(en-IN),有很多區別
  • 大多數語言是從左到右書寫,但是有些是從右到左。界面設計特別需要注意

再舉幾個時區的例子:

  • 有很多土地領域較大的國家,不像中國只有一個時區,同一個國家有幾個時區是很正常的事情
  • 有些國家有些區域有夏令時。比如澳大利亞的布里斯班和悉尼,雖然在一個時區,但是悉尼有夏令時,也就是說平時大家時間一樣,但是一到夏天,時間就變得不同了
  • 不同國家對于每周第一天是周一還是周日,定義不同
  • Samoa和Tokelau這兩個地方沒有2011年12月30日這一天,他們直接從29日跳到了31日(?具體原因?)。不知道這種事情會不會再次發生 (看到這里大家是不是和我當時一樣,心里一萬個。。。。)
  • 日本從2019年5月1日開始新的calendar,為此,Windows等系統,.NET等運行環境,各類時間處理的庫都全面升級,打補丁,出新版本

看了上面幾個例子,是不是覺得很無語。是不是瞬間覺得那些國際化的SaaS平臺有多偉大和復雜。

那我們來看看Teams app/bot如何處理時間問題,一個好消息是Teams已經幫我們處理了很多問題,來看一下Teams發送給bot的請求payload:

{"name": "composeExtension/fetchTask","type": "invoke","timestamp": "2019-06-17T14:32:04.956Z","localTimestamp": "2019-06-18T00:32:04.956+10:00","id": "f:1361493733941541435","channelId": "msteams","serviceUrl": "https://smba.trafficmanager.net/apac/","from": {"id": "29:1l8B9m9SOOdHTqLDgmXvSrJyHfwd2ihooa7cxgtzJ8QjQ4WFC4mA_8K2Sa7jL-xUh7g4yh8sZIiDOX6vTtoaz6w","name": "Tony Xia","aadObjectId": "56c6599d-9216-4078-a8cf-3f039d36e1fd"},"conversation": {"isGroup": true,"conversationType": "channel","tenantId": "aece5000-341d-493a-841d-f67e417f1447","id": "19:bf1cbc367561473db0c3fe762c11b508@thread.skype"},"recipient": {"id": "28:89e9cdd8-f500-4696-a701-7c2323f62a86","name": "TestMsgExt"},"entities": [{"locale": "en-US","country": "US","platform": "Windows","type": "clientInfo"}],"channelData": {"channel": {"id": "19:bf1cbc367561473db0c3fe762c11b508@thread.skype"},"team": {"id": "19:bf1cbc367561473db0c3fe762c11b508@thread.skype"},"tenant": {"id": "aece5000-341d-493a-841d-f67e417f1447"},"source": {"name": "compose"}},"value": {"commandId": "start","commandContext": "compose","context": {"theme": "default"}},"locale": "en-US"
}

上面這個payload里有幾個關鍵的值:

  • timestamp:當前的UTC時間
  • localTimestamp:當前用戶所在的他/她的本地時間,加號后面的小時數針對UTC時間的offset
  • locale:當前用戶所使用的語言

有了這幾個參數,實際上就你的bot就知道改如何處理了吧?

不過,在具體的bot設計中,你還需要時刻留意這幾點:

  • 一家公司(一個office365的tenant,可能有使用不同語言的人,可能分散在不同國家,在不同時區)
  • 一個Team或者一個頻道channel里的用戶也可能使用不同語言,分散在不同國家,在不同時區
  • 即使是同一個用戶,他可能旅游或者出差到不同時區的不同國家,他可能在手機上的Teams是中文,但是桌面版本使用英文。

所以。。。所以大家要把你的Teams app走向全世界,需要精心設計,全面考慮。Good Luck!

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

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

相關文章

QuickBI助你成為分析師-郵件定時推送

創建報表過程中經常需要將報表情況定時推送給其他用戶,及時了解數據情況。高級版本郵件推送功能支持儀表板周期性推送到訂閱人,默認以當前登錄者視角查看,同時支持結合 行級權限進行權限控制 和 結合全局參數功能確定郵件推送內容參數&#x…

2019年5月 Teams Community Call (China)

這個月有四個話題: Tony Xia:這個月的Teams的產品更新,Teams開發能力的更新,開源項目更新,庫更新王遠:升級/遷移到Microsoft Teams劉鈺:Teams賬號注冊探索指南Paul Zhang/Cheung:Bu…

修改oracle 管理員密碼 cmd

1.sqlplus/nolog 2.conn / as sysdba 3.alter user 用戶名 identified by 新密碼;轉載于:https://www.cnblogs.com/taoqidexiaomao/p/9006927.html

在2019年6月Teams Community Call上分享的Teams app基礎架構視頻

我在2019年6月Teams Community Call(China)上分享的如何在azure上搭建典型的teams bot的基礎架構 會議視頻: 15:00 - 33:00 Download Video

解決 spring-cloud-starter-zipkin 啟動錯誤

應用場景&#xff1a;Spring Boot 服務添加 Zipkin 依賴&#xff0c;進行服務調用的數據采集&#xff0c;然后進行 Zipkin-Server 服務調用追蹤顯示。 示例pom.xml配置&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>s…

什么是Microsoft Teams的App Studio

Teams的app studio很多用戶可能不知道&#xff0c;但是對于一個teams平臺的開發人員來說&#xff0c;這個是開發利器&#xff0c;利用這個工具你可以輕松的配置manifest文件&#xff0c;可以輕松的一站式創建teams app所需要的所有東西。而且你可以很方便的可視化配置adaptive …

Spring Cloud-鴻鵠Cloud分布式微服務云系統—架構圖

這邊結合了當前大部分企業的通用需求&#xff0c;包括技術的選型比較嚴格、苛刻&#xff0c;不僅要用業界最流行的技術&#xff0c;還要和國際接軌&#xff0c;在未來的5~10年內不能out。作為公司的架構師&#xff0c;也要有一種放眼世界的眼光&#xff0c;不僅要給公司做好的技…

Teams bot的調用限制

上個月Teams團隊發布了對Teams app/bot調用api的頻率的限制。這也從側面說明Teams app越來越多&#xff0c;Teams團隊需要優先保證Teams本身的計算資源&#xff0c;來提供流暢的用戶體驗。 具體的每個限制指標在這里&#xff1a; https://docs.microsoft.com/en-us/microsoftt…

Array的sort方法

作為一個剛開始學習的前端&#xff0c;小結一下&#xff1a;sort方法&#xff1a; 如果調用該方法時沒有使用參數&#xff0c;將按字母順序對數組中的元素進行排序&#xff0c;說得更精確點&#xff0c;是按照字符編碼的順序進行排序。要實現這一點&#xff0c;首先應把數組的元…

如何使用ARM創建Teams Bot所需要的Azure資源

相信很多devops已經全面開始使用ARM來創建azure資源了&#xff0c;ARM有很多方便的地方&#xff0c;比如簡單易學&#xff0c;Infrastructure as Code&#xff0c;但是深入使用ARM開始會發現一些有待改進的方面。這篇文章主要是分享一下我在做Teams app的時候使用ARM來創建資源…

Bot Service自帶的數據分析統計功能

每個產品上線后都希望自己能實時看到多少用戶在使用我的產品&#xff0c;我的服務&#xff0c;有多少使用量&#xff0c;有沒有遇到問題。市面上做用戶數據、行為分析的公司也不少&#xff0c;但是大多數都需要我們修改一些代碼來集成第三方的sdk庫。 我的teams app上線后也急…

LuckyDraw bot有幸被提名為微軟2019的People's Choice app

上個月微軟進行了一個全世界提名活動&#xff0c;目標是選出微軟2019年度People’s Choice app。 很幸運&#xff0c;我的LuckyDraw bot得到了來自世界各地使用者的投票&#xff0c;其中也包含Teams中國社區和很多朋友的支持。 https://developer.microsoft.com/en-us/microso…

圖靈社區 和 大家網

http://www.ituring.com.cn/ http://club.topsage.com/ 大家論壇 http://www.topsage.com/ http://www.dxbbba.com/ 大學生必備吧 轉載于:https://www.cnblogs.com/onelikeone/p/9023267.html

Teams內嵌的卡片image的限制

我的LuckyDraw上線后收到了不少有價值的反饋&#xff0c;其中有一部分是針對圖片的&#xff0c;有一些用戶說他們填寫了image的url&#xff0c;但是圖片顯示不出來。 實際上這個問題在我提交這個應用到微軟審核團隊的時候&#xff0c;審核團隊也提出了類似問題。但這個是Teams本…

Python 面向對象編程(進階部分)

靜態方法&#xff1a; 通過 staticmethod 裝飾器即可把其裝飾的方法變為一個靜態方法。普通的方法&#xff0c;可以在實例化后直接調用&#xff0c;并且在方法里可以通過self.調用實例變量或類變量&#xff0c;但靜態方法是不可以訪問實例變量或類變量的&#xff0c;一個不能訪…

分享實錄|爭議不斷地EOS,我們如何才能理性看待?

1 EOS基本介紹 EOS是Block.One公司正在研發的一個區塊鏈底層公鏈系統&#xff0c;目的是解決現有的區塊鏈應用性能低、安全性差、開發難度高以及過度依賴手續費的問題&#xff0c;實現分布式應用的性能擴展。EOS提供帳戶&#xff0c;身份驗證&#xff0c;數據庫&#xff0c;異步…

Teams的Incoming Webhook

我在去年的一篇文章里介紹過Teams的outgoing webhook&#xff0c;這個可以用來實現一個簡單的用戶和service對話機制。 Teams除了outgoing webhook以外&#xff0c;還有一個incoming webhook&#xff0c;從名字上我們也可以立刻知道&#xff0c;這個webhook是用來處理進入Team…

Comet OJ - Contest #0題解

傳送門 菜爆了……總共只有一道題會做的……而且也沒有短裙好難過 為啥必須得有手機才能注冊賬號啊喂……歧視么…… \(A\) 解方程 推一下柿子大概就是 \[x-\sqrt{n}yz2\sqrt{yz}\] 如果\(\sqrt{n}\)是無理數&#xff0c;那么就是 \[xyz,{n\over 4}yz\] 那么要滿足\(n\)必須是\…

tornado 08 數據庫-ORM-SQLAlchemy-表關系和簡單登錄注冊

tornado 08 數據庫-ORM-SQLAlchemy-表關系和簡單登錄注冊 引言 #在數據庫&#xff0c;所謂表關系&#xff0c;只是人為認為的添加上去的表與表之間的關系&#xff0c;只是邏輯上認為的關系&#xff0c;實際上數據庫里面的表之間并沒有所謂的表關系 一、一對一表關系 Module #需…

Teams的manifest文件開始支持多語言

Teams發展速度飛快&#xff0c;Teams app的manifest文件schema也迎來了版本1.5&#xff0c;在這個版本里&#xff0c;很大的一個改進是支持多語言。 讓我們一起來看看&#xff0c;如何在manifest文件里配置多語言。 1&#xff0c;我們需要先把manifest文件設置成v1.5 {"…