UDN-企业互联网技术人气社区

板块导航

浏览  : 1866
回复  : 0

[干货] 使用ES6新特性开发微信小程序(8)——国际化与本地化

[复制链接]
舞操的头像 楼主
发表于 2017-1-6 21:21:28 | 显示全部楼层 |阅读模式
  ES6新增了很多对于国际化的支持,比如时间格式,货币格式,数字格式等。

  Internationalization & Localization(国际化与本地化)是指修改软件使之能适应目标市场的语言、地区差异以及技术需要。

  国际化是指在设计软件,将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言及地区时,软件本身不用做内部工程上的改变或修正。本地化则是指当移植软件时,加上与特定区域设置有关的信息和翻译文件的过程。

  Intl 对象是 ECMAScript 国际化 API 的一个命名空间,它提供了精确的字符串对比,数字格式化,日期和时间格式化。Collator,NumberFormat 和 DateTimeFormat 对象的构造函数是 Intl 对象的属性。

  Intl.Collator(): 语言敏感的字符串对比功能对象,collators 的构造函数

  Intl.DateTimeFormat():语言敏感的日期和时间格式化功能对象的构造函数

  Intl.NumberFormat():语言敏感的数字格式化功能对象的构造函数

  Collation(排序规则)

  对于字符串集合的排序和检索,可以根据地区和Unicode为参数进行排序。

  1.   var list = ["ä", "a", "z"]

  2.   var l10nDE = new Intl.Collator("de")

  3.   var l10nSV = new Intl.Collator("sv")

  4.   l10nDE.compare("ä", "z") === -1

  5.   l10nSV.compare("ä", "z") === +1

  6.   console.log(list.sort(l10nDE.compare)) // 输出: [ "a", "ä", "z" ]

  7.   console.log(list.sort(l10nSV.compare)) // 输出: [ "a", "z", "ä" ]
复制代码


  Number Formatting(数字格式化)

  可以根据数字分组和本地的分隔符,对数字进行格式化。

  1.   var l10nEN = new Intl.NumberFormat("en-US")

  2.   var l10nDE = new Intl.NumberFormat("de-DE")

  3.   console.log(l10nEN.format(1234567.89)); // 输出: 1,234,567.89

  4.   console.log(l10nDE.format(1234567.89)); // 输出: 1.234.567,89
复制代码


  Currency Formatting(货币格式化)

  可以根据数字分组、本地的分隔符和附加的货币符号,对数字进行格式化。

  1.   var l10nUSD = new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" })

  2.   var l10nGBP = new Intl.NumberFormat("en-GB", { style: "currency", currency: "GBP" })

  3.   var l10nEUR = new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" })

  4.   console.log(l10nUSD.format(100200300.40)); // 输出: $100,200,300.40

  5.   console.log(l10nGBP.format(100200300.40)); // 输出: £100,200,300.40

  6.   console.log(l10nEUR.format(100200300.40)); // 输出: 100.200.300,40 €
复制代码


  Date/Time Formatting(日期/时间格式化)

  可以根据本地的顺序和分隔符格式化时间和日期。

  1.   var l10nEN = new Intl.DateTimeFormat("en-US")

  2.   var l10nDE = new Intl.DateTimeFormat("de-DE")

  3.   console.log(l10nEN.format(new Date("2015-01-02"))); // 输出: 1/2/2015

  4.   console.log(l10nDE.format(new Date("2015-01-02"))); // 输出: 2.1.2015
复制代码


  其他

  完整代码:https://github.com/guyoung/GyWxappCases/tree/master/ES6

原文作者:佚名  来源:开发者头条

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部