From 9333a758f71c3992c34b1e68f5a2500365d77fcc Mon Sep 17 00:00:00 2001 From: HelloCrease Date: Sat, 19 Mar 2022 19:20:07 +0800 Subject: [PATCH] update Signed-off-by: HelloCrease --- .../figures/zh-cn_image_0000001180249428.png | Bin 0 -> 8916 bytes .../figures/zh-cn_image_0000001196654004.png | Bin 0 -> 21304 bytes .../figures/zh-cn_image_0000001226521897.png | Bin 0 -> 15852 bytes .../figures/zh-cn_image_0000001241693881.png | Bin 0 -> 51351 bytes .../figures/zh-cn_image_0000001241733907.png | Bin 0 -> 16903 bytes .../device/sensor-guidelines.md | 133 +++ .../application-dev/device/sensor-overview.md | 111 +++ .../device/vibrator-guidelines.md | 84 ++ .../device/vibrator-overview.md | 25 + .../internationalization/Readme-CN.md | 5 + .../internationalization/i18n-guidelines.md | 363 ++++++++ .../international-overview.md | 24 + .../internationalization/intl-guidelines.md | 302 +++++++ .../reference/apis/js-apis-audio.md | 124 ++- .../reference/apis/js-apis-contact.md | 814 +++++++++--------- .../reference/apis/js-apis-image.md | 21 +- 16 files changed, 1523 insertions(+), 483 deletions(-) create mode 100644 zh-cn/application-dev/device/figures/zh-cn_image_0000001180249428.png create mode 100644 zh-cn/application-dev/device/figures/zh-cn_image_0000001196654004.png create mode 100644 zh-cn/application-dev/device/figures/zh-cn_image_0000001226521897.png create mode 100644 zh-cn/application-dev/device/figures/zh-cn_image_0000001241693881.png create mode 100644 zh-cn/application-dev/device/figures/zh-cn_image_0000001241733907.png create mode 100644 zh-cn/application-dev/device/sensor-guidelines.md create mode 100644 zh-cn/application-dev/device/sensor-overview.md create mode 100644 zh-cn/application-dev/device/vibrator-guidelines.md create mode 100644 zh-cn/application-dev/device/vibrator-overview.md create mode 100644 zh-cn/application-dev/internationalization/Readme-CN.md create mode 100644 zh-cn/application-dev/internationalization/i18n-guidelines.md create mode 100644 zh-cn/application-dev/internationalization/international-overview.md create mode 100644 zh-cn/application-dev/internationalization/intl-guidelines.md diff --git a/zh-cn/application-dev/device/figures/zh-cn_image_0000001180249428.png b/zh-cn/application-dev/device/figures/zh-cn_image_0000001180249428.png new file mode 100644 index 0000000000000000000000000000000000000000..0f8cd72f3fc88533dc99761c08764b3a498ce115 GIT binary patch literal 8916 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 literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/device/figures/zh-cn_image_0000001196654004.png b/zh-cn/application-dev/device/figures/zh-cn_image_0000001196654004.png new file mode 100644 index 0000000000000000000000000000000000000000..48b1613b6e67f2dd57cd480fdb7fd0312594e049 GIT binary patch literal 21304 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 G5}E*C8wkMw literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/device/figures/zh-cn_image_0000001226521897.png b/zh-cn/application-dev/device/figures/zh-cn_image_0000001226521897.png new file mode 100644 index 0000000000000000000000000000000000000000..b00280219ffe5b8fa4f4f090a6d13254b01db042 GIT binary patch literal 15852 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 literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/device/figures/zh-cn_image_0000001241693881.png b/zh-cn/application-dev/device/figures/zh-cn_image_0000001241693881.png new file mode 100644 index 0000000000000000000000000000000000000000..5c54c71606ce2f81308923d8d4c579f1b9b3ad3c GIT binary patch literal 51351 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≈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 + if(error){//调用失败,打印error.code和error.message + console.log("Promise return faild.error.code"+error.code+"error.message"+error.message); + }else{//调用成功,设备开始振动 + console.log("Promise returned to indicate a successful vibration.") + }; + }) + ``` + +3. 停止设备振动。 + + ``` + import vibrator from "@ohos.vibrator" + vibrator.stop(stopMode: VibratorStopMode).then((error)=>{ + if(error){//调用失败,打印error.code和error.message + console.log(“Promise return faild.error.code”+error.code+“error.message”+error.message); + }else{//调用成功,设备停止振动 + Console.log(“Promise returned to indicate successful.”); + }; + }) + ``` diff --git a/zh-cn/application-dev/device/vibrator-overview.md b/zh-cn/application-dev/device/vibrator-overview.md new file mode 100644 index 0000000000..8817a737a1 --- /dev/null +++ b/zh-cn/application-dev/device/vibrator-overview.md @@ -0,0 +1,25 @@ +# Vibrator开发概述 + + +马达振动服务最大化开放硬工最新马达器件能力,通过拓展原生马达服务实现振动与交互融合设计,打造细腻精致的一体化振动体验和差异化体验,提升用户交互效率和易用性、提升用户体验、增强品牌竞争力。 + + +## 运作机制 + +Vibrator属于控制类小器件,主要包含以下四个模块:Vibrator API,Vibrator Framework,Vibrator Service和HD_IDL层。 + + **图1** 控制类小器件中的Vibrator + ![zh-cn_image_0000001180249428](figures/zh-cn_image_0000001180249428.png) + +- Vibrator API:提供振动器基础的API,主要包含振动器的列表查询,振动器的振动器效果查询,触发/关闭振动器等接口。 + +- Vibrator Framework:实现振动器的框架层管理,实现与控制类小器件Service的通信。 + +- Vibrator Service:实现控制器的服务管理。 + +- HD_IDL层:适配不同设备。 + + +## 约束与限制 + +在使用振动器时,开发者需要配置请求振动器的权限ohos.permission.VIBRATE,才能控制振动器振动。 diff --git a/zh-cn/application-dev/internationalization/Readme-CN.md b/zh-cn/application-dev/internationalization/Readme-CN.md new file mode 100644 index 0000000000..61b9279c0d --- /dev/null +++ b/zh-cn/application-dev/internationalization/Readme-CN.md @@ -0,0 +1,5 @@ +# 国际化 + +- [国际化开发概述](international-overview.md) +- [Intl开发指导](intl-guidelines.md) +- [I18n开发指导](i18n-guidelines.md) diff --git a/zh-cn/application-dev/internationalization/i18n-guidelines.md b/zh-cn/application-dev/internationalization/i18n-guidelines.md new file mode 100644 index 0000000000..28d64fe9b7 --- /dev/null +++ b/zh-cn/application-dev/internationalization/i18n-guidelines.md @@ -0,0 +1,363 @@ +# I18n开发指导 + + +## 获取系统语言区域信息 + +调用系统提供的接口访问系统的语言区域信息。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.i18n | getSystemLanguage(): string | 获取系统语言。 | +| ohos.i18n | getSystemRegion(): string | 获取系统区域。 | +| ohos.i18n | getSystemLocale(): string | 获取系统Locale。 | +| ohos.i18n | isRTL(locale: string): boolean7+ | locale对应的语言是否为从右到左语言。 | +| ohos.i18n | is24HourClock(): boolean7+ | 获取当前系统时间是否采用24小时制 | +| ohos.i18n | getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string | 获取语言的本地化表示。 | +| ohos.i18n | getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string | 获取国家的本地化表示。 | + + +### 开发步骤 + +1. 获取系统语言 + 调用getSystemLanguage方法获取当前系统设置的语言(i18n为导入的模块)。 + + + ``` + var language = i18n.getSystemLanguage(); + ``` + +2. 获取系统区域 + 调用getSystemRegion方法获取当前系统设置的区域 + + ``` + var region = i18n.getSystemRegion(); + ``` + +3. 获取系统Locale + 调用getSystemLocale方法获取当前系统设置的Locale + + ``` + var locale = i18n.getSystemLocale(); + ``` + +4. 判断Locale的语言是否为RTL语言 + 调用isRTL方法获取Locale的语言是否为从右到左语言。 + + + ``` + var rtl = i18n.isRTL("zh-CN"); + ``` + +5. 判断当前系统时间是否采用24小时制 + 调用is24HourClock方法来判断当前系统的时间是否采用24小时制。 + + ``` + var hourClock = i18n.is24HourClock(); + ``` + +6. 获取语言的本地化表示 + 调用getDisplayLanguage方法获取某一语言的本地化表示。其中,language表示待本地化显示的语言,locale表示本地化的Locale,sentenceCase结果是否需要首字母大写。 + + ``` + var language = "en"; + var locale = "zh-CN"; + var sentenceCase = false; + var localizedLanguage = i18n.getDisplayLanguage(language, locale, sentenceCase); + ``` + +7. 获取国家的本地化表示 + 调用getDisplayCountry方法获取某一国家的本地化表示。其中,country表示待本地化显示的国家,locale表示本地化的Locale,sentenceCase结果是否需要首字母大写。 + + ``` + var country = "US"; + var locale = "zh-CN"; + var sentenceCase = false; + var localizedCountry = i18n.getDisplayCountry(country, locale, sentenceCase); + ``` + + +## 获取日历信息 + +调用日历[Calendar](../reference/apis/js-apis-intl.md)相关接口来获取日历的相关信息,例如获取日历的本地化显示、一周起始日、一年中第一周的最小天数等。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.i18n | getCalendar(locale: string, type?: string): Calendar8+ | 获取指定locale和type的日历对象。 | +| ohos.i18n | setTime(date: Date)8+ | 设置日历对象内部的时间日期。 | +| ohos.i18n | setTime(time: number)8+ | 设置日历对象内部的时间日期。 | +| ohos.i18n | set(year: number, month: number, date: number, hour?: number, minute?: number, second?: number)8+ | 设置日历对象的年、月、日、时、分、秒。 | +| ohos.i18n | setTimeZone(timezone: string)8+ | 设置日历对象的时区。 | +| ohos.i18n | getTimeZone(): string8+ | 获取日历对象的时区。 | +| ohos.i18n | getFirstDayOfWeek(): number8+ | 获取日历对象的一周起始日。 | +| ohos.i18n | setFirstDayOfWeek(value: number)8+ | 设置日历对象的一周起始日。 | +| ohos.i18n | getMinimalDaysInFirstWeek(): number8+ | 获取一年中第一周的最小天数。 | +| ohos.i18n | setMinimalDaysInFirstWeek(value: number)8+ | 设置一年中第一周的最小天数。 | +| ohos.i18n | getDisplayName(locale: string): string8+ | 获取日历对象的本地化表示。 | +| ohos.i18n | isWeekend(date?: Date): boolean8+ | 判断给定的日期是否在日历中是周末。 | + + +### 开发步骤 + +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); + ``` + +2. 设置日历对象的时间 + 调用setTime方法设置日历对象的时间。setTime方法接收两种类型的参数。一种是传入一个Date对象,另一种是传入一个数值表示从1970.1.1 00:00:00 GMT逝去的毫秒数。 + + ``` + var date1 = new Date(); + calendar.setTime(date1); + var date2 = 1000; + calendar.setTime(date2); + ``` + +3. 设置日历对象的年、月、日、时、分、秒 + 调用set方法设置日历对象的年、月、日、时、分、秒。 + + ``` + calendar.set(2021, 12, 21, 6, 0, 0) + ``` + +4. 设置、获取日历对象的时区 + 调用setTimeZone方法和getTimeZone方法来设置、获取日历对象的时区。其中,setTimeZone方法需要传入一个字符串表示需要设置的时区。 + + + ``` + calendar.setTimeZone("Asia/Shanghai"); + var timezone = calendar.getTimeZone(); + ``` + +5. 设置、获取日历对象的一周起始日 + 调用setFirstDayOfWeek方法和getFirstDayOfWeek方法设置、获取日历对象的一周起始日。其中,setFirstDayOfWeek需要传入一个数值表示一周的起始日,1代表周日,7代表周六。 + + + ``` + calendar.setFirstDayOfWeek(1); + var firstDayOfWeek = calendar.getFirstDayOfWeek(); + ``` + +6. 设置、获取日历对象第一周的最小天数 + 调用setMinimalDaysInFirstWeek方法和getMinimalDaysInFirstWeek方法来设置、获取日历对象第一周的最小天数。 + + ``` + calendar.setMinimalDaysInFirstWeek(3); + var minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); + ``` + +7. 获取日历对象的本地化显示 + 调用getDisplayName来获取日历对象的本地化显示。 + + + ``` + var localizedName = calendar.getDisplayName("zh-CN"); + ``` + +8. 判断某一个日期是否为周末 + 调用isWeekend方法来判断输入的Date是否为周末。 + + + ``` + var date = new Date(); + var weekend = calendar.isWeekend(date); + ``` + + +## 电话号码格式化 + +调用电话号码格式化[PhoneNumberFormat](../reference/apis/js-apis-intl.md)的接口,实现对针对不同国家电话号码的格式化以及判断电话号码格式是否正确的功能。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.i18n | constructor(country: string, options?: PhoneNumberFormatOptions)8+ | 实例化PhoneNumberFormat对象。 | +| ohos.i18n | isValidNumber(number: string): boolean8+ | 判断number是否是一个格式正确的电话号码。 | +| ohos.i18n | format(number: string): string8+ | 对number按照指定国家及风格进行格式化。 | + + +### 开发步骤 + +1. 实例化电话号码格式化对象 + 调用PhoneNumberFormat的构造函数来实例化电话号码格式化对象,需要传入电话号码的国家代码及格式化选项。其中,格式化选项是可选的,包括style选项,该选项的取值包括:"E164", "INTERNATIONAL", "NATIONAL", "RFC3966"。 + + + ``` + var phoneNumberFormat = new i18n.PhoneNubmerFormat("CN", {type: "E164"}); + ``` + +2. 判断电话号码格式是否正确 + 调用isValidNumber方法来判断输入的电话号码的格式是否正确。 + + ``` + var validNumber = phoneNumberFormat.isValidNumber("15812341234"); + ``` + +3. 电话号码格式化 + 调用电话号码格式化对象的format方法来对输入的电话号码进行格式化。 + + ``` + var formattedNumber = phoneNumberFormat.format("15812341234"); + ``` + + +## 度量衡转换 + +度量衡转换接口可以实现度量衡转换的相关功能。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.i18n | unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, style?: string): string8+ | 将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。 | + + +### 开发步骤 + +1. 度量衡单位转换 + 调用[unitConvert](../reference/apis/js-apis-intl.md)方法实现度量衡单位转换,并进行格式化显示的功能。 + + + ``` + var fromUnit = {unit: "cup", measureSystem: "US"}; + var toUnit = {unit: "liter", measureSystem: "SI"}; + var number = 1000; + var locale = "en-US"; + var style = "long"; + i18n.Util.unitConvert(fromUtil, toUtil, number, locale, style); + ``` + + +## 字母表索引 + +调用字母表索引[IndexUtil](../reference/apis/js-apis-intl.md)的接口可以获取不同Locale的字母表索引,以及实现计算字符串所属索引的功能。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.i18n | getInstance(locale?: string): IndexUtil8+ | 实例化字母表索引对象。 | +| ohos.i18n | getIndexList(): Array<string>8+ | 获取当前Locale的索引列表。 | +| ohos.i18n | addLocale(locale: string)8+ | 将新的Locale对应的索引加入当前索引列表。 | +| ohos.i18n | getIndex(text: string): string8+ | 获取text对应的索引。 | + + +### 开发步骤 + +1. 实例化字母表索引对象 + 调用getInstance方法来实例化特定locale对应的字母表索引对象。当locale参数为空时,实例化系统默认Locale的字母表索引对象。 + + + ``` + var indexUtil = getInstance("zh-CN"); + ``` + +2. 获取索引列表 + 调用getIndexList方法来获取当前Locale对应的字母表索引列表。 + + ``` + var indexList = indexUtil.getIndexList(); + ``` + +3. 增加新的索引 + 调用addLocale方法,将新的Locale对应的字母表索引添加到当前字母表索引列表中。 + + ``` + indexUtil.addLocale("ar") + ``` + +4. 获取字符串对应的索引 + 调用getIndex方法来获取某一字符串对应的字母表索引。 + + ``` + var text = "access index"; + indexUtil.getIndex(text); + ``` + + +## 获取文本断点位置 + +当文本比较长无法在一行进行显示时,调用文本断点[BreakIterator8](../reference/apis/js-apis-intl.md)的接口,来获取文本可以断行的位置。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.i18n | getLineInstance(locale: string): BreakIterator8+ | 实例化断行对象。 | +| ohos.i18n | setLineBreakText(text: string)8+ | 设置要处理的文本。 | +| ohos.i18n | getLineBreakText(): string8+ | 获取要处理的文本。 | +| ohos.i18n | current(): number8+ | 获取当前断行对象在处理文本的位置。 | +| ohos.i18n | first(): number8+ | 将断行对象设置到第一个可断句的分割点。 | +| ohos.i18n | last(): number8+ | 将断行对象设置到最后一个可断句的分割点。 | +| ohos.i18n | next(index?: number): number8+ | 将断行对象移动index个分割点的位置。 | +| ohos.i18n | previous(): number8+ | 将断行对象移动到前一个分割点的位置。 | +| ohos.i18n | following(offset: number): number8+ | 将断行对象移动到offset指定位置的后面一个分割点的位置。 | +| ohos.i18n | isBoundary(offset: number): boolean8+ | 判断某个位置是否是分割点。 | + + +### 开发步骤 + +1. 实例化断行对象 + 调用getLineInstance方法来实例化断行对象。 + + + ``` + var locale = "en-US" + var breakIterator = i18n.getLineInstance(locale); + ``` + +2. 设置、访问要断行处理的文本 + 调用setLineBreakText方法和getLineBreakText方法来设置、访问要断行处理的文本。 + + + ``` + var text = "Apple is my favorite fruit"; + breakIterator.setLineBreakText(text); + var breakText = breakIterator.getLineBreakText(); + ``` + +3. 获取断行对象当前的位置 + 调用current方法来获取断行对象在当前处理文本中的位置。 + + + ``` + var pos = breakIterator.current(); + ``` + +4. 设置断行对象的位置 + 系统提供了很多接口可以用于调整断行对象在处理文本中的位置,包括first, last, next, previous, following。 + + + ``` + var firstPos = breakIterator.first(); // 将断行对象设置到第一个分割点的位置,即文本的起始位置; + var lastPos = breakIterator.last(); // 将断行对象设置到最后一个分割点的位置,即文本末尾的下一个位置; + // 将断行对象向前或向后移动一定数量的分割点。 + // 当传入正数时,向后移动;当传入负数时,向前移动;当未传入数值时,则向后移动一个位置; + // 当移动超出了文本的长度范围,则返回-1; + var nextPos = breakIterator.next(-2); + var previousPos = breakIterator.previous(); // 将断行对象向前移动向前移动一个分割点,当超出文本长度范围时返回-1; + // 将断行对象移动到offset指定位置的后面一个分割点。如果offset所指定的位置的下一个分割点超出了文本的长度范围,则返回-1; + var followingPos = breakIterator.following(10); + ``` + +5. 判断某个位置是否为分割点 + 调用isBoundary方法来判断一个方法是否为分割点;如果该位置是分割点,则返回true,并且将断行对象移动到该位置;如果该位置不是分割点,则返回false,并且将断行对象移动到该位置后的一个分割点。 + + + ``` + var isboundary = breakIterator.isBoundary(5); + ``` diff --git a/zh-cn/application-dev/internationalization/international-overview.md b/zh-cn/application-dev/internationalization/international-overview.md new file mode 100644 index 0000000000..920da61ba0 --- /dev/null +++ b/zh-cn/application-dev/internationalization/international-overview.md @@ -0,0 +1,24 @@ +# 国际化开发概述 + + +当应用具有多个在语言、时区、区域特性等方面存在显著差异的目标用户和市场时,开发者往往需要提供应用的多个本地化版本,以保证不同地区用户的体验。 + + +应用的国际化能力决定了应用本地化过程的难易程度。系统提供了一系列的国际化接口,基于这些国际化接口,开发者可以设计并实现具有良好国际化能力的应用,从而可以高效、低成本的实现应用的本地化。 + + +## 基本概念 + +- Locale:Locale是对一个群体在语言、脚本、国家或区域,以及日历、排序、货币等区域特性方面的共性的抽象表示。 + +- 偏好语言:偏好语言是用户设置过的语言,表示该语言是用户可接受的语言。用户可以在 设置/系统和更新/语言和输入法/语言和地区/添加语言中添加偏好语言。 + + +## 运作机制 + +在调用国际化接口时,需要提供Locale信息,接口会依据该Locale的特性进行差异化的执行。Locale信息可以由开发人员通过硬编码的方式提供,但更通常的情况是使用用户设置的系统语言和区域。 + + +## 约束与限制 + +无 diff --git a/zh-cn/application-dev/internationalization/intl-guidelines.md b/zh-cn/application-dev/internationalization/intl-guidelines.md new file mode 100644 index 0000000000..ca13f2f316 --- /dev/null +++ b/zh-cn/application-dev/internationalization/intl-guidelines.md @@ -0,0 +1,302 @@ +# Intl开发指导 + + +## 设置区域信息 + +调用[Locale](../reference/apis/js-apis-intl.md)的相关接口实现最大化区域信息或最小化区域信息。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.intl | constructor()8+ | 实例化Locale对象。 | +| ohos.intl | constructor(locale: string, options?: LocaleOptions) | 基于locale参数及其选项实例化Locale对象。 | +| ohos.intl | toString(): string | 将Locale信息转换为字符串。 | +| ohos.intl | maximize(): Locale | 最大化区域信息。 | +| ohos.intl | minimize(): Locale | 最小化区域信息。 | + + +### 开发步骤 + +1. 实例化Locale对象 + 使用Locale的构造函数创建Locale对象,该方法接收一个表示Locale的字符串及可选的[属性](../reference/apis/js-apis-intl.md)列表(intl为导入的模块名)。 + + + ``` + var locale = "zh-CN"; + var options = {caseFirst: false, calendar: "chinese", collation: pinyin}; + var localeObj = new intl.Locale(locale, options); + ``` + +2. 获取Locale的字符串表示 + 调用toString方法来获取Locale对象的字符串表示,其中包括了语言、区域及其他选项信息。 + + ``` + var localeStr = localeObj.toString(); + ``` + +3. 最大化区域信息 + 调用maximize方法来最大化区域信息,即当缺少脚本与地区信息时,对其进行补全。 + + ``` + var maximizedLocale = localeObj.maximize(); + ``` + +4. 最小化区域信息 + 调用minimize方法来最大化区域信息,即当存在脚本与地区信息时,对其进行删除。 + + ``` + var minimizedLocale = localeObj.minimize(); + ``` + + +## 格式化日期时间 + +调用日期时间格式化[DateTimeFormat](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的日期格式化以及时间段格式化功能。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.intl | constructor()8+ | 创建日期时间格式化对象。 | +| ohos.intl | constructor(locale: string \| Array, options?: DateTimeOptions) | 创建日期时间格式化对象,并设置提供的Locale和格式化相关属性。 | +| ohos.intl | format(date: Date): string | 依据DateTimeFormat对象的Locale及其他格式化属性,计算日期时间的格式化表示。 | +| ohos.intl | formatRange(startDate: Date, endDate: Date): string | 依据DateTimeFormat对象的Locale及其他格式化属性,计算时间段的格式化表示。 | +| ohos.intl | resolvedOptions(): DateTimeOptions | 获取DateTimeFormat对象的相关属性。 | + + +### 开发步骤 + +1. 实例化日期时间格式化对象 + 一种方法是使用DateTimeFormat提供的默认构造函数,通过访问系统语言和地区设置,获取系统默认Locale,并将其作为DateTimeFormat对象内部的Locale(intl为导入的模块名)。 + + + ``` + var dateTimeFormat = new intl.DateTimeFormat(); + ``` + + 另一种方法是使用开发者提供的Locale和格式化参数来创建日期时间格式化对象。其中,格式化参数是可选的,完整的格式化参数列表见[DateTimeOptions](../reference/apis/js-apis-intl.md)。 + + ``` + var options = {dateStyle: "full", timeStyle: "full"}; + var dateTimeFormat = new intl.DateTimeFormat("zh-CN", options); + ``` + +2. 格式化日期时间 + 使用DateTimeFormat的format方法对一个Date对象进行格式化,该方法会返回一个字符串作为格式化的结果。 + + ``` + Date date = new Date(); + var formatResult = dateTimeFormat.format(date); + ``` + +3. 格式化时间段 + 使用DateTimeFormat的formatRange方法对一个时间段进行格式化。该方法需要传入两个Date对象,分别表示时间段的起止时间,返回一个字符串作为格式化的结果。 + + ``` + Date startDate = new Date(); + Date endDate = new Date(); + var formatResult = dateTimeFormat.formatRange(startDate, endDate); + ``` + +4. 访问日期时间格式化对象的相关属性 + DateTimeFormat的resolvedOptions方法会返回一个对象,该对象包含了DateTimeFormat对象的所有相关属性及其值。 + + ``` + var options = dateTimeFormat.resolvedOptions(); + ``` + + +## 数字格式化 + +调用数字格式化[NumberFormat](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的数字格式化功能。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.intl | constructor()8+ | 创建数字格式化对象。 | +| ohos.intl | constructor(locale: string \| Array, options?: NumberOptions) | 创建数字格式化对象,并设置提供的locale和格式化相关属性。 | +| ohos.intl | format(number: number): string | 依据NumberFormat对象的Locale及其他格式化属性,计算数字的格式化表示。 | +| ohos.intl | resolvedOptions(): NumberOptions | 获取NumberFormat对象的相关属性。 | + + +### 开发步骤 + +1. 实例化数字格式化对象 + 一种方法是使用NumberFormat提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。 + + + ``` + var numberFormat = new intl.NumberFormat(); + ``` + + 另一种方法是使用开发者提供的Locale和格式化参数来创建数字格式化对象。其中,格式化参数是可选的,完整的格式化参数列表参见[NumberOptions](../reference/apis/js-apis-intl.md)。 + + ``` + var options = {compactDisplay: "short", notation: "compact"}; + var numberFormat = new intl.NumberFormat("zh-CN", options); + ``` + +2. 数字格式化 + 使用NumberFormat的format方法对传入的数字进行格式化。该方法返回一个字符串作为格式化的结果。 + + ``` + var number = 1234.5678 + var formatResult = numberFormat.format(number); + ``` + +3. 访问数字格式化对象的相关属性 + NumberFormat的resolvedOptions方法会返回一个对象,该对象包含了NumberFormat对象的所有相关属性及其值。 + + ``` + var options = numberFormat.resolvedOptions(); + ``` + + +## 字符串排序 + +不同区域的用户对于字符串排序具有不同的需求。调用字符串排序[Collator](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的字符串排序功能。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.intl | constructor()8+ | 创建排序对象。 | +| ohos.intl | constructor(locale: string \| Array, options?: CollatorOptions)8+ | 创建排序对象,并设置提供的locale和其他相关属性。 | +| ohos.intl | compare(first: string, second: string): number8+ | 依据排序对象的Locale及其属性,计算两个字符串的比较结果。 | +| ohos.intl | resolvedOptions(): CollatorOptions8+ | 获取排序对象的相关属性。 | + + +### 开发步骤 + +1. 实例化排序对象 + 一种方法是使用Collator提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。 + + + ``` + var collator = new intl.Collator(); + ``` + + 另一种方法是使用开发者提供的Locale和其他相关参数来创建Collator对象,完整的参数列表参见[CollatorOptions](../reference/apis/js-apis-intl.md)。 + + ``` + var collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"}; + ``` + +2. 比较字符串 + 使用Collator的compare方法对传入的两个字符串进行比较。该方法返回一个数值作为比较的结果,返回-1表示第一个字符串小于第二个字符串,返回1表示第一个字符大于第二个字符串,返回0表示两个字符串相同。 + + ``` + var str1 = "first string"; + var str2 = "second string"; + var compareResult = collator.compare(str1, str2); + ``` + +3. 访问排序对象的相关属性 + Collator的resolvedOptions方法会返回一个对象,该对象包含了Collator对象的所有相关属性及其值。 + + ``` + var options = collator.resolvedOptions(); + ``` + + +## 判定单复数类别 + +在一些语言的语法中,当数字后面存在名词时,名词需要根据数字的值采用不同的形式。调用单复数[PluralRules](../reference/apis/js-apis-intl.md)的接口,可以实现针对特定Locale计算数字单复数类别的功能,从而选择合适的名词单复数表示。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.intl | constructor()8+ | 创建单复数对象。 | +| ohos.intl | constructor(locale: string \| Array, options?: PluralRulesOptions)8+ | 创建单复数对象,并设置提供的locale和其他相关属性。 | +| ohos.intl | select(n: number): string8+ | 依据单复数对象的Locale及其他格式化属性,计算数字的单复数类别。 | + + +### 开发步骤 + +1. 实例化单复数对象 + 一种方法是使用PluralRules提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。 + + + ``` + var pluralRules = new intl.PluralRules(); + ``` + + 另一种方法是使用开发者提供的Locale和其他相关参数来创建单复数对象,完整的参数列表参见[PluralRulesOptions](../reference/apis/js-apis-intl.md)。 + + ``` + var plurals = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"}; + ``` + +2. 计算数字单复数类别 + 使用PluralRules的select方法计算传入数字的单复数类别。该方法返回一个字符串作为传入数字的类别,包括:"zero", "one", "two", "few", "many", "other"六个类别。 + + ``` + var number = 1234.5678 + var categoryResult = plurals.select(number); + ``` + + +## 相对时间格式化 + +调用相对时间格式化[RelativeTimeFormat](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的相对时间格式化功能。 + + +### 接口说明 + +| 模块 | 接口名称 | 描述 | +| -------- | -------- | -------- | +| ohos.intl | constructor()8+ | 创建相对时间格式化对象。 | +| ohos.intl | constructor(locale: string \| Array, options?: RelativeTimeFormatInputOptions)8+ | 创建相对时间格式化对象,并设置提供的locale和格式化相关属性。 | +| ohos.intl | format(value: number, unit: string): string8+ | 依据相对时间格式化对象的Locale及其他格式化属性,计算相对时间的格式化表示。 | +| ohos.intl | formatToParts(value: number, unit: string): Array8+ | 依据相对时间格式化对象的Locale及其他格式化属性,返回相对时间格式化表示的各个部分。 | +| ohos.intl | resolvedOptions(): RelativeTimeFormatResolvedOptions8+ | 获取相对时间格式化对象的相关属性。 | + + +### 开发步骤 + +1. 实例化相对时间格式化对象 + 一种方法是使用RelativeTimeFormat提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。 + + + ``` + var relativeTimeFormat = new intl.RelativeTimeFormat(); + ``` + + 另一种方法是使用开发者提供的Locale和格式化参数来创建数字格式化对象。其中,格式化参数是可选的,完整的参数列表参见[ RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md)。 + + ``` + var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}; + ``` + +2. 相对时间格式化 + 使用RelativeTimeFormat的format方法对相对时间进行格式化。方法接收一个表示相对时间长度的数值和表示单位的字符串,其中单位包括:"year", "quarter", "month", "week", "day", "hour", "minute", "second"。方法返回一个字符串作为格式化的结果。 + + ``` + var number = 2; + var unit = "year" + var formatResult = relativeTimeFormat.format(number, unit); + ``` + +3. 获取相对时间格式化结果的各个部分 + 获取相对时间格式化结果的各个部分,从而自定义格式化结果。 + + ``` + var number = 2; + var unit = "year" + var formatResult = relativeTimeFormat.formatToParts(number, unit); + ``` + +4. 相对时间格式化对象的相关属性 + RelativeTimeFormat的resolvedOptions方法会返回一个对象,该对象包含了RelativeTimeFormat对象的所有相关属性及其值,完整的属性列表参见[ RelativeTimeFormatResolvedOptions](../reference/apis/js-apis-intl.md)。 + + ``` + var options = numberFormat.resolvedOptions(); + ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index 0d782ef007..848ddae588 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -44,9 +44,9 @@ createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\ | 是 | 音频渲染器对象。 | **示例:** @@ -135,9 +135,9 @@ createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback