@ohos.i18n (国际化-I18n)

本模块提供系统相关的或者增强的国际化能力,包括区域管理、电话号码处理、日历等,相关接口为ECMA 402标准中未定义的补充接口。Intl模块提供了ECMA 402标准定义的基础国际化接口,与本模块共同使用可提供完整地国际化支持能力。

说明:

  • 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

  • 从API version 11开始,本模块部分接口支持在ArkTS卡片中使用。

导入模块

import I18n from '@ohos.i18n';

System9+

getDisplayCountry9+

static getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string

获取指定国家的本地化显示文本。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
country string 指定国家。
locale string 显示指定国家的区域ID。
sentenceCase boolean 本地化显示文本是否要首字母大写。默认值:true。

返回值:

类型 说明
string 指定国家的本地化显示文本。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

import { BusinessError } from '@ohos.base';

try {
    let displayCountry: string = I18n.System.getDisplayCountry("zh-CN", "en-GB"); // displayCountry = "China"
} catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error(`call System.getDisplayCountry failed, error code: ${err.code}, message: ${err.message}.`);
}

getDisplayLanguage9+

static getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string

获取指定语言的本地化显示文本。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
language string 指定语言。
locale string 显示指定语言的区域ID。
sentenceCase boolean 本地化显示文本是否要首字母大写。默认值:true。

返回值:

类型 说明
string 指定语言的本地化显示文本。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

import { BusinessError } from '@ohos.base';

try {
  let displayLanguage: string = I18n.System.getDisplayLanguage("zh", "en-GB"); // displayLanguage = Chinese
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getDisplayLanguage failed, error code: ${err.code}, message: ${err.message}.`);
}

getSystemLanguages9+

static getSystemLanguages(): Array<string>

获取系统支持的语言列表。

从API version 11开始,该类型支持在ArkTS卡片中使用。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
Array<string> 系统支持的语言ID列表。

示例:

import { BusinessError } from '@ohos.base';

try {
  let systemLanguages: Array<string> = I18n.System.getSystemLanguages(); // [ "en-Latn-US", "zh-Hans" ]
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getSystemLanguages failed, error code: ${err.code}, message: ${err.message}.`);
}

getSystemCountries9+

static getSystemCountries(language: string): Array<string>

获取针对输入语言系统支持的国家或地区列表。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
language string 语言ID。

返回值:

类型 说明
Array<string> 系统支持的区域ID列表。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

import { BusinessError } from '@ohos.base';

try {
  let systemCountries: Array<string> = I18n.System.getSystemCountries('zh'); // systemCountries = [ "ZW", "YT", "YE", ..., "ER", "CN", "DE" ],共计240个国家或地区
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getSystemCountries failed, error code: ${err.code}, message: ${err.message}.`);
}

isSuggested9+

static isSuggested(language: string, region?: string): boolean

判断当前语言和地区是否匹配。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
language string 合法的语言ID,例如zh。
region string 合法的地区ID,例如CN。默认值:使用SIM卡国家或地区。

返回值:

类型 说明
boolean 返回true,表示当前语言和地区匹配;返回false,表示当前语言和地区不匹配。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

import { BusinessError } from '@ohos.base';

try {
  let res: boolean = I18n.System.isSuggested('zh', 'CN');  // res = true
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.isSuggested failed, error code: ${err.code}, message: ${err.message}.`);
}

getSystemLanguage9+

static getSystemLanguage(): string

获取系统语言。

卡片能力:从API version 11开始,该接口支持在ArkTS卡片中使用。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 系统语言ID。

示例:

import { BusinessError } from '@ohos.base';

try {
  let systemLanguage: string = I18n.System.getSystemLanguage();  // systemLanguage为当前系统语言
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getSystemLanguage failed, error code: ${err.code}, message: ${err.message}.`);
}

getSystemRegion9+

static getSystemRegion(): string

获取系统地区。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 系统地区ID。

示例:

import { BusinessError } from '@ohos.base';

try {
  let systemRegion: string = I18n.System.getSystemRegion(); // 获取系统当前地区设置
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getSystemRegion failed, error code: ${err.code}, message: ${err.message}.`);
}

getSystemLocale9+

static getSystemLocale(): string

获取系统区域。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 系统区域ID。

示例:

import { BusinessError } from '@ohos.base';

try {
  let systemLocale: string = I18n.System.getSystemLocale();  // 获取系统当前Locale
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getSystemLocale failed, error code: ${err.code}, message: ${err.message}.`);
}

is24HourClock9+

static is24HourClock(): boolean

判断系统时间是否为24小时制。

卡片能力:从API version 11开始,该接口支持在ArkTS卡片中使用。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
boolean 返回true,表示系统24小时开关开启;返回false,表示系统24小时开关关闭。

示例:

import { BusinessError } from '@ohos.base';

try {
  let is24HourClock: boolean = I18n.System.is24HourClock();  // 系统24小时开关是否开启
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.is24HourClock failed, error code: ${err.code}, message: ${err.message}.`);
}

getPreferredLanguageList9+

static getPreferredLanguageList(): Array<string>

获取系统偏好语言列表。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
Array<string> 系统偏好语言列表。

示例:

import { BusinessError } from '@ohos.base';

try {
  let preferredLanguageList: Array<string> = I18n.System.getPreferredLanguageList(); // 获取系统当前偏好语言列表
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getPreferredLanguageList failed, error code: ${err.code}, message: ${err.message}.`);
}

getFirstPreferredLanguage9+

static getFirstPreferredLanguage(): string

获取系统偏好语言列表中的第一个偏好语言。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 偏好语言列表中的第一个语言。

示例:

import { BusinessError } from '@ohos.base';

try {
  let firstPreferredLanguage: string = I18n.System.getFirstPreferredLanguage();  // 获取系统当前偏好语言列表中的第一个偏好语言
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getFirstPreferredLanguage failed, error code: ${err.code}, message: ${err.message}.`);
}

setAppPreferredLanguage11+

static setAppPreferredLanguage(language: string): void

设置应用的偏好语言。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
language string 语言ID。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

import { BusinessError } from '@ohos.base';

try {
  I18n.System.setAppPreferredLanguage('zh'); // 设置应用当前语言为 "zh"
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.setAppPreferredLanguage failed, error code: ${err.code}, message: ${err.message}.`);
}

getAppPreferredLanguage9+

static getAppPreferredLanguage(): string

获取应用的偏好语言。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 应用的偏好语言。

示例:

import { BusinessError } from '@ohos.base';

try {
  let appPreferredLanguage: string = I18n.System.getAppPreferredLanguage(); // 获取应用偏好语言
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getAppPreferredLanguage failed, error code: ${err.code}, message: ${err.message}.`);
}

getUsingLocalDigit9+

static getUsingLocalDigit(): boolean

判断系统是否使用本地数字。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
boolean true表示系统当前已打开本地数字开关,false表示系统当前未打开本地数字开关。

示例:

import { BusinessError } from '@ohos.base';

try {
  let status: boolean = I18n.System.getUsingLocalDigit();  // 判断本地化数字开关是否打开
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call System.getUsingLocalDigit failed, error code: ${err.code}, message: ${err.message}.`);
}

I18n.isRTL

isRTL(locale: string): boolean

获取该区域是否为从右至左显示语言。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
locale string 指定区域ID。

返回值:

类型 说明
boolean true表示该locale从右至左显示语言;false表示该locale从左至右显示语言。

示例:

I18n.isRTL("zh-CN");// 中文不是RTL语言,返回false
I18n.isRTL("ar-EG");// 阿语是RTL语言,返回true

I18n.getCalendar8+

getCalendar(locale: string, type? : string): Calendar

获取日历对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
locale string 合法的locale值,例如zh-Hans-CN。
type string 合法的日历类型,目前合法的类型有buddhist, chinese, coptic, ethiopic, hebrew, gregory, indian, islamic_civil, islamic_tbla, islamic_umalqura, japanese, persian。默认值:区域默认的日历类型。

返回值:

类型 说明
Calendar 日历对象。

示例:

I18n.getCalendar("zh-Hans", "chinese"); // 获取中国农历日历对象

EntityRecognizer11+

constructor11+

constructor(locale?: string)

创建实体识别对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
locale string 区域ID。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

let entityRecognizer: I18n.EntityRecognizer = new I18n.EntityRecognizer("zh-CN");

findEntityInfo11+

findEntityInfo(text: string): Array<EntityInfoItem>

识别文本中的实体信息。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
text string 用于识别实体的文本。

返回值:

类型 说明
Array<EntityInfoItem> 识别的实体对象列表。

示例:

let entityRecognizer: I18n.EntityRecognizer = new I18n.EntityRecognizer("zh-CN");
let text1: string = "如有疑问,请联系158****2312";
let result1: Array<I18n.EntityInfoItem> = entityRecognizer.findEntityInfo(text1); // result1[0].type = "phone_number", result1[0].begin = 8, result1[0].end = 19
let text2: string = "我们2023年12月1日一起吃饭吧。";
let result2: Array<I18n.EntityInfoItem> = entityRecognizer.findEntityInfo(text2); // result2[0].type = "date", result2[0].begin = 2, result2[0].end = 12

EntityInfoItem11+

实体信息对象。

系统能力:SystemCapability.Global.I18n

名称 类型 可读 可写 说明
type string 实体的类型,当前支持"phone_number"和"date"。
begin number 实体的起始位置。
end number 实体的终止位置。

Calendar8+

setTime8+

setTime(date: Date): void

设置日历对象内部的时间日期。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
date Date 将要设置的日历对象的内部时间日期。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("en-US", "gregory");
let date: Date = new Date(2021, 10, 7, 8, 0, 0, 0);
calendar.setTime(date);

setTime8+

setTime(time: number): void

设置日历对象内部的时间日期, time为从1970.1.1 00:00:00 GMT逝去的毫秒数。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
time number time为从1970.1.1 00:00:00 GMT逝去的毫秒数。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("en-US", "gregory");
calendar.setTime(10540800000);

set8+

set(year: number, month: number, date:number, hour?: number, minute?: number, second?: number): void

设置日历对象的年、月、日、时、分、秒。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
year number 设置的年。
month number 设置的月。
date number 设置的日。
hour number 设置的小时。默认值:系统小时。
minute number 设置的分钟。默认值:系统分钟。
second number 设置的秒。默认值:系统秒。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.10.1 08:00:00

setTimeZone8+

setTimeZone(timezone: string): void

设置日历对象的时区。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
timezone string 设置的时区id,如“Asia/Shanghai”。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
calendar.setTimeZone("Asia/Shanghai");

getTimeZone8+

getTimeZone(): string

获取日历对象的时区。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 日历对象的时区id。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
calendar.setTimeZone("Asia/Shanghai");
let timezone: string = calendar.getTimeZone(); // timezone = "Asia/Shanghai"

getFirstDayOfWeek8+

getFirstDayOfWeek(): number

获取日历对象的一周起始日。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
number 获取一周的起始日,1代表周日,7代表周六。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("en-US", "gregory");
let firstDayOfWeek: number = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 1

setFirstDayOfWeek8+

setFirstDayOfWeek(value: number): void

设置每一周的起始日。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
value number 设置一周的起始日,1代表周日,7代表周六。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
calendar.setFirstDayOfWeek(3);
let firstDayOfWeek: number = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 3

getMinimalDaysInFirstWeek8+

getMinimalDaysInFirstWeek(): number

获取一年中第一周的最小天数。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
number 一年中第一周的最小天数。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
let minimalDaysInFirstWeek: number = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 1

setMinimalDaysInFirstWeek8+

setMinimalDaysInFirstWeek(value: number): void

设置一年中第一周的最小天数。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
value number 一年中第一周的最小天数。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
calendar.setMinimalDaysInFirstWeek(3);
let minimalDaysInFirstWeek: number = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 3

get8+

get(field: string): number

获取日历对象中与field相关联的值。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
field string 通过field来获取日历对象相应的值。目前支持的field值有 era, year, month, week_of_year, week_of_month, date, day_of_year, day_of_week, day_of_week_in_month, hour, hour_of_day, minute, second, millisecond, zone_offset, dst_offset, year_woy, dow_local, extended_year, julian_day, milliseconds_in_day, is_leap_month。

返回值:

类型 说明
number 与field相关联的值,如当前Calendar对象的内部日期的年份为1990,get("year")返回1990。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.10.1 08:00:00
let hourOfDay: number = calendar.get("hour_of_day"); // hourOfDay = 8

getDisplayName8+

getDisplayName(locale: string): string

获取日历对象在该区域的名字。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
locale string locale用于指定区域,如buddhist在en-US上显示的名称为“Buddhist Calendar”。

返回值:

类型 说明
string 日历在locale所指示的区域的名字。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("en-US", "buddhist");
let calendarName: string = calendar.getDisplayName("zh"); // calendarName = "佛历"

isWeekend8+

isWeekend(date?: Date): boolean

判断指定的日期在日历中是否为周末。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
date Date 指定的日期。若不填,则判断当前日期是否为周末。默认值:系统日期。

返回值:

类型 说明
boolean 若判断指定日期为周末时,返回true,否则返回false。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
calendar.set(2021, 11, 11, 8, 0, 0); // set time to 2021.12.11 08:00:00
calendar.isWeekend(); // true
let date: Date = new Date(2011, 11, 6, 9, 0, 0);
calendar.isWeekend(date); // false

add11+

add(field: string, amount: number): void

在日历的给定字段进行加减操作。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
field string 指定进行操作的日历字段,目前支持的field值有 year, month, week_of_year, week_of_month, date, day_of_year, day_of_week, day_of_week_in_month, hour, hour_of_day, minute, second, millisecond。
amount number 进行加减操作的具体数值。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

import { BusinessError } from '@ohos.base';

try {
  let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
  calendar.set(2021, 11, 11, 8, 0, 0); // set time to 2021.11.11 08:00:00
  calendar.add("year", 8); // 2021 + 8
  let year: number = calendar.get("year"); // year = 2029
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call Calendar.add failed, error code: ${err.code}, message: ${err.message}.`);
}

getTimeInMillis11+

getTimeInMillis(): number

获取当前日历的UTC毫秒数。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
number 当前日历的UTC毫秒数。

示例:

let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
calendar.setTime(5000);
let millisecond: number = calendar.getTimeInMillis(); // millisecond = 5000

compareDays11+

compareDays(date: Date): number

比较日历和指定日期相差的天数(按毫秒级的精度,不足一天将按一天进行计算)。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
date Date 指定的日期。

返回值:

类型 说明
number 相差的天数,正数代表日历时间更早,负数代表日历时间更晚。

示例:

import { BusinessError } from '@ohos.base';

try {
  let calendar: I18n.Calendar = I18n.getCalendar("zh-Hans");
  calendar.setTime(5000);
  let date: Date = new Date(6000);
  let diff: number = calendar.compareDays(date); // diff = 1
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call Calendar.compareDays failed, error code: ${err.code}, message: ${err.message}.`);
}

PhoneNumberFormat8+

constructor8+

constructor(country: string, options?: PhoneNumberFormatOptions)

创建电话号码格式化对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
country string 表示电话号码所属国家或地区代码。
options PhoneNumberFormatOptions 电话号码格式化对象的相关选项。默认值:NATIONAL。

示例:

let option: I18n.PhoneNumberFormatOptions = {type: "E164"};
let phoneNumberFormat: I18n.PhoneNumberFormat = new I18n.PhoneNumberFormat("CN", option);

isValidNumber8+

isValidNumber(number: string): boolean

判断传入的电话号码格式是否正确。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
number string 待判断的电话号码。

返回值:

类型 说明
boolean 返回true表示电话号码的格式正确,返回false表示电话号码的格式错误。

示例:

let phonenumberfmt: I18n.PhoneNumberFormat = new I18n.PhoneNumberFormat("CN");
let isValidNumber: boolean = phonenumberfmt.isValidNumber("158****2312"); // isValidNumber = true

format8+

format(number: string): string

对电话号码进行格式化。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
number string 待格式化的电话号码。

返回值:

类型 说明
string 格式化后的电话号码。

示例:

let phonenumberfmt: I18n.PhoneNumberFormat = new I18n.PhoneNumberFormat("CN");
let formattedPhoneNumber: string = phonenumberfmt.format("158****2312"); // formattedPhoneNumber = "158 **** 2312"

getLocationName9+

getLocationName(number: string, locale: string): string

获取电话号码归属地。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
number string 电话号码
locale string 区域ID

返回值:

类型 说明
string 电话号码归属地。

示例:

let phonenumberfmt: I18n.PhoneNumberFormat = new I18n.PhoneNumberFormat("CN");
let locationName: string = phonenumberfmt.getLocationName("158****2345", "zh-CN"); // locationName = "广东省湛江市"

PhoneNumberFormatOptions8+

表示电话号码格式化对象可设置的属性。

系统能力:SystemCapability.Global.I18n

名称 类型 可读 可写 说明
type string 表示对电话号码格式化的类型,取值范围:"E164", "INTERNATIONAL", "NATIONAL", "RFC3966"。
-在API version 8版本,type为必填项。
-API version 9版本开始,type为选填项。

UnitInfo8+

度量衡单位信息。

系统能力:SystemCapability.Global.I18n

名称 类型 可读 可写 说明
unit string 单位的名称,如:"meter", "inch", "cup"等。
measureSystem string 单位的度量体系,取值包括:"SI", "US", "UK"。

getInstance8+

getInstance(locale?:string): IndexUtil

创建并返回IndexUtil对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
locale string 区域设置信息字符串,包括语言以及可选的脚本和区域。默认值:系统Locale。

返回值:

类型 说明
IndexUtil locale对应的IndexUtil对象。

示例:

let indexUtil: I18n.IndexUtil = I18n.getInstance("zh-CN");

IndexUtil8+

getIndexList8+

getIndexList(): Array<string>

获取当前区域对应的索引列表。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
Array<string> 返回当前locale对应的索引列表。

示例:

let indexUtil: I18n.IndexUtil = I18n.getInstance("zh-CN");
// indexList = [ "...", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
//              "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "..." ]
let indexList: Array<string> = indexUtil.getIndexList();

addLocale8+

addLocale(locale: string): void

在当前索引列表中添加新的区域。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
locale string 区域设置信息的字符串,包括语言以及可选的脚本和区域。

示例:

let indexUtil: I18n.IndexUtil = I18n.getInstance("zh-CN");
indexUtil.addLocale("en-US");

getIndex8+

getIndex(text: string): string

获取text对应的索引。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
text string 待计算索引值的输入文本。

返回值:

类型 说明
string 输入文本对应的索引值。

示例:

let indexUtil: I18n.IndexUtil = I18n.getInstance("zh-CN");
let index: string = indexUtil.getIndex("hi");  // index = "H"

I18n.getLineInstance8+

getLineInstance(locale: string): BreakIterator

获取一个用于断句的BreakIterator对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
locale string 合法的locale值,例如zh-Hans-CN。生成的BreakIterator将按照locale所指定的区域的规则来进行断句。

返回值:

类型 说明
BreakIterator 用于进行断句的处理器。

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");

BreakIterator8+

setLineBreakText8+

setLineBreakText(text: string): void

设置BreakIterator要处理的文本。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
text string 指定BreakIterator进行断句的文本。

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");
iterator.setLineBreakText("Apple is my favorite fruit."); // 设置短句文本

getLineBreakText8+

getLineBreakText(): string

获取BreakIterator当前处理的文本。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string BreakIterator对象正在处理的文本

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");
iterator.setLineBreakText("Apple is my favorite fruit.");
let breakText: string = iterator.getLineBreakText(); // breakText = "Apple is my favorite fruit."

current8+

current(): number

获取BreakIterator对象在当前处理的文本中的位置。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
number BreakIterator在当前所处理的文本中的位置。

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");
iterator.setLineBreakText("Apple is my favorite fruit.");
let currentPos: number = iterator.current(); // currentPos = 0

first8+

first(): number

将BreakIterator对象设置到第一个可断句的分割点。第一个分割点总是被处理的文本的起始位置。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
number 被处理文本的第一个分割点的偏移量。

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");
iterator.setLineBreakText("Apple is my favorite fruit.");
let firstPos: number = iterator.first(); // firstPos = 0

last8+

last(): number

将BreakIterator对象的位置设置到最后一个可断句的分割点。最后一个分割点总是被处理文本末尾的下一个位置。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
number 被处理的文本的最后一个分割点的偏移量

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");
iterator.setLineBreakText("Apple is my favorite fruit.");
let lastPos: number = iterator.last(); // lastPos = 27

next8+

next(index?: number): number

将BreakIterator向后移动相应个分割点。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
index number BreakIterator将要移动的分割点数。正数代表向后移动,即将BreakIterator向后移动number个可断句的分割点;负数代表向前移动,即向前移动相应个分割点。默认值:1。

返回值:

类型 说明
number 返回移动了index个分割点后,当前BreakIterator在文本中的位置。若移动index个分割点后超出了所处理的文本的长度范围,返回-1。

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");
iterator.setLineBreakText("Apple is my favorite fruit.");
let pos: number = iterator.first(); // pos = 0
pos = iterator.next(); // pos = 6
pos = iterator.next(10); // pos = -1

previous8+

previous(): number

将BreakIterator向前移动一个分割点。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
number 返回移动到前一个分割点后,当前BreakIterator在文本中的位置。若移动index个分割点后超出了所处理的文本的长度范围,返回-1。

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");
iterator.setLineBreakText("Apple is my favorite fruit.");
let pos: number = iterator.first(); // pos = 0
pos = iterator.next(3); // pos = 12
pos = iterator.previous(); // pos = 9

following8+

following(offset: number): number

将BreakIterator设置到指定位置的后面一个分割点。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
offset number 将BreakIterator设置到指定位置的后面一个分割点。

返回值:

类型 说明
number 返回BreakIterator移动后的位置,如果由offset所指定的位置的下一个分割点超出了文本的范围则返回-1。

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");
iterator.setLineBreakText("Apple is my favorite fruit.");
let pos: number = iterator.following(0); // pos = 6
pos = iterator.following(100); // pos = -1
pos = iterator.current(); // pos = 27

isBoundary8+

isBoundary(offset: number): boolean

判断文本指定位置是否为分割点。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
offset number 若offset指定的文本位置是一个分割点,则返回true,否则返回false。返回true时,将BreakIterator对象移动到offset指定的位置,否则相当于调用following。

返回值:

类型 说明
boolean 如果是一个分割点返回true, 否则返回false。

示例:

let iterator: I18n.BreakIterator = I18n.getLineInstance("en");
iterator.setLineBreakText("Apple is my favorite fruit.");
let isBoundary: boolean = iterator.isBoundary(0); // isBoundary = true;
isBoundary = iterator.isBoundary(5); // isBoundary = false;

I18n.getTimeZone

getTimeZone(zoneID?: string): TimeZone

获取时区ID对应的时区对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
zondID string 时区ID。默认值:系统时区。

返回值:

类型 说明
TimeZone 时区ID对应的时区对象。

示例:

let timezone: I18n.TimeZone = I18n.getTimeZone();

TimeZone

getID

getID(): string

获取时区对象的ID。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 时区对象对应的时区ID。

示例:

let timezone: I18n.TimeZone = I18n.getTimeZone();
let timezoneID: string = timezone.getID(); // timezoneID = "Asia/Shanghai"

getDisplayName

getDisplayName(locale?: string, isDST?: boolean): string

获取时区对象的本地化表示。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
locale string 区域ID。默认值:系统Locale。
isDST boolean 时区对象本地化表示时是否考虑夏令时。默认值:false。

返回值:

类型 说明
string 时区对象在指定区域的表示。

示例:

let timezone: I18n.TimeZone = I18n.getTimeZone();
let timezoneName: string = timezone.getDisplayName("zh-CN", false); // timezoneName = "中国标准时间"

getRawOffset

getRawOffset(): number

获取时区对象表示的时区与UTC时区的偏差。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
number 时区对象表示的时区与UTC时区的偏差,单位是毫秒。

示例:

let timezone: I18n.TimeZone = I18n.getTimeZone();
let offset: number = timezone.getRawOffset(); // offset = 28800000

getOffset

getOffset(date?: number): number

获取某一时刻时区对象表示的时区与UTC时区的偏差。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
date number 待计算偏差的时刻,单位是毫秒。默认值:系统时间。

返回值:

类型 说明
number 某一时刻时区对象表示的时区与UTC时区的偏差。默认值:系统时间。

示例:

let timezone: I18n.TimeZone = I18n.getTimeZone();
let offset: number = timezone.getOffset(1234567890); // offset = 28800000

getAvailableIDs9+

static getAvailableIDs(): Array<string>

获取系统支持的时区ID。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
Array<string> 系统支持的时区ID列表。

示例:

// ids = ["America/Adak", "America/Anchorage", "America/Bogota", "America/Denver", "America/Los_Angeles", "America/Montevideo", "America/Santiago", "America/Sao_Paulo", "Asia/Ashgabat", "Asia/Hovd", "Asia/Jerusalem", "Asia/Magadan", "Asia/Omsk", "Asia/Shanghai", "Asia/Tokyo", "Asia/Yerevan", "Atlantic/Cape_Verde", "Australia/Lord_Howe", "Europe/Dublin", "Europe/London", "Europe/Moscow", "Pacific/Auckland", "Pacific/Easter", "Pacific/Pago-Pago"], 当前共支持24个时区
let ids: Array<string> = I18n.TimeZone.getAvailableIDs();

getAvailableZoneCityIDs9+

static getAvailableZoneCityIDs(): Array<string>

获取系统支持的时区城市ID。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
Array<string> 系统支持的时区城市ID列表。

示例:

// cityIDs = ["Auckland", "Magadan", "Lord Howe Island", "Tokyo", "Shanghai", "Hovd", "Omsk", "Ashgabat", "Yerevan", "Moscow", "Tel Aviv", "Dublin", "London", "Praia", "Montevideo", "Brasília", "Santiago", "Bogotá", "Easter Island", "Salt Lake City", "Los Angeles", "Anchorage", "Adak", "Pago Pago"],当前共支持24个时区城市
let cityIDs: Array<string> = I18n.TimeZone.getAvailableZoneCityIDs();

getCityDisplayName9+

static getCityDisplayName(cityID: string, locale: string): string

获取某时区城市在该区域的本地化显示。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
cityID string 时区城市ID。
locale string 区域ID。

返回值:

类型 说明
string 时区城市在locale下的本地化显示

示例:

let displayName: string = I18n.TimeZone.getCityDisplayName("Shanghai", "zh-CN"); // displayName = "上海(中国)"

getTimezoneFromCity9+

static getTimezoneFromCity(cityID: string): TimeZone

创建某时区城市对应的时区对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
cityID string 时区城市ID

返回值:

类型 说明
TimeZone 时区城市对应的时区对象

示例:

let timezone: I18n.TimeZone = I18n.TimeZone.getTimezoneFromCity("Shanghai");

getTimezonesByLocation10+

static getTimezonesByLocation(longitude: number, latitude: number): Array<TimeZone>

创建某经纬度对应的时区对象数组。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
longitude number 经度, 范围[-180, 179.9), 东经取正值, 西经取负值
latitude number 纬度, 范围[-90, 89.9), 北纬取正值, 南纬取负值

返回值:

类型 说明
Array<TimeZone> 时区对象的数组

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

let timezoneArray: Array<I18n.TimeZone> = I18n.TimeZone.getTimezonesByLocation(-118.1, 34.0);
for (let i = 0; i < timezoneArray.length; i++) {
    let tzId: string = timezoneArray[i].getID();
}

Transliterator9+

getAvailableIDs9+

static getAvailableIDs(): string[]

获取音译支持的ID列表。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string[] 音译支持的ID列表。

示例:

// ids共支持671个。每一个id由使用中划线分割的两部分组成,格式为 source-destination。例如ids = ["Han-Latin","Latin-ASCII", "Amharic-Latin/BGN","Accents-Any", ...],Han-Latin表示汉语转为译拉丁文,Amharic-Latin表示阿姆哈拉语转为拉丁文。
// 更多使用信息可以参考ISO-15924。
let ids: string[] = I18n.Transliterator.getAvailableIDs();

getInstance9+

static getInstance(id: string): Transliterator

创建音译对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
id string 音译支持的ID。

返回值:

类型 说明
Transliterator 音译对象。

示例:

let transliterator: I18n.Transliterator = I18n.Transliterator.getInstance("Any-Latn");

transform9+

transform(text: string): string

将输入字符串从源格式转换为目标格式。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
text string 输入字符串。

返回值:

类型 说明
string 转换后的字符串。

示例:

let transliterator: I18n.Transliterator = I18n.Transliterator.getInstance("Any-Latn");
let res: string = transliterator.transform("中国"); // res = "zhōng guó"

Unicode9+

isDigit9+

static isDigit(char: string): boolean

判断字符串char是否是数字。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是数字,返回false表示输入的字符不是数字。

示例:

let isdigit: boolean = I18n.Unicode.isDigit("1");  // isdigit = true

isSpaceChar9+

static isSpaceChar(char: string): boolean

判断字符串char是否是空格符。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是空格符,返回false表示输入的字符不是空格符。

示例:

let isspacechar: boolean = I18n.Unicode.isSpaceChar("a");  // isspacechar = false

isWhitespace9+

static isWhitespace(char: string): boolean

判断字符串char是否是空白符。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是空白符,返回false表示输入的字符不是空白符。

示例:

let iswhitespace: boolean = I18n.Unicode.isWhitespace("a");  // iswhitespace = false

isRTL9+

static isRTL(char: string): boolean

判断字符串char是否是从右到左语言的字符。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是从右到左语言的字符,返回false表示输入的字符不是从右到左语言的字符。

示例:

let isrtl: boolean = I18n.Unicode.isRTL("a");  // isrtl = false

isIdeograph9+

static isIdeograph(char: string): boolean

判断字符串char是否是表意文字。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是表意文字,返回false表示输入的字符不是表意文字。

示例:

let isideograph: boolean = I18n.Unicode.isIdeograph("a");  // isideograph = false

isLetter9+

static isLetter(char: string): boolean

判断字符串char是否是字母。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是字母,返回false表示输入的字符不是字母。

示例:

let isletter: boolean = I18n.Unicode.isLetter("a");  // isletter = true

isLowerCase9+

static isLowerCase(char: string): boolean

判断字符串char是否是小写字母。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是小写字母,返回false表示输入的字符不是小写字母。

示例:

let islowercase: boolean = I18n.Unicode.isLowerCase("a");  // islowercase = true

isUpperCase9+

static isUpperCase(char: string): boolean

判断字符串char是否是大写字母。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是大写字母,返回false表示输入的字符不是大写字母。

示例:

let isuppercase: boolean = I18n.Unicode.isUpperCase("a");  // isuppercase = false

getType9+

static getType(char: string): string

获取输入字符串的一般类别值。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
string 输入字符的一般类别值。

一般类别值如下,更详细的介绍可以参考Unicode标准。

名称 说明
U_UNASSIGNED U_UNASSIGNED 表示未分配和非字符代码点对应类别。
U_GENERAL_OTHER_TYPES U_GENERAL_OTHER_TYPES 与 U_UNASSIGNED 相同。
U_UPPERCASE_LETTER U_UPPERCASE_LETTER 表示大写字母。
U_LOWERCASE_LETTER U_LOWERCASE_LETTER 表示小写字母。
U_TITLECASE_LETTER U_TITLECASE_LETTER 表示首字母大写。
U_MODIFIER_LETTER U_MODIFIER_LETTER 表示字母修饰符。
U_OTHER_LETTER U_OTHER_LETTER 表示其它字母,不属于大写字母、小写字母、首字母大写或修饰符字母的字母。
U_NON_SPACING_MARK U_NON_SPACING_MARK 表示非间距标记,如重音符号',变音符号#。
U_ENCLOSING_MARK U_ENCLOSING_MARK 表示封闭标记和能围住其它字符的标记,如圆圈、方框等。
U_COMBINING_SPACING_MARK U_COMBINING_SPACING_MARK 表示间距标记,如元音符号[ ]。
U_DECIMAL_DIGIT_NUMBER U_DECIMAL_DIGIT_NUMBER 表示十进制数字。
U_LETTER_NUMBER U_LETTER_NUMBER 表示字母数字,罗马数字。
U_OTHER_NUMBER U_OTHER_NUMBER 表示其它作为加密符号和记号的数字,非阿拉伯数字的数字表示符,如@、#、(1)、①等。
U_SPACE_SEPARATOR U_SPACE_SEPARATOR 表示空白分隔符,如空格符、不间断空格、固定宽度的空白符。
U_LINE_SEPARATOR U_LINE_SEPARATOR 表示行分隔符。
U_PARAGRAPH_SEPARATOR U_PARAGRAPH_SEPARATOR 表示段落分割符。
U_CONTROL_CHAR U_CONTROL_CHAR 表示控制字符。
U_FORMAT_CHAR U_FORMAT_CHAR 表示格式字符。
U_PRIVATE_USE_CHAR U_PRIVATE_USE_CHAR 表示私人使用区代码点类别,例如公司 logo。
U_SURROGATE U_SURROGATE 表示代理项,在UTF-16中用来表示补充字符的方法。
U_DASH_PUNCTUATION U_DASH_PUNCTUATION 表示短划线标点。
U_START_PUNCTUATION U_START_PUNCTUATION 表示开始标点,如左括号。
U_END_PUNCTUATION U_END_PUNCTUATION 表示结束标点,如右括号。
U_INITIAL_PUNCTUATION U_INITIAL_PUNCTUATION 表示前引号,如左双引号、左单引号。
U_FINAL_PUNCTUATION U_FINAL_PUNCTUATION 表示后引号,如右双引号、右单引号。
U_CONNECTOR_PUNCTUATION U_CONNECTOR_PUNCTUATION 表示连接符标点。
U_OTHER_PUNCTUATION U_OTHER_PUNCTUATION 表示其他标点。
U_MATH_SYMBOL U_MATH_SYMBOL 表示数学符号。
U_CURRENCY_SYMBOL U_CURRENCY_SYMBOL 表示货币符号。
U_MODIFIER_SYMBOL U_MODIFIER_SYMBOL 表示修饰符号。
U_OTHER_SYMBOL U_OTHER_SYMBOL 表示其它符号。

示例:

let type: string = I18n.Unicode.getType("a"); // type = "U_LOWERCASE_LETTER"

I18NUtil9+

unitConvert9+

static unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, style?: string): string

将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
fromUnit UnitInfo 需要转换的单位。
toUnit UnitInfo 转换成的目标单位。
value number 需要转换的单位的数量值。
locale string 格式化时使用的区域参数,如:zh-Hans-CN。
style string 格式化使用的风格,取值包括:"long", "short", "narrow"。默认值:short。

返回值:

类型 说明
string 按照toUnit的单位格式化后,得到的字符串。

示例:

let fromUnit: I18n.UnitInfo = {unit: "cup", measureSystem: "US"};
let toUnit: I18n.UnitInfo = {unit: "liter", measureSystem: "SI"};
let res: string = I18n.I18NUtil.unitConvert(fromUnit, toUnit, 1000, "en-US", "long"); // res = 236.588 liters

getDateOrder9+

static getDateOrder(locale: string): string

获取该区域日期中年、月、日的排列顺序。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
locale string 格式化时使用的区域参数,如:zh-Hans-CN。

返回值:

类型 说明
string 返回该区域年、月、日的排列顺序。

示例:

let order: string = I18n.I18NUtil.getDateOrder("zh-CN");  // order = "y-L-d"

getTimePeriodName11+

static getTimePeriodName(hour:number, locale?: string): string

获取该区域指定时间的本地化表达。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
hour number 指定的时间,如:16。
locale string 指定区域的参数,默认采用当前APP的区域,如:zh-Hans-CN。

返回值:

类型 说明
string 返回该区域指定时间的本地化表达。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

import { BusinessError } from '@ohos.base';

try {
  let name: string = I18n.I18NUtil.getTimePeriodName(2, "zh-CN");  // name = "凌晨"
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call I18NUtil.getTimePeriodName failed, error code: ${err.code}, message: ${err.message}.`);
}

Normalizer10+

getInstance10+

static getInstance(mode: NormalizerMode): Normalizer

获取文本正则化对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
mode NormalizerMode 文本正则化范式。

返回值:

类型 说明
Normalizer 返回指定范式的文本正则化对象。

示例:

let normalizer: I18n.Normalizer = I18n.Normalizer.getInstance(I18n.NormalizerMode.NFC);

normalize10+

normalize(text: string): string

对字符串进行正则化。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
text string 待正则化的字符串。

返回值:

类型 说明
string 正则化后的字符串。

示例:

let normalizer: I18n.Normalizer = I18n.Normalizer.getInstance(I18n.NormalizerMode.NFC);
let normalizedText: string = normalizer.normalize('\u1E9B\u0323'); // normalizedText = ẛ̣

NormalizerMode10+

表示文本正则化范式的枚举。

系统能力: :SystemCapability.Global.I18n

名称 说明
NFC 1 NFC范式。
NFD 2 NFD范式。
NFKC 3 NFKC范式。
NFKD 4 NFKD范式。

HolidayManager11+

constructor11+

constructor(icsPath: String)

创建HolidayManager对象。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
icsPath String 在设备上有应用读取权限的iCalendar格式的ics文件路径。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

let holidayManager= new I18n.HolidayManager("/system/lib/US.ics");

isHoliday11+

isHoliday(date?: Date): boolean

判断指定的日期是否是节假日。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
date Date JavaScript的Date对象。
如果没有指定日期,默认为当天。

返回值:

类型 说明
boolean 返回true是节假日,返回false不是节假日。

示例:

import { BusinessError } from '@ohos.base';

try {
  let holidayManager= new I18n.HolidayManager("/system/lib/US.ics");
  let isHoliday = holidayManager.isHoliday();
  console.log(isHoliday.toString());
  let isHoliday2 = holidayManager.isHoliday(new Date(2023,5,25));
  console.log(isHoliday2.toString());
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call holidayManager.isHoliday failed, error code: ${err.code}, message: ${err.message}.`);
}

getHolidayInfoItemArray11+

getHolidayInfoItemArray(year?: number): Array<HolidayInfoItem>

获取指定某年的节假日信息列表。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
year number 年,例如2023。
如果没有指定年,默认为当年。

返回值:

类型 说明
Array<HolidayInfoItem> 返回节假日信息列表。

错误码:

以下错误码的详细介绍请参见ohos.i18n错误码

错误码ID 错误信息
890001 param value not valid

示例:

import { BusinessError } from '@ohos.base';

try {
  let holidayManager= new I18n.HolidayManager("/system/lib/US.ics");
  let holidayInfoItemArray = holidayManager.getHolidayInfoItemArray(2023);
  for (let i =0 ;i < holidayInfoItemArray.length; i++) {
      console.log(JSON.stringify(holidayInfoItemArray[i]));
  }
} catch(error) {
  let err: BusinessError = error as BusinessError;
  console.error(`call holidayManager.getHolidayInfoItemArray failed, error code: ${err.code}, message: ${err.message}.`);
}

HolidayInfoItem11+

节假日信息。

系统能力:SystemCapability.Global.I18n

名称 类型 必填 说明
baseName string 节假日的英文名称。
year number 节假日所在年。
month number 节假日所在月。
day number 节假日所在日。
localNames Array<HolidayLocalName> 节假日的本地名称列表。

HolidayLocalName11+

节假日本地名称。

系统能力:SystemCapability.Global.I18n

名称 类型 必填 说明
language string 节假日的本地语言,例如ar,en,tr。
name string 节假日的本地名称,例如Sacrifice Feast(宰牲节)的土耳其语名称为Kurban Bayrami。

I18n.getDisplayCountry(deprecated)

getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string

获取指定国家的本地化显示文本。

从API version 9开始不再维护,建议使用System.getDisplayCountry代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
country string 指定国家。
locale string 显示指定国家的区域ID。
sentenceCase boolean 本地化显示文本是否要首字母大写。默认值:true。

返回值:

类型 说明
string 指定国家的本地化显示文本。

示例:

let countryName: string = I18n.getDisplayCountry("zh-CN", "en-GB", true); // countryName = true
countryName = I18n.getDisplayCountry("zh-CN", "en-GB"); // countryName = true

I18n.getDisplayLanguage(deprecated)

getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string

获取指定语言的本地化显示文本。

从API version 9开始不再维护,建议使用System.getDisplayLanguage代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
language string 指定语言。
locale string 显示指定语言的区域ID。
sentenceCase boolean 本地化显示文本是否要首字母大写。默认值:true。

返回值:

类型 说明
string 指定语言的本地化显示文本。

示例:

let languageName: string = I18n.getDisplayLanguage("zh", "en-GB", true); // languageName = "Chinese"
languageName = I18n.getDisplayLanguage("zh", "en-GB"); // languageName = "Chinese"

I18n.getSystemLanguage(deprecated)

getSystemLanguage(): string

获取系统语言。

从API version 9开始不再维护,建议使用System.getSystemLanguage代替。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 系统语言ID。

示例:

let systemLanguage: string = I18n.getSystemLanguage(); // 返回当前系统语言

I18n.getSystemRegion(deprecated)

getSystemRegion(): string

获取系统地区。

从API version 9开始不再维护,建议使用System.getSystemRegion代替。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 系统地区ID。

示例:

let region: string = I18n.getSystemRegion(); // 返回当前系统地区

I18n.getSystemLocale(deprecated)

getSystemLocale(): string

获取系统区域。

从API version 9开始不再维护,建议使用System.getSystemLocale代替。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 系统区域ID。

示例:

let locale: string = I18n.getSystemLocale(); // 返回系统Locale

I18n.is24HourClock(deprecated)

is24HourClock(): boolean

判断系统时间是否为24小时制。

从API version 9开始不再维护,建议使用System.is24HourClock代替。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
boolean 返回true,表示系统24小时开关开启;返回false,表示系统24小时开关关闭。

示例:

let is24HourClock: boolean = I18n.is24HourClock();

I18n.set24HourClock(deprecated)

set24HourClock(option: boolean): boolean

修改系统时间的24小时制设置。

从API version 9开始不再维护,替代接口仅支持系统应用使用。

需要权限:ohos.permission.UPDATE_CONFIGURATION

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
option boolean option为true,表示开启系统24小时制开关;返回false,表示关闭系统24小时开关。

返回值:

类型 说明
boolean 返回true,表示修改成功;返回false,表示修改失败。

示例:

// 将系统时间设置为24小时制
let success: boolean = I18n.set24HourClock(true);

I18n.addPreferredLanguage(deprecated)

addPreferredLanguage(language: string, index?: number): boolean

在系统偏好语言列表中的指定位置添加偏好语言。

从API version 8开始支持,从API version 9开始不再维护,替代接口仅支持系统应用使用。

需要权限:ohos.permission.UPDATE_CONFIGURATION

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
language string 待添加的偏好语言。
index number 偏好语言的添加位置。默认值:系统偏好语言列表长度。

返回值:

类型 说明
boolean 返回true,表示添加成功;返回false,表示添加失败。

示例:

// 将语言zh-CN添加到系统偏好语言列表中
let language: string = 'zh-CN';
let index: number = 0;
let success: boolean = I18n.addPreferredLanguage(language, index);

I18n.removePreferredLanguage(deprecated)

removePreferredLanguage(index: number): boolean

删除系统偏好语言列表中指定位置的偏好语言。

从API version 8开始支持,从API version 9开始不再维护,替代接口仅支持系统应用使用。

需要权限:ohos.permission.UPDATE_CONFIGURATION

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
index number 待删除偏好语言在系统偏好语言列表中的位置。

返回值:

类型 说明
boolean 返回true,表示删除成功;返回false,表示删除失败。

示例:

// 删除系统偏好语言列表中的第一个偏好语言
let index: number = 0;
let success: boolean = I18n.removePreferredLanguage(index);

I18n.getPreferredLanguageList(deprecated)

getPreferredLanguageList(): Array<string>

获取系统偏好语言列表。

从API version 8开始支持,从API version 9开始不再维护,建议使用System.getPreferredLanguageList代替。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
Array<string> 系统偏好语言列表。

示例:

let preferredLanguageList: Array<string> = I18n.getPreferredLanguageList(); // 获取系统偏好语言列表

I18n.getFirstPreferredLanguage(deprecated)

getFirstPreferredLanguage(): string

获取偏好语言列表中的第一个偏好语言。

从API version 8开始支持,从API version 9开始不再维护,建议使用System.getFirstPreferredLanguage代替。

系统能力:SystemCapability.Global.I18n

返回值:

类型 说明
string 偏好语言列表中的第一个语言。

示例:

let firstPreferredLanguage: string = I18n.getFirstPreferredLanguage();

Util(deprecated)

unitConvert(deprecated)

unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, style?: string): string

将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。

从API version 8开始支持,从API version 9开始不再维护,建议使用unitConvert代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
fromUnit UnitInfo 要被转换的单位。
toUnit UnitInfo 要转换为的单位。
value number 要被转换的单位的数量值。
locale string 格式化时使用的区域参数,如:zh-Hans-CN。
style string 格式化使用的风格,取值包括:"long", "short", "narrow"。默认值:short。

返回值:

类型 说明
string 按照toUnit的单位格式化后,得到的字符串。

Character(deprecated)

isDigit(deprecated)

isDigit(char: string): boolean

判断字符串char是否是数字。

从API version 8开始支持,从API version 9开始不再维护,建议使用isDigit代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是数字,返回false表示输入的字符不是数字。

isSpaceChar(deprecated)

isSpaceChar(char: string): boolean

判断字符串char是否是空格符。

从API version 8开始支持,从API version 9开始不再维护,建议使用isSpaceChar代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是空格符,返回false表示输入的字符不是空格符。

isWhitespace(deprecated)

isWhitespace(char: string): boolean

判断字符串char是否是空白符。

从API version 8开始支持,从API version 9开始不再维护,建议使用isWhitespace代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是空白符,返回false表示输入的字符不是空白符。

isRTL(deprecated)

isRTL(char: string): boolean

判断字符串char是否是从右到左语言的字符。

从API version 8开始支持,从API version 9开始不再维护,建议使用isRTL代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是从右到左语言的字符,返回false表示输入的字符不是从右到左语言的字符。

isIdeograph(deprecated)

isIdeograph(char: string): boolean

判断字符串char是否是表意文字。

从API version 8开始支持,从API version 9开始不再维护,建议使用isIdeograph代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是表意文字,返回false表示输入的字符不是表意文字。

isLetter(deprecated)

isLetter(char: string): boolean

判断字符串char是否是字母。

从API version 8开始支持,从API version 9开始不再维护,建议使用isLetter代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是字母,返回false表示输入的字符不是字母。

isLowerCase(deprecated)

isLowerCase(char: string): boolean

判断字符串char是否是小写字母。

从API version 8开始支持,从API version 9开始不再维护,建议使用isLowerCase代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是小写字母,返回false表示输入的字符不是小写字母。

isUpperCase(deprecated)

isUpperCase(char: string): boolean

判断字符串char是否是大写字母。

从API version 8开始支持,从API version 9开始不再维护,建议使用isUpperCase代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
boolean 返回true表示输入的字符是大写字母,返回false表示输入的字符不是大写字母。

getType(deprecated)

getType(char: string): string

获取输入字符串的一般类别值。

从API version 8开始支持,从API version 9开始不再维护,建议使用getType代替。

系统能力:SystemCapability.Global.I18n

参数:

参数名 类型 必填 说明
char string 输入字符。

返回值:

类型 说明
string 输入字符的一般类别值。