提交 ed8cf7e6 编写于 作者: S sunyaozu

fix error in i18n and intl docs

Signed-off-by: Nsunyaozu <sunyaozu@huawei.com>
上级 c60e6d33
# I18n开发指导
I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使用方法
本模块提供系统相关的或者增强的国际化能力,包括区域管理、电话号码处理、日历等,相关接口为ECMA 402标准中未定义的补充接口。更多接口和使用方式请见[I18N](../reference/apis/js-apis-i18n.md)
[Intl](intl-guidelines.md)模块提供了ECMA 402标准定义的基础国际化接口,与本模块共同使用可提供完整地国际化支持能力。
## 获取系统语言区域信息
调用系统提供的接口访问系统的语言区域信息。
### 接口说明
| 模块 | 接口名称 | 描述 |
......@@ -20,15 +20,13 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
| ohos.i18n | getDisplayLanguage(language:string,locale:string,sentenceCase?:boolean):string | 获取语言的本地化表示。 |
| ohos.i18n | getDisplayCountry(country:string,locale:string,sentenceCase?:boolean):string | 获取国家的本地化表示。 |
### 开发步骤
1. 获取系统语言。
调用getSystemLanguage方法获取当前系统设置的语言(i18n为导入的模块)。
```
```js
var language = i18n.getSystemLanguage();
```
......@@ -36,7 +34,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用getSystemRegion方法获取当前系统设置的区域
```
```js
var region = i18n.getSystemRegion();
```
......@@ -44,7 +42,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用getSystemLocale方法获取当前系统设置的Locale
```
```js
var locale = i18n.getSystemLocale();
```
......@@ -52,8 +50,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用isRTL方法获取Locale的语言是否为从右到左语言。
```
```js
var rtl = i18n.isRTL("zh-CN");
```
......@@ -61,7 +58,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用is24HourClock方法来判断当前系统的时间是否采用24小时制。
```
```js
var hourClock = i18n.is24HourClock();
```
......@@ -69,7 +66,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用getDisplayLanguage方法获取某一语言的本地化表示。其中,language表示待本地化显示的语言,locale表示本地化的Locale,sentenceCase结果是否需要首字母大写。
```
```js
var language = "en";
var locale = "zh-CN";
var sentenceCase = false;
......@@ -80,18 +77,16 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用getDisplayCountry方法获取某一国家的本地化表示。其中,country表示待本地化显示的国家,locale表示本地化的Locale,sentenceCase结果是否需要首字母大写。
```
```js
var country = "US";
var locale = "zh-CN";
var sentenceCase = false;
var localizedCountry = i18n.getDisplayCountry(country, locale, sentenceCase);
```
## 获取日历信息
调用日历[Calendar](../reference/apis/js-apis-intl.md)相关接口来获取日历的相关信息,例如获取日历的本地化显示、一周起始日、一年中第一周的最小天数等。
调用日历[Calendar](../reference/apis/js-apis-i18n.md#calendar8)相关接口来获取日历的相关信息,例如获取日历的本地化显示、一周起始日、一年中第一周的最小天数等。
### 接口说明
......@@ -110,23 +105,21 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
| ohos.i18n | getDisplayName(locale:string):string<sup>8+</sup> | 获取日历对象的本地化表示。 |
| ohos.i18n | isWeekend(date?:Date):boolean<sup>8+</sup> | 判断给定的日期是否在日历中是周末。 |
### 开发步骤
1. 实例化日历对象。
调用getCalendar方法获取指定locale和type的时区对象(i18n为导入的模块)。其中,type表示合法的日历类型,目前合法的日历类型包括:"buddhist", "chinese", "coptic", "ethiopic", "hebrew", "gregory", "indian", "islamic_civil", "islamic_tbla", "islamic_umalqura", "japanese", "persian"。当type没有给出时,采用区域默认的日历类型。
```
var calendar = i18n.getCalendar("zh-CN", "gregory);
```js
var calendar = i18n.getCalendar("zh-CN", "gregory");
```
2. 设置日历对象的时间。
调用setTime方法设置日历对象的时间。setTime方法接收两种类型的参数。一种是传入一个Date对象,另一种是传入一个数值表示从1970.1.1 00:00:00 GMT逝去的毫秒数。
```
```js
var date1 = new Date();
calendar.setTime(date1);
var date2 = 1000;
......@@ -137,16 +130,15 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用set方法设置日历对象的年、月、日、时、分、秒。
```
```js
calendar.set(2021, 12, 21, 6, 0, 0)
```
4. 设置、获取日历对象的时区。
调用setTimeZone方法和getTimeZone方法来设置、获取日历对象的时区。其中,setTimeZone方法需要传入一个字符串表示需要设置的时区。
```
```js
calendar.setTimeZone("Asia/Shanghai");
var timezone = calendar.getTimeZone();
```
......@@ -155,8 +147,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用setFirstDayOfWeek方法和getFirstDayOfWeek方法设置、获取日历对象的一周起始日。其中,setFirstDayOfWeek需要传入一个数值表示一周的起始日,1代表周日,7代表周六。
```
```js
calendar.setFirstDayOfWeek(1);
var firstDayOfWeek = calendar.getFirstDayOfWeek();
```
......@@ -164,34 +155,30 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
6. 设置、获取日历对象第一周的最小天数
调用setMinimalDaysInFirstWeek方法和getMinimalDaysInFirstWeek方法来设置、获取日历对象第一周的最小天数。
```
```js
calendar.setMinimalDaysInFirstWeek(3);
var minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek();
```
7. 获取日历对象的本地化显示
调用getDisplayName来获取日历对象的本地化显示。
```
```js
var localizedName = calendar.getDisplayName("zh-CN");
```
8. 判断某一个日期是否为周末。
调用isWeekend方法来判断输入的Date是否为周末。
```
```js
var date = new Date();
var weekend = calendar.isWeekend(date);
```
## 电话号码格式化
调用电话号码格式化[PhoneNumberFormat](../reference/apis/js-apis-intl.md)的接口,实现对针对不同国家电话号码的格式化以及判断电话号码格式是否正确的功能。
调用电话号码格式化[PhoneNumberFormat](../reference/apis/js-apis-i18n.md#phonenumberformat8)的接口,实现对针对不同国家电话号码的格式化以及判断电话号码格式是否正确的功能。
### 接口说明
......@@ -201,23 +188,21 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
| ohos.i18n | isValidNumber(number:string):boolean<sup>8+</sup> | 判断number是否是一个格式正确的电话号码。 |
| ohos.i18n | format(number:string):string<sup>8+</sup> | 对number按照指定国家及风格进行格式化。 |
### 开发步骤
1. 实例化电话号码格式化对象。
调用PhoneNumberFormat的构造函数来实例化电话号码格式化对象,需要传入电话号码的国家代码及格式化选项。其中,格式化选项是可选的,包括style选项,该选项的取值包括:"E164", "INTERNATIONAL", "NATIONAL", "RFC3966"。
```
var phoneNumberFormat = new i18n.PhoneNubmerFormat("CN", {type: "E164"});
```js
var phoneNumberFormat = new i18n.PhoneNumberFormat("CN", {type: "E164"});
```
2. 判断电话号码格式是否正确。
调用isValidNumber方法来判断输入的电话号码的格式是否正确。
```
```js
var validNumber = phoneNumberFormat.isValidNumber("15812341234");
```
......@@ -225,31 +210,27 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用电话号码格式化对象的format方法来对输入的电话号码进行格式化。
```
```js
var formattedNumber = phoneNumberFormat.format("15812341234");
```
## 度量衡转换
度量衡转换接口可以实现度量衡转换的相关功能。
### 接口说明
| 模块 | 接口名称 | 描述 |
| -------- | -------- | -------- |
| ohos.i18n | unitConvert(fromUnit:UnitInfo,toUnit:UnitInfo,value:number,locale:string,style?:string):string<sup>8+</sup> | 将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。 |
### 开发步骤
1. 度量衡单位转换。
调用[unitConvert](../reference/apis/js-apis-intl.md)方法实现度量衡单位转换,并进行格式化显示的功能。
调用[unitConvert](../reference/apis/js-apis-i18n.md#unitconvert8)方法实现度量衡单位转换,并进行格式化显示的功能。
```
```js
var fromUnit = {unit: "cup", measureSystem: "US"};
var toUnit = {unit: "liter", measureSystem: "SI"};
var number = 1000;
......@@ -258,11 +239,9 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
i18n.Util.unitConvert(fromUtil, toUtil, number, locale, style);
```
## 字母表索引
调用字母表索引[IndexUtil](../reference/apis/js-apis-intl.md)的接口可以获取不同Locale的字母表索引,以及实现计算字符串所属索引的功能。
调用字母表索引[IndexUtil](../reference/apis/js-apis-i18n.md#indexutil8)的接口可以获取不同Locale的字母表索引,以及实现计算字符串所属索引的功能。
### 接口说明
......@@ -273,7 +252,6 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
| ohos.i18n | addLocale(locale:string): void<sup>8+</sup> | 将新的Locale对应的索引加入当前索引列表。 |
| ohos.i18n | getIndex(text:string):string<sup>8+</sup> | 获取text对应的索引。 |
### 开发步骤
1. 实例化字母表索引对象。
......@@ -281,15 +259,15 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用getInstance方法来实例化特定locale对应的字母表索引对象。当locale参数为空时,实例化系统默认Locale的字母表索引对象。
```
var indexUtil = getInstance("zh-CN");
```js
var indexUtil = i18n.getInstance("zh-CN");
```
2. 获取索引列表。
调用getIndexList方法来获取当前Locale对应的字母表索引列表。
```
```js
var indexList = indexUtil.getIndexList();
```
......@@ -297,7 +275,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用addLocale方法,将新的Locale对应的字母表索引添加到当前字母表索引列表中。
```
```js
indexUtil.addLocale("ar")
```
......@@ -305,16 +283,14 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用getIndex方法来获取某一字符串对应的字母表索引。
```
```js
var text = "access index";
indexUtil.getIndex(text);
```
## 获取文本断点位置
当文本比较长无法在一行进行显示时,调用文本断点[BreakIterator8](../reference/apis/js-apis-intl.md)的接口,来获取文本可以断行的位置。
当文本比较长无法在一行进行显示时,调用文本断点[BreakIterator8](../reference/apis/js-apis-i18n.md#breakiterator8)的接口,来获取文本可以断行的位置。
### 接口说明
......@@ -331,15 +307,13 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
| ohos.i18n | following(offset:number):number<sup>8+</sup> | 将断行对象移动到offset指定位置的后面一个分割点的位置。 |
| ohos.i18n | isBoundary(offset:number):boolean<sup>8+</sup> | 判断某个位置是否是分割点。 |
### 开发步骤
1. 实例化断行对象。
调用getLineInstance方法来实例化断行对象。
```
```js
var locale = "en-US"
var breakIterator = i18n.getLineInstance(locale);
```
......@@ -348,8 +322,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
调用setLineBreakText方法和getLineBreakText方法来设置、访问要断行处理的文本。
```
```js
var text = "Apple is my favorite fruit";
breakIterator.setLineBreakText(text);
var breakText = breakIterator.getLineBreakText();
......@@ -358,9 +331,8 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
3. 获取断行对象当前的位置。
调用current方法来获取断行对象在当前处理文本中的位置。
```
```js
var pos = breakIterator.current();
```
......@@ -368,8 +340,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
系统提供了很多接口可以用于调整断行对象在处理文本中的位置,包括first, last, next, previous, following。
```
```js
var firstPos = breakIterator.first(); // 将断行对象设置到第一个分割点的位置,即文本的起始位置;
var lastPos = breakIterator.last(); // 将断行对象设置到最后一个分割点的位置,即文本末尾的下一个位置;
// 将断行对象向前或向后移动一定数量的分割点。
......@@ -384,8 +355,7 @@ I18n开发指导提供了未在ECMA 402中定义的国际化能力接口的使
5. 判断某个位置是否为分割点。
调用isBoundary方法来判断一个方法是否为分割点;如果该位置是分割点,则返回true,并且将断行对象移动到该位置;如果该位置不是分割点,则返回false,并且将断行对象移动到该位置后的一个分割点。
```
```js
var isboundary = breakIterator.isBoundary(5);
```
```
\ No newline at end of file
# Intl开发指导
Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方法
本模块提供提供基础的应用国际化能力,包括时间日期格式化、数字格式化、排序等,相关接口在ECMA 402标准中定义。更多接口和使用方式请见[Intl](../reference/apis/js-apis-intl.md)
## 设置区域信息
[I18N](i18n-guidelines.md)模块提供其他非ECMA 402定义的国际化接口,与本模块共同使用可提供完整地国际化支持能力。
调用[Locale](../reference/apis/js-apis-intl.md)的相关接口实现最大化区域信息或最小化区域信息。
## 设置区域信息
调用[Locale](../reference/apis/js-apis-intl.md#locale)的相关接口实现最大化区域信息或最小化区域信息。
### 接口说明
......@@ -17,17 +18,30 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
| ohos.intl | maximize():Locale | 最大化区域信息。 |
| ohos.intl | minimize():Locale | 最小化区域信息。 |
### 开发步骤
1. 实例化Locale对象。
使用Locale的构造函数创建Locale对象,该方法接收一个表示Locale的字符串及可选的[属性](../reference/apis/js-apis-intl.md)列表(intl为导入的模块名)。
使用Locale的构造函数创建Locale对象,该方法接收一个表示Locale的字符串及可选的[属性](../reference/apis/js-apis-intl.md#localeoptions)列表(intl为导入的模块名)。
表示Locale的字符串参数可以分为以下四部分:语言、脚本、地区、扩展参数。各个部分按照顺序使用中划线“-”进行连接。
- 语言:必选,使用2个或3个小写英文字母表示(可参考ISO-639标准),例如英文使用“en”表示,中文使用“zh”表示。
- 脚本:可选,使用4个英文字母表示,其中首字母需要大写,后面3个使用小写字母(可参考ISO-15924)。例如,中文繁体使用脚本“Hant”表示,中文简体使用脚本“Hans”表示。
- 国家或地区:可选,使用两个大写字母表示(可参考ISO-3166),例如中国使用“CN”表示,美国使用“US”表示;
- 扩展参数:可选,由key和value两部分组成,目前支持以下扩展参数(可参考BCP 47扩展)。各个扩展参数之间没有严格的顺序,使用“-key-value”的格式书写。扩展参数整体使用“-u”连接到语言、脚本、地区后面。例如“zh-u-nu-latn-ca-chinese”表示使用“latn”数字系统,“chinese”日历系统。扩展参数也可以通过第二个参数传入。
| 扩展参数ID | 扩展参数说明 |
| -------- | -------- |
| ca | 表示日历系统 |
| co | 表示排序规则 |
| hc | 表示守时惯例 |
| nu | 表示数字系统 |
| kn | 表示字符串排序、比较时是否考虑数字的实际值 |
| kf | 表示字符串排序、比较时是否考虑大小写 |
```
```js
var locale = "zh-CN";
var options = {caseFirst: false, calendar: "chinese", collation: pinyin};
var options = {caseFirst: false, calendar: "chinese", collation: "pinyin"};
var localeObj = new intl.Locale(locale, options);
```
......@@ -35,7 +49,7 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
调用toString方法来获取Locale对象的字符串表示,其中包括了语言、区域及其他选项信息。
```
```js
var localeStr = localeObj.toString();
```
......@@ -43,7 +57,7 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
调用maximize方法来最大化区域信息,即当缺少脚本与地区信息时,对其进行补全。
```
```js
var maximizedLocale = localeObj.maximize();
```
......@@ -51,15 +65,13 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
调用minimize方法来最小化区域信息,即当存在脚本与地区信息时,对其进行删除。
```
```js
var minimizedLocale = localeObj.minimize();
```
## 格式化日期时间
调用日期时间格式化[DateTimeFormat](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的日期格式化以及时间段格式化功能。
调用日期时间格式化[DateTimeFormat](../reference/apis/js-apis-intl.md#datetimeformat)的接口,实现针对特定Locale的日期格式化以及时间段格式化功能。
### 接口说明
......@@ -71,21 +83,19 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
| ohos.intl | formatRange(startDate:Date,endDate:Date):string | 依据DateTimeFormat对象的Locale及其他格式化属性,计算时间段的格式化表示。 |
| ohos.intl | resolvedOptions():DateTimeOptions | 获取DateTimeFormat对象的相关属性。 |
### 开发步骤
1. 实例化日期时间格式化对象。
一种方法是使用DateTimeFormat提供的默认构造函数,通过访问系统语言和地区设置,获取系统默认Locale,并将其作为DateTimeFormat对象内部的Locale(intl为导入的模块名)。
```
```js
var dateTimeFormat = new intl.DateTimeFormat();
```
另一种方法是使用开发者提供的Locale和格式化参数来创建日期时间格式化对象。其中,格式化参数是可选的,完整的格式化参数列表见[DateTimeOptions](../reference/apis/js-apis-intl.md)。
另一种方法是使用开发者提供的Locale和格式化参数来创建日期时间格式化对象。其中,格式化参数是可选的,完整的格式化参数列表见[DateTimeOptions](../reference/apis/js-apis-intl.md#datetimeoptions)。
```
```js
var options = {dateStyle: "full", timeStyle: "full"};
var dateTimeFormat = new intl.DateTimeFormat("zh-CN", options);
```
......@@ -94,34 +104,33 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
使用DateTimeFormat的format方法对一个Date对象进行格式化,该方法会返回一个字符串作为格式化的结果。
```
Date date = new Date();
```js
var date = new Date();
var formatResult = dateTimeFormat.format(date);
```
3. 格式化时间段。
使用DateTimeFormat的formatRange方法对一个时间段进行格式化。该方法需要传入两个Date对象,分别表示时间段的起止时间,返回一个字符串作为格式化的结果
使用DateTimeFormat的formatRange方法对一个时间段进行格式化。该方法需要传入两个Date对象,分别表示时间段的起止日期,返回一个字符串作为格式化的结果。当传入的两个Date对象表示同一天时,返回对象为该日期的表示;当传入的两个Date对象不是同一天时,返回结果为这两个日期的区间表示
```
Date startDate = new Date();
Date endDate = new Date();
var formatResult = dateTimeFormat.formatRange(startDate, endDate);
```js
var startDate = new Date(2021, 11, 17, 3, 24, 0);
var endDate = new Date(2021, 11, 18, 3, 24, 0);
var datefmt = new Intl.DateTimeFormat("en-GB");
datefmt.formatRange(startDate, endDate);
```
4. 访问日期时间格式化对象的相关属性。
DateTimeFormat的resolvedOptions方法会返回一个对象,该对象包含了DateTimeFormat对象的所有相关属性及其值。
```
```js
var options = dateTimeFormat.resolvedOptions();
```
## 数字格式化
调用数字格式化[NumberFormat](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的数字格式化功能。
调用数字格式化[NumberFormat](../reference/apis/js-apis-intl.md#numberformat)的接口,实现针对特定Locale的数字格式化功能。
### 接口说明
......@@ -132,21 +141,19 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
| ohos.intl | format(number:number):string | 依据NumberFormat对象的Locale及其他格式化属性,计算数字的格式化表示。 |
| ohos.intl | resolvedOptions():NumberOptions | 获取NumberFormat对象的相关属性。 |
### 开发步骤
1. 实例化数字格式化对象。
一种方法是使用NumberFormat提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。
```
```js
var numberFormat = new intl.NumberFormat();
```
另一种方法是使用开发者提供的Locale和格式化参数来创建数字格式化对象。其中,格式化参数是可选的,完整的格式化参数列表参见[NumberOptions](../reference/apis/js-apis-intl.md)。
另一种方法是使用开发者提供的Locale和格式化参数来创建数字格式化对象。其中,格式化参数是可选的,完整的格式化参数列表参见[NumberOptions](../reference/apis/js-apis-intl.md#numberoptions)。
```
```js
var options = {compactDisplay: "short", notation: "compact"};
var numberFormat = new intl.NumberFormat("zh-CN", options);
```
......@@ -155,7 +162,7 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
使用NumberFormat的format方法对传入的数字进行格式化。该方法返回一个字符串作为格式化的结果。
```
```js
var number = 1234.5678
var formatResult = numberFormat.format(number);
```
......@@ -164,15 +171,13 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
NumberFormat的resolvedOptions方法会返回一个对象,该对象包含了NumberFormat对象的所有相关属性及其值。
```
```js
var options = numberFormat.resolvedOptions();
```
## 字符串排序
不同区域的用户对于字符串排序具有不同的需求。调用字符串排序[Collator](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的字符串排序功能。
不同区域的用户对于字符串排序具有不同的需求。调用字符串排序[Collator](../reference/apis/js-apis-intl.md#collator8)的接口,实现针对特定Locale的字符串排序功能。
### 接口说明
......@@ -183,29 +188,27 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
| ohos.intl | compare(first:string,second:string):number<sup>8+</sup> | 依据排序对象的Locale及其属性,计算两个字符串的比较结果。 |
| ohos.intl | resolvedOptions():CollatorOptions<sup>8+</sup> | 获取排序对象的相关属性。 |
### 开发步骤
1. 实例化排序对象。
一种方法是使用Collator提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。
```
```js
var collator = new intl.Collator();
```
另一种方法是使用开发者提供的Locale和其他相关参数来创建Collator对象,完整的参数列表参见[CollatorOptions](../reference/apis/js-apis-intl.md)。
另一种方法是使用开发者提供的Locale和其他相关参数来创建Collator对象,完整的参数列表参见[CollatorOptions](../reference/apis/js-apis-intl.md#collatoroptions8)。
```
var collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"};
```js
var collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"});
```
2. 比较字符串。
使用Collator的compare方法对传入的两个字符串进行比较。该方法返回一个数值作为比较的结果,返回-1表示第一个字符串小于第二个字符串,返回1表示第一个字符大于第二个字符串,返回0表示两个字符串相同。
使用Collator的compare方法对传入的两个字符串进行比较。该方法返回一个数值作为比较的结果,返回-1表示第一个字符串小于第二个字符串,返回1表示第一个字符大于第二个字符串,返回0表示两个字符串相同。基于两个字符串的比较结果,开发者可以字符串集合进行排序。
```
```js
var str1 = "first string";
var str2 = "second string";
var compareResult = collator.compare(str1, str2);
......@@ -215,15 +218,13 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
Collator的resolvedOptions方法会返回一个对象,该对象包含了Collator对象的所有相关属性及其值。
```
```js
var options = collator.resolvedOptions();
```
## 判定单复数类别
在一些语言的语法中,当数字后面存在名词时,名词需要根据数字的值采用不同的形式。调用单复数[PluralRules](../reference/apis/js-apis-intl.md)的接口,可以实现针对特定Locale计算数字单复数类别的功能,从而选择合适的名词单复数表示。
在一些语言的语法中,当数字后面存在名词时,名词需要根据数字的值采用不同的形式。调用单复数[PluralRules](../reference/apis/js-apis-intl.md#pluralrules8)的接口,可以实现针对特定Locale计算数字单复数类别的功能,从而选择合适的名词单复数表示。
### 接口说明
......@@ -240,31 +241,28 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
一种方法是使用PluralRules提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。
```
```js
var pluralRules = new intl.PluralRules();
```
另一种方法是使用开发者提供的Locale和其他相关参数来创建单复数对象。完整的参数列表参见[PluralRulesOptions](../reference/apis/js-apis-intl.md)。
另一种方法是使用开发者提供的Locale和其他相关参数来创建单复数对象。完整的参数列表参见[PluralRulesOptions](../reference/apis/js-apis-intl.md#pluralrulesoptions8)。
```
var plurals = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"};
```js
var pluralRules = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"});
```
2. 计算数字单复数类别。
使用PluralRules的select方法计算传入数字的单复数类别。该方法返回一个字符串作为传入数字的类别,包括:"zero", "one", "two", "few", "many", "other"六个类别。
```
```js
var number = 1234.5678
var categoryResult = plurals.select(number);
```
## 相对时间格式化
调用相对时间格式化[RelativeTimeFormat](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的相对时间格式化功能。
调用相对时间格式化[RelativeTimeFormat](../reference/apis/js-apis-intl.md#relativetimeformat8)的接口,实现针对特定Locale的相对时间格式化功能。
### 接口说明
......@@ -276,29 +274,27 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
| ohos.intl | formatToParts(value:number,unit:string):Array&lt;object&gt;<sup>8+</sup> | 依据相对时间格式化对象的Locale及其他格式化属性,返回相对时间格式化表示的各个部分。 |
| ohos.intl | resolvedOptions():RelativeTimeFormatResolvedOptions<sup>8+</sup> | 获取相对时间格式化对象的相关属性。 |
### 开发步骤
1. 实例化相对时间格式化对象。
一种方法是使用RelativeTimeFormat提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。
```
```js
var relativeTimeFormat = new intl.RelativeTimeFormat();
```
另一种方法是使用开发者提供的Locale和格式化参数来创建相对时间格式化对象。其中,格式化参数是可选的,完整的参数列表参见[ RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md)。
另一种方法是使用开发者提供的Locale和格式化参数来创建相对时间格式化对象。其中,格式化参数是可选的,完整的参数列表参见[ RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md#relativetimeformatinputoptions8)。
```
var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"};
var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"});
```
2. 相对时间格式化。
使用RelativeTimeFormat的format方法对相对时间进行格式化。方法接收一个表示相对时间长度的数值和表示单位的字符串,其中单位包括:"year", "quarter", "month", "week", "day", "hour", "minute", "second"。方法返回一个字符串作为格式化的结果。
```
```js
var number = 2;
var unit = "year"
var formatResult = relativeTimeFormat.format(number, unit);
......@@ -308,7 +304,7 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
获取相对时间格式化结果的各个部分,从而自定义格式化结果。
```
```js
var number = 2;
var unit = "year"
var formatResult = relativeTimeFormat.formatToParts(number, unit);
......@@ -316,9 +312,9 @@ Intl开发指导提供了ECMA 402中定义的国际化能力接口的使用方
4. 访问相对时间格式化对象的相关属性。
RelativeTimeFormat的resolvedOptions方法会返回一个对象,该对象包含了RelativeTimeFormat对象的所有相关属性及其值,完整的属性列表参见[ RelativeTimeFormatResolvedOptions](../reference/apis/js-apis-intl.md)。
RelativeTimeFormat的resolvedOptions方法会返回一个对象,该对象包含了RelativeTimeFormat对象的所有相关属性及其值,完整的属性列表参见[ RelativeTimeFormatResolvedOptions](../reference/apis/js-apis-intl.md#relativetimeformatresolvedoptions8)。
```
```js
var options = numberFormat.resolvedOptions();
```
......
# 国际化-Intl
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
本模块提供提供基础的应用国际化能力,包括时间日期格式化、数字格式化、排序等,相关接口在ECMA 402标准中定义。
[I18N模块](js-apis-i18n.md)提供其他非ECMA 402定义的国际化接口,与本模块共同使用可提供完整地国际化支持能力。
> **说明:**
> - 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
> - Intl模块包含国际化能力基础接口(在ECMA 402中定义)。
> - Intl模块包含国际化能力基础接口(在ECMA 402中定义),包括时间日期格式化、数字格式化、排序等,国际化增强能力请参考[I18N模块](js-apis-i18n.md)
## 导入模块
```
```js
import Intl from '@ohos.intl';
```
......@@ -43,7 +46,7 @@ constructor()
**系统能力**:SystemCapability.Global.I18n
**示例:**
```
```js
var locale = new Intl.Locale();
```
......@@ -63,7 +66,7 @@ constructor(locale: string, options?: LocaleOptions)
| options | LocaleOptions | 否 | 用于创建区域对象的选项。 |
**示例:**
```
```js
var locale = new Intl.Locale("zh-CN");
```
......@@ -82,7 +85,7 @@ toString(): string
| string | 字符串形式的区域信息。 |
**示例:**
```
```js
var locale = new Intl.Locale("zh-CN");
locale.toString();
```
......@@ -102,7 +105,7 @@ maximize(): Locale
| [Locale](#locale) | 最大化后的区域对象。 |
**示例:**
```
```js
var locale = new Intl.Locale("zh-CN");
locale.maximize();
```
......@@ -122,7 +125,7 @@ minimize(): Locale
| [Locale](#locale) | 最小化后的区域对象。 |
**示例:**
```
```js
var locale = new Intl.Locale("zh-CN");
locale.minimize();
```
......@@ -132,7 +135,7 @@ minimize(): Locale
表示区域初始化选项。
**系统能力**以下各项对应的系统能力均为SystemCapability.Global.I18n
**系统能力**:SystemCapability.Global.I18n
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| --------------- | ------- | ---- | ---- | ---------------------------------------- |
......@@ -156,7 +159,7 @@ constructor()
**系统能力**:SystemCapability.Global.I18n
**示例:**
```
```js
var datefmt= new Intl.DateTimeFormat();
```
......@@ -176,13 +179,13 @@ constructor(locale: string | Array&lt;string&gt;, options?: DateTimeOptions)
| options | [DateTimeOptions](#datetimeoptions) | 否 | 用于创建时间日期格式化的选项。 |
**示例:**
```
```js
var datefmt= new Intl.DateTimeFormat("zh-CN", { dateStyle: 'full', timeStyle: 'medium' });
```
**示例:**
```
```js
var datefmt= new Intl.DateTimeFormat(["ban", "zh"], { dateStyle: 'full', timeStyle: 'medium' });
```
......@@ -206,7 +209,7 @@ format(date: Date): string
| string | 格式化后的时间日期字符串 |
**示例:**
```
```js
var date = new Date(2021, 11, 17, 3, 24, 0);
var datefmt = new Intl.DateTimeFormat("en-GB");
datefmt.format(date);
......@@ -233,7 +236,7 @@ formatRange(startDate: Date, endDate: Date): string
| string | 格式化后的时间日期段字符串。 |
**示例:**
```
```js
var startDate = new Date(2021, 11, 17, 3, 24, 0);
var endDate = new Date(2021, 11, 18, 3, 24, 0);
var datefmt = new Intl.DateTimeFormat("en-GB");
......@@ -255,7 +258,7 @@ resolvedOptions(): DateTimeOptions
| [DateTimeOptions](#datetimeoptions) | DateTimeFormat&nbsp;对象的格式化选项。 |
**示例:**
```
```js
var datefmt = new Intl.DateTimeFormat("en-GB");
datefmt.resolvedOptions();
```
......@@ -265,7 +268,7 @@ resolvedOptions(): DateTimeOptions
表示时间日期格式化选项。
**系统能力**以下各项对应的系统能力均为SystemCapability.Global.I18n
**系统能力**:SystemCapability.Global.I18n
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| --------------- | ------- | ---- | ---- | ---------------------------------------- |
......@@ -302,7 +305,7 @@ constructor()
**系统能力**:SystemCapability.Global.I18n
**示例:**
```
```js
var numfmt = new Intl.NumberFormat();
```
......@@ -322,7 +325,7 @@ constructor(locale: string | Array&lt;string&gt;, options?: NumberOptions)
| options | [NumberOptions](#numberoptions) | 否 | 用于创建数字格式化的选项。 |
**示例:**
```
```js
var numfmt = new Intl.NumberFormat("en-GB", {style:'decimal', notation:"scientific"});
```
......@@ -347,7 +350,7 @@ format(number: number): string;
**示例:**
```
```js
var numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"});
numfmt.format(1223);
```
......@@ -368,7 +371,7 @@ resolvedOptions(): NumberOptions
**示例:**
```
```js
var numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"});
numfmt.resolvedOptions();
```
......@@ -388,7 +391,7 @@ resolvedOptions(): NumberOptions
| currencyDisplay | string | 是 | 是 | 货币的显示方式,取值包括:"symbol",&nbsp;"narrowSymbol",&nbsp;"code",&nbsp;"name"。 |
| unit | string | 是 | 是 | 单位名称,如:"meter","inch",“hectare”等。 |
| unitDisplay | string | 是 | 是 | 单位的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
| unitUsage<sup>8+</sup> | string | 是 | 是 | 单位的使用场景,取值包括:"default",&nbsp;"area-land-agricult",&nbsp;"area-land-commercl",&nbsp;"area-land-residntl",&nbsp;"length-person",&nbsp;"length-person-small",&nbsp;"length-rainfall",&nbsp;"length-road",&nbsp;"length-road-small",&nbsp;"length-snowfall",&nbsp;"length-vehicle",&nbsp;"length-visiblty",&nbsp;"length-visiblty-small",&nbsp;"length-person-informal",&nbsp;"length-person-small-informal",&nbsp;"length-road-informal",&nbsp;"speed-road-travel",&nbsp;"speed-wind",&nbsp;"temperature-person",&nbsp;"temperature-weather",&nbsp;"volume-vehicle-fuel"。 |
| unitUsage<sup>8+</sup> | string | 是 | 是 | 单位的使用场景,取值包括:"default",&nbsp;"area-land-agricult",&nbsp;"area-land-commercl",&nbsp;"area-land-residntl",&nbsp;"length-person",&nbsp;"length-person-small",&nbsp;"length-rainfall",&nbsp;"length-road",&nbsp;"length-road-small",&nbsp;"length-snowfall",&nbsp;"length-vehicle",&nbsp;"length-visiblty",&nbsp;"length-visiblty-small",&nbsp;"length-person-informal",&nbsp;"length-person-small-informal",&nbsp;"length-road-informal",&nbsp;"speed-road-travel",&nbsp;"speed-wind",&nbsp;"temperature-person",&nbsp;"temperature-weather",&nbsp;"volume-vehicle-fuel"。 |
| signDisplay | string | 是 | 是 | 数字符号的显示格式,取值包括:"auto",&nbsp;"never",&nbsp;"always",&nbsp;"expectZero"。 |
| compactDisplay | string | 是 | 是 | 紧凑型的显示格式,取值包括:"long",&nbsp;"short"。 |
| notation | string | 是 | 是 | 数字的格式化规格,取值包括:"standard",&nbsp;"scientific",&nbsp;"engineering",&nbsp;"compact"。 |
......@@ -415,7 +418,7 @@ constructor()
**系统能力**:SystemCapability.Global.I18n
**示例:**
```
```js
var collator = new Intl.Collator();
```
......@@ -436,7 +439,7 @@ constructor(locale: string | Array&lt;string&gt;, options?: CollatorOptions)
| options | [CollatorOptions](#collatoroptions) | 否 | 用于创建排序对象的选项。 |
**示例:**
```
```js
var collator = new Intl.Collator("zh-CN", {localeMatcher: "lookup", usage: "sort"});
```
......@@ -461,7 +464,7 @@ compare(first: string, second: string): number
| number | 比较结果。当number为负数,表示first排序在second之前;当number为0,表示first与second排序相同;当number为正数,表示first排序在second之后。 |
**示例:**
```
```js
var collator = new Intl.Collator("zh-Hans");
collator.compare("first", "second");
```
......@@ -481,17 +484,17 @@ resolvedOptions(): CollatorOptions
| [CollatorOptions](#collatoroptions) | 返回的Collator对象的属性。 |
**示例:**
```
```js
var collator = new Intl.Collator("zh-Hans");
var options = collator.resolvedOptions();
```
## CollatorOptions<sup>8+</sup><a name=collatoroptions></a>
## CollatorOptions<sup>8+</sup>
表示Collator可设置的属性。
**系统能力**以下各项对应的系统能力均为SystemCapability.Global.I18n
**系统能力**:SystemCapability.Global.I18n
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ----------------- | ------- | ---- | ---- | ---------------------------------------- |
......@@ -516,7 +519,7 @@ constructor()
**系统能力**:SystemCapability.Global.I18n
**示例:**
```
```js
var pluralRules = new Intl.PluralRules();
```
......@@ -536,8 +539,8 @@ constructor(locale: string | Array&lt;string&gt;, options?: PluralRulesOptions)
| options | [PluralRulesOptions](#pluralrulesoptions) | 否 | 用于创建单复数对象的选项。 |
**示例:**
```
var pluralRules= new Intl.PluraRules("zh-CN", {"localeMatcher": "lookup", "type": "cardinal"});
```js
var pluralRules= new Intl.PluralRules("zh-CN", {"localeMatcher": "lookup", "type": "cardinal"});
```
......@@ -560,17 +563,17 @@ select(n: number): string
| string | 单复数类别,取值包括:"zero","one","two",&nbsp;"few",&nbsp;"many",&nbsp;"others"。 |
**示例:**
```
```js
var pluralRules = new Intl.PluralRules("zh-Hans");
pluralRules.select(1);
```
## PluralRulesOptions<sup>8+</sup><a name=pluralrulesoptions></a>
## PluralRulesOptions<sup>8+</sup>
表示PluralRules对象可设置的属性。
**系统能力**以下各项对应的系统能力均为SystemCapability.Global.I18n
**系统能力**:SystemCapability.Global.I18n
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ------------------------ | ------ | ---- | ---- | ---------------------------------------- |
......@@ -595,7 +598,7 @@ constructor()
**系统能力**:SystemCapability.Global.I18n
**示例:**
```
```js
var relativetimefmt = new Intl.RelativeTimeFormat();
```
......@@ -615,7 +618,7 @@ constructor(locale: string | Array&lt;string&gt;, options?: RelativeTimeFormatIn
| options | [RelativeTimeFormatInputOptions](#relativetimeformatinputoptions) | 否 | 用于创建相对时间格式化对象的选项。 |
**示例:**
```
```js
var relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {"localeMatcher": "lookup", "numeric": "always", "style": "long"});
```
......@@ -640,7 +643,7 @@ format(value: number, unit: string): string
| string | 格式化后的相对时间。 |
**示例:**
```
```js
var relativetimefmt = new Intl.RelativeTimeFormat("zh-CN");
relativetimefmt.format(3, "quarter")
```
......@@ -666,7 +669,7 @@ formatToParts(value: number, unit: string): Array&lt;object&gt;
| Array&lt;object&gt; | 返回可用于自定义区域设置格式的相对时间格式的对象数组。 |
**示例:**
```
```js
var relativetimefmt = new Intl.RelativeTimeFormat("en", {"numeric": "auto"});
var parts = relativetimefmt.format(10, "seconds");
```
......@@ -686,17 +689,17 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions
| [RelativeTimeFormatResolvedOptions](#relativetimeformatresolvedoptions) | RelativeTimeFormat&nbsp;对象的格式化选项。 |
**示例:**
```
```js
var relativetimefmt= new Intl.RelativeTimeFormat("en-GB");
relativetimefmt.resolvedOptions();
```
## RelativeTimeFormatInputOptions<sup>8+</sup><a name=relativetimeformatinputoptions></a>
## RelativeTimeFormatInputOptions<sup>8+</sup>
表示RelativeTimeFormat对象可设置的属性。
**系统能力**以下各项对应的系统能力均为SystemCapability.Global.I18n
**系统能力**:SystemCapability.Global.I18n
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ------------- | ------ | ---- | ---- | ---------------------------------------- |
......@@ -705,11 +708,11 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions
| style | string | 是 | 是 | 国际化消息的长度,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
## RelativeTimeFormatResolvedOptions<sup>8+</sup><a name=relativetimeformatresolvedoptions></a>
## RelativeTimeFormatResolvedOptions<sup>8+</sup>
表示RelativeTimeFormat对象可设置的属性。
**系统能力**以下各项对应的系统能力均为SystemCapability.Global.I18n
**系统能力**:SystemCapability.Global.I18n
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| --------------- | ------ | ---- | ---- | ---------------------------------------- |
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册