面向全球用户的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.mzph.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…