js-apis-i18n.md 73.3 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.i18n (国际化-I18n)
Z
zengyawen 已提交
2

T
explain  
tianyu 已提交
3 4 5
 本模块提供系统相关的或者增强的国际化能力,包括区域管理、电话号码处理、日历等,相关接口为ECMA 402标准中未定义的补充接口。
[Intl模块](js-apis-intl.md)提供了ECMA 402标准定义的基础国际化接口,与本模块共同使用可提供完整地国际化支持能力。 

H
HelloCrease 已提交
6 7
>  **说明:**
>  - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
H
HelloCrease 已提交
8
>
H
HelloCrease 已提交
9
>  - I18N模块包含国际化能力增强接口(未在ECMA 402中定义),包括区域管理、电话号码处理、日历等,国际化基础能力请参考[Intl模块](js-apis-intl.md)。
Z
zengyawen 已提交
10

Z
zengyawen 已提交
11 12

## 导入模块
Z
zengyawen 已提交
13

H
HelloCrease 已提交
14
```js
S
sunyaozu 已提交
15
import I18n from '@ohos.i18n';
Z
zengyawen 已提交
16 17
```

Z
zengyawen 已提交
18

S
sunyaozu 已提交
19
## System<sup>9+</sup>
Z
zengyawen 已提交
20

S
sunyaozu 已提交
21
### getDisplayCountry<sup>9+</sup>
Z
zengyawen 已提交
22

S
sunyaozu 已提交
23 24 25
static getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string

获取指定国家的本地化显示文本。
Z
zengyawen 已提交
26

S
sunyaozu 已提交
27 28
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
29
**参数:** 
S
sunyaozu 已提交
30

H
HelloCrease 已提交
31 32
| 参数名          | 类型      | 必填   | 说明               |
| ------------ | ------- | ---- | ---------------- |
S
sunyaozu 已提交
33 34
| country      | string  | 是    | 指定国家。            |
| locale       | string  | 是    | 显示指定国家的区域ID。     |
H
HelloCrease 已提交
35
| sentenceCase | boolean | 否    | 本地化显示文本是否要首字母大写。 |
Z
zengyawen 已提交
36

H
HelloCrease 已提交
37
**返回值:** 
S
sunyaozu 已提交
38

H
HelloCrease 已提交
39 40
| 类型     | 说明            |
| ------ | ------------- |
S
sunyaozu 已提交
41 42 43 44 45 46
| string | 指定国家的本地化显示文本。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
47 48 49
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
Z
zengyawen 已提交
50

H
HelloCrease 已提交
51
**示例:** 
H
HelloCrease 已提交
52
  ```js
S
sunyaozu 已提交
53
  try {
S
sunyaozu 已提交
54
    let displayCountry = I18n.System.getDisplayCountry("zh-CN", "en-GB"); // displayCountry = "China"
S
sunyaozu 已提交
55 56 57
  } catch(error) {
    console.error(`call System.getDisplayCountry failed, error code: ${error.code}, message: ${error.message}.`)
  }
Z
zengyawen 已提交
58
  ```
Z
zengyawen 已提交
59

S
sunyaozu 已提交
60
### getDisplayLanguage<sup>9+</sup>
Z
zengyawen 已提交
61

S
sunyaozu 已提交
62
static getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string
Z
zengyawen 已提交
63

S
sunyaozu 已提交
64
获取指定语言的本地化显示文本。
Z
zengyawen 已提交
65

S
sunyaozu 已提交
66 67
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
68
**参数:** 
S
sunyaozu 已提交
69

H
HelloCrease 已提交
70 71
| 参数名          | 类型      | 必填   | 说明               |
| ------------ | ------- | ---- | ---------------- |
S
sunyaozu 已提交
72 73
| language     | string  | 是    | 指定语言。            |
| locale       | string  | 是    | 显示指定语言的区域ID。     |
H
HelloCrease 已提交
74
| sentenceCase | boolean | 否    | 本地化显示文本是否要首字母大写。 |
Z
zengyawen 已提交
75

H
HelloCrease 已提交
76
**返回值:** 
S
sunyaozu 已提交
77

H
HelloCrease 已提交
78 79
| 类型     | 说明            |
| ------ | ------------- |
S
sunyaozu 已提交
80 81 82 83 84 85
| string | 指定语言的本地化显示文本。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
86 87 88
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
Z
zengyawen 已提交
89

H
HelloCrease 已提交
90
**示例:** 
H
HelloCrease 已提交
91
  ```js
S
sunyaozu 已提交
92
  try {
S
sunyaozu 已提交
93
    let displayLanguage = I18n.System.getDisplayLanguage("zh", "en-GB"); // displayLanguage = Chinese
S
sunyaozu 已提交
94 95 96
  } catch(error) {
    console.error(`call System.getDisplayLanguage failed, error code: ${error.code}, message: ${error.message}.`)
  }
Z
zengyawen 已提交
97
  ```
Z
zengyawen 已提交
98

S
sunyaozu 已提交
99
### getSystemLanguages<sup>9+</sup>
Z
zengyawen 已提交
100

S
sunyaozu 已提交
101
static getSystemLanguages(): Array&lt;string&gt;
Z
zengyawen 已提交
102

S
sunyaozu 已提交
103
获取系统支持的语言列表。
Z
zengyawen 已提交
104

S
sunyaozu 已提交
105 106
**系统能力**:SystemCapability.Global.I18n

S
sunyaozu 已提交
107
**返回值:** 
S
sunyaozu 已提交
108

S
sunyaozu 已提交
109 110 111
| 类型                  | 说明           |
| ------------------- | ------------ |
| Array&lt;string&gt; | 系统支持的语言ID列表。 |
Z
zengyawen 已提交
112

S
sunyaozu 已提交
113
**错误码:**
S
sunyaozu 已提交
114

S
sunyaozu 已提交
115 116
以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
117 118 119
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
Z
zengyawen 已提交
120

H
HelloCrease 已提交
121
**示例:** 
H
HelloCrease 已提交
122
  ```js
S
sunyaozu 已提交
123
  try {
S
sunyaozu 已提交
124
    let systemLanguages = I18n.System.getSystemLanguages(); // [ "en-Latn-US", "zh-Hans" ]
S
sunyaozu 已提交
125 126 127
  } catch(error) {
    console.error(`call System.getSystemLanguages failed, error code: ${error.code}, message: ${error.message}.`)
  }
Z
zengyawen 已提交
128 129
  ```

S
sunyaozu 已提交
130
### getSystemCountries<sup>9+</sup>
Z
zengyawen 已提交
131

S
sunyaozu 已提交
132
static getSystemCountries(language: string): Array&lt;string&gt;
Z
zengyawen 已提交
133

S
sunyaozu 已提交
134
获取针对输入语言系统支持的国家或地区列表。
Z
zengyawen 已提交
135

S
sunyaozu 已提交
136 137
**系统能力**:SystemCapability.Global.I18n

S
sunyaozu 已提交
138 139
**参数:** 

H
HelloCrease 已提交
140 141 142
| 参数名      | 类型     | 必填   | 说明    |
| -------- | ------ | ---- | ----- |
| language | string | 是    | 语言ID。 |
S
sunyaozu 已提交
143

H
HelloCrease 已提交
144
**返回值:** 
S
sunyaozu 已提交
145

S
sunyaozu 已提交
146 147 148
| 类型                  | 说明           |
| ------------------- | ------------ |
| Array&lt;string&gt; | 系统支持的区域ID列表。 |
Z
zengyawen 已提交
149

S
sunyaozu 已提交
150
**错误码:**
Z
zengyawen 已提交
151

S
sunyaozu 已提交
152
以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)
Z
zengyawen 已提交
153

H
HelloCrease 已提交
154 155 156
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
157

S
sunyaozu 已提交
158 159 160
**示例:** 
  ```js
  try {
S
sunyaozu 已提交
161
    let systemCountries = I18n.System.getSystemCountries('zh'); // systemCountries = [ "ZW", "YT", "YE", ..., "ER", "CN", "DE" ],共计240个国家或地区
S
sunyaozu 已提交
162 163 164 165
  } catch(error) {
    console.error(`call System.getSystemCountries failed, error code: ${error.code}, message: ${error.message}.`)
  }
  ```
S
sunyaozu 已提交
166

S
sunyaozu 已提交
167
### isSuggested<sup>9+</sup>
S
sunyaozu 已提交
168

S
sunyaozu 已提交
169
static isSuggested(language: string, region?: string): boolean
S
sunyaozu 已提交
170

S
sunyaozu 已提交
171
判断当前语言和地区是否匹配。
S
sunyaozu 已提交
172

S
sunyaozu 已提交
173 174
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
175
**参数:** 
S
sunyaozu 已提交
176

S
sunyaozu 已提交
177 178 179 180
| 参数名      | 类型     | 必填   | 说明            |
| -------- | ------ | ---- | ------------- |
| language | string | 是    | 合法的语言ID,例如zh。 |
| region   | string | 否    | 合法的地区ID,例如CN  |
S
sunyaozu 已提交
181

H
HelloCrease 已提交
182
**返回值:** 
S
sunyaozu 已提交
183

S
sunyaozu 已提交
184 185 186 187 188 189 190 191
| 类型      | 说明                                       |
| ------- | ---------------------------------------- |
| boolean | 返回true,表示当前语言和地区匹配;返回false,表示当前语言和地区不匹配。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
192 193 194
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
195

H
HelloCrease 已提交
196
**示例:** 
H
HelloCrease 已提交
197
  ```js
S
sunyaozu 已提交
198
  try {
S
sunyaozu 已提交
199
    let res = I18n.System.isSuggested('zh', 'CN');  // res = true
S
sunyaozu 已提交
200 201 202
  } catch(error) {
    console.error(`call System.isSuggested failed, error code: ${error.code}, message: ${error.message}.`)
  }
S
sunyaozu 已提交
203 204
  ```

S
sunyaozu 已提交
205
### getSystemLanguage<sup>9+</sup>
S
sunyaozu 已提交
206

S
sunyaozu 已提交
207
static getSystemLanguage(): string
S
sunyaozu 已提交
208

S
sunyaozu 已提交
209
获取系统语言。
S
sunyaozu 已提交
210

H
HelloCrease 已提交
211
**系统能力**:SystemCapability.Global.I18n
S
sunyaozu 已提交
212

H
HelloCrease 已提交
213
**返回值:** 
S
sunyaozu 已提交
214

S
sunyaozu 已提交
215 216 217 218 219 220 221 222
| 类型     | 说明      |
| ------ | ------- |
| string | 系统语言ID。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
223 224 225
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
226

H
HelloCrease 已提交
227
**示例:** 
H
HelloCrease 已提交
228
  ```js
S
sunyaozu 已提交
229
  try {
S
sunyaozu 已提交
230
    let systemLanguage = I18n.System.getSystemLanguage();  // systemLanguage为当前系统语言
S
sunyaozu 已提交
231 232 233
  } catch(error) {
    console.error(`call System.getSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`)
  }
S
sunyaozu 已提交
234 235
  ```

S
sunyaozu 已提交
236
### setSystemLanguage<sup>9+</sup>
S
sunyaozu 已提交
237

S
sunyaozu 已提交
238
static setSystemLanguage(language: string): void
S
sunyaozu 已提交
239

S
sunyaozu 已提交
240
设置系统语言。当前调用该接口不支持系统界面语言的实时刷新。
S
sunyaozu 已提交
241

H
HelloCrease 已提交
242
此接口为系统接口。
S
sunyaozu 已提交
243

S
sunyaozu 已提交
244 245
**需要权限**:ohos.permission.UPDATE_CONFIGURATION

H
HelloCrease 已提交
246
**系统能力**:SystemCapability.Global.I18n
S
sunyaozu 已提交
247

H
HelloCrease 已提交
248
**参数:** 
S
sunyaozu 已提交
249

H
HelloCrease 已提交
250 251 252
| 参数名      | 类型     | 必填   | 说明    |
| -------- | ------ | ---- | ----- |
| language | string | 是    | 语言ID。 |
S
sunyaozu 已提交
253

S
sunyaozu 已提交
254
**错误码:**
S
sunyaozu 已提交
255

S
sunyaozu 已提交
256 257
以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
258 259 260
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
261

H
HelloCrease 已提交
262
**示例:** 
H
HelloCrease 已提交
263
  ```js
S
sunyaozu 已提交
264
  try {
S
sunyaozu 已提交
265
    I18n.System.setSystemLanguage('zh'); // 设置系统当前语言为 "zh"
S
sunyaozu 已提交
266 267 268
  } catch(error) {
    console.error(`call System.setSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`)
  }
S
sunyaozu 已提交
269 270
  ```

S
sunyaozu 已提交
271
### getSystemRegion<sup>9+</sup>
S
sunyaozu 已提交
272

S
sunyaozu 已提交
273
static getSystemRegion(): string
Z
zengyawen 已提交
274

Z
zengyawen 已提交
275
获取系统地区。
Z
zengyawen 已提交
276

S
sunyaozu 已提交
277 278
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
279
**返回值:** 
S
sunyaozu 已提交
280

H
HelloCrease 已提交
281 282 283
| 类型     | 说明      |
| ------ | ------- |
| string | 系统地区ID。 |
Z
zengyawen 已提交
284

S
sunyaozu 已提交
285 286 287 288
**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
289 290 291
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
292

H
HelloCrease 已提交
293
**示例:** 
H
HelloCrease 已提交
294
  ```js
S
sunyaozu 已提交
295
  try {
S
sunyaozu 已提交
296
    let systemRegion = I18n.System.getSystemRegion(); // 获取系统当前地区设置
S
sunyaozu 已提交
297 298 299
  } catch(error) {
    console.error(`call System.getSystemRegion failed, error code: ${error.code}, message: ${error.message}.`)
  }
Z
zengyawen 已提交
300
  ```
Z
zengyawen 已提交
301

S
sunyaozu 已提交
302
### setSystemRegion<sup>9+</sup>
Z
zengyawen 已提交
303

S
sunyaozu 已提交
304
static setSystemRegion(region: string): void
S
sunyaozu 已提交
305

S
sunyaozu 已提交
306 307
设置系统区域。

H
HelloCrease 已提交
308
此接口为系统接口。
S
sunyaozu 已提交
309

S
sunyaozu 已提交
310 311
**需要权限**:ohos.permission.UPDATE_CONFIGURATION

S
sunyaozu 已提交
312 313
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
314
**参数:** 
S
sunyaozu 已提交
315

H
HelloCrease 已提交
316 317 318
| 参数名    | 类型     | 必填   | 说明    |
| ------ | ------ | ---- | ----- |
| region | string | 是    | 地区ID。 |
S
sunyaozu 已提交
319

S
sunyaozu 已提交
320
**错误码:**
S
sunyaozu 已提交
321

S
sunyaozu 已提交
322 323
以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
324 325 326
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
327

H
HelloCrease 已提交
328
**示例:** 
H
HelloCrease 已提交
329
  ```js
S
sunyaozu 已提交
330
  try {
S
sunyaozu 已提交
331
    I18n.System.setSystemRegion('CN');  // 设置系统当前地区为 "CN"
S
sunyaozu 已提交
332 333 334
  } catch(error) {
    console.error(`call System.setSystemRegion failed, error code: ${error.code}, message: ${error.message}.`)
  }
S
sunyaozu 已提交
335 336
  ```

S
sunyaozu 已提交
337
### getSystemLocale<sup>9+</sup>
S
sunyaozu 已提交
338

S
sunyaozu 已提交
339
static getSystemLocale(): string
Z
zengyawen 已提交
340 341

获取系统区域。
Z
zengyawen 已提交
342

S
sunyaozu 已提交
343 344
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
345
**返回值:** 
S
sunyaozu 已提交
346

H
HelloCrease 已提交
347 348 349
| 类型     | 说明      |
| ------ | ------- |
| string | 系统区域ID。 |
Z
zengyawen 已提交
350

S
sunyaozu 已提交
351 352 353 354
**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
355 356 357
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
358

H
HelloCrease 已提交
359
**示例:** 
H
HelloCrease 已提交
360
  ```js
S
sunyaozu 已提交
361
  try {
S
sunyaozu 已提交
362
    let systemLocale = I18n.System.getSystemLocale();  // 获取系统当前Locale
S
sunyaozu 已提交
363 364 365
  } catch(error) {
    console.error(`call System.getSystemLocale failed, error code: ${error.code}, message: ${error.message}.`)
  }
Z
zengyawen 已提交
366
  ```
Z
zengyawen 已提交
367

S
sunyaozu 已提交
368
### setSystemLocale<sup>9+</sup>
Z
zengyawen 已提交
369

S
sunyaozu 已提交
370
static setSystemLocale(locale: string): void
S
sunyaozu 已提交
371

S
sunyaozu 已提交
372 373
设置系统Locale。

H
HelloCrease 已提交
374
此接口为系统接口。 
S
sunyaozu 已提交
375

S
sunyaozu 已提交
376 377
**需要权限**:ohos.permission.UPDATE_CONFIGURATION

S
sunyaozu 已提交
378 379
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
380
**参数:** 
S
sunyaozu 已提交
381

H
HelloCrease 已提交
382 383 384
| 参数名    | 类型     | 必填   | 说明              |
| ------ | ------ | ---- | --------------- |
| locale | string | 是    | 指定区域ID,例如zh-CN。 |
S
sunyaozu 已提交
385

S
sunyaozu 已提交
386
**错误码:**
S
sunyaozu 已提交
387

S
sunyaozu 已提交
388 389
以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
390 391 392
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
393

H
HelloCrease 已提交
394
**示例:** 
H
HelloCrease 已提交
395
  ```js
S
sunyaozu 已提交
396
  try {
S
sunyaozu 已提交
397
    I18n.System.setSystemLocale('zh-CN');  // 设置系统当前Locale为 "zh-CN"
S
sunyaozu 已提交
398 399 400
  } catch(error) {
    console.error(`call System.setSystemLocale failed, error code: ${error.code}, message: ${error.message}.`)
  }
S
sunyaozu 已提交
401 402
  ```

S
sunyaozu 已提交
403
### is24HourClock<sup>9+</sup>
S
sunyaozu 已提交
404

S
sunyaozu 已提交
405
static is24HourClock(): boolean
S
sunyaozu 已提交
406

S
sunyaozu 已提交
407
判断系统时间是否为24小时制。
S
sunyaozu 已提交
408

H
HelloCrease 已提交
409
**系统能力**:SystemCapability.Global.I18n
S
sunyaozu 已提交
410

H
HelloCrease 已提交
411
**返回值:** 
S
sunyaozu 已提交
412

H
HelloCrease 已提交
413 414
| 类型      | 说明                                       |
| ------- | ---------------------------------------- |
S
sunyaozu 已提交
415 416 417 418 419 420
| boolean | 返回true,表示系统24小时开关开启;返回false,表示系统24小时开关关闭。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
421 422 423
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
424

H
HelloCrease 已提交
425
**示例:** 
H
HelloCrease 已提交
426
  ```js
S
sunyaozu 已提交
427
  try {
S
sunyaozu 已提交
428
    let is24HourClock = I18n.System.is24HourClock();  // 系统24小时开关是否开启
S
sunyaozu 已提交
429 430 431
  } catch(error) {
    console.error(`call System.is24HourClock failed, error code: ${error.code}, message: ${error.message}.`)
  }
S
sunyaozu 已提交
432 433
  ```

S
sunyaozu 已提交
434
### set24HourClock<sup>9+</sup>
S
sunyaozu 已提交
435

S
sunyaozu 已提交
436
static set24HourClock(option: boolean): void
Z
zengyawen 已提交
437

S
sunyaozu 已提交
438
修改系统时间的24小时制设置。
Z
zengyawen 已提交
439

S
sunyaozu 已提交
440 441 442
此接口为系统接口。

**需要权限**:ohos.permission.UPDATE_CONFIGURATION
Z
zengyawen 已提交
443

S
sunyaozu 已提交
444 445
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
446
**参数:** 
S
sunyaozu 已提交
447

S
sunyaozu 已提交
448 449 450
| 参数名    | 类型      | 必填   | 说明                                       |
| ------ | ------- | ---- | ---------------------------------------- |
| option | boolean | 是    | option为true,表示开启系统24小时制开关;返回false,表示关闭系统24小时开关。 |
Z
zengyawen 已提交
451

S
sunyaozu 已提交
452
**错误码:**
S
sunyaozu 已提交
453

S
sunyaozu 已提交
454 455
以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
456 457 458
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
Z
zengyawen 已提交
459

H
HelloCrease 已提交
460
**示例:** 
H
HelloCrease 已提交
461
  ```js
S
sunyaozu 已提交
462 463
  // 将系统时间设置为24小时制
  try {
S
sunyaozu 已提交
464
    I18n.System.set24HourClock(true);
S
sunyaozu 已提交
465 466 467
  } catch(error) {
    console.error(`call System.set24HourClock failed, error code: ${error.code}, message: ${error.message}.`)
  }
Z
zengyawen 已提交
468 469
  ```

S
sunyaozu 已提交
470
### addPreferredLanguage<sup>9+</sup>
Z
zengyawen 已提交
471

S
sunyaozu 已提交
472
static addPreferredLanguage(language: string, index?: number): void
Z
zengyawen 已提交
473

S
sunyaozu 已提交
474
在系统偏好语言列表中的指定位置添加偏好语言。
Z
zengyawen 已提交
475

S
sunyaozu 已提交
476
此接口为系统接口。
Z
zengyawen 已提交
477

S
sunyaozu 已提交
478
**需要权限**:ohos.permission.UPDATE_CONFIGURATION
Z
zengyawen 已提交
479

S
sunyaozu 已提交
480 481
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
482
**参数:** 
S
sunyaozu 已提交
483

S
sunyaozu 已提交
484 485 486 487 488 489 490 491 492
| 参数名      | 类型     | 必填   | 说明         |
| -------- | ------ | ---- | ---------- |
| language | string | 是    | 待添加的偏好语言。  |
| index    | number | 否    | 偏好语言的添加位置。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
493 494 495
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
Z
zengyawen 已提交
496

H
HelloCrease 已提交
497
**示例:** 
H
HelloCrease 已提交
498
  ```js
S
sunyaozu 已提交
499
  // 将语言zh-CN添加到系统偏好语言列表中
S
sunyaozu 已提交
500 501
  let language = 'zh-CN';
  let index = 0;
S
sunyaozu 已提交
502
  try {
S
sunyaozu 已提交
503
    I18n.System.addPreferredLanguage(language, index); // 将zh-CN添加到系统偏好语言列表的第1位
S
sunyaozu 已提交
504 505 506
  } catch(error) {
    console.error(`call System.addPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`)
  }
Z
zengyawen 已提交
507 508
  ```

S
sunyaozu 已提交
509
### removePreferredLanguage<sup>9+</sup>
Z
zengyawen 已提交
510

S
sunyaozu 已提交
511
static removePreferredLanguage(index: number): void
Z
zengyawen 已提交
512

S
sunyaozu 已提交
513
删除系统偏好语言列表中指定位置的偏好语言。
Z
zengyawen 已提交
514

S
sunyaozu 已提交
515 516 517
此接口为系统接口。

**需要权限**:ohos.permission.UPDATE_CONFIGURATION
Z
zengyawen 已提交
518

S
sunyaozu 已提交
519 520
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
521
**参数:** 
S
sunyaozu 已提交
522

S
sunyaozu 已提交
523 524 525 526 527 528 529 530
| 参数名   | 类型     | 必填   | 说明                    |
| ----- | ------ | ---- | --------------------- |
| index | number | 是    | 待删除偏好语言在系统偏好语言列表中的位置。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
531 532 533
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
Z
zengyawen 已提交
534

H
HelloCrease 已提交
535
**示例:** 
H
HelloCrease 已提交
536
  ```js
S
sunyaozu 已提交
537
  // 删除系统偏好语言列表中的第一个偏好语言
S
sunyaozu 已提交
538
  let index = 0;
S
sunyaozu 已提交
539
  try {
S
sunyaozu 已提交
540
    I18n.System.removePreferredLanguage(index);
S
sunyaozu 已提交
541 542 543
  } catch(error) {
    console.error(`call System.removePreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`)
  }
Z
zengyawen 已提交
544 545
  ```

S
sunyaozu 已提交
546
### getPreferredLanguageList<sup>9+</sup>
Z
zengyawen 已提交
547

S
sunyaozu 已提交
548
static getPreferredLanguageList(): Array&lt;string&gt;
Z
zengyawen 已提交
549

S
sunyaozu 已提交
550
获取系统偏好语言列表。
Z
zengyawen 已提交
551

S
sunyaozu 已提交
552 553
**系统能力**:SystemCapability.Global.I18n

S
sunyaozu 已提交
554
**返回值:** 
S
sunyaozu 已提交
555

S
sunyaozu 已提交
556 557 558 559 560 561 562 563
| 类型                  | 说明        |
| ------------------- | --------- |
| Array&lt;string&gt; | 系统偏好语言列表。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
564 565 566
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
Z
zengyawen 已提交
567

H
HelloCrease 已提交
568
**示例:** 
H
HelloCrease 已提交
569
  ```js
S
sunyaozu 已提交
570
  try {
S
sunyaozu 已提交
571
    let preferredLanguageList = I18n.System.getPreferredLanguageList(); // 获取系统当前偏好语言列表
S
sunyaozu 已提交
572 573 574
  } catch(error) {
    console.error(`call System.getPreferredLanguageList failed, error code: ${error.code}, message: ${error.message}.`)
  }
Z
zengyawen 已提交
575 576
  ```

S
sunyaozu 已提交
577
### getFirstPreferredLanguage<sup>9+</sup>
Z
zengyawen 已提交
578

S
sunyaozu 已提交
579
static getFirstPreferredLanguage(): string
Z
zengyawen 已提交
580

S
sunyaozu 已提交
581
获取偏好语言列表中的第一个偏好语言。
Z
zengyawen 已提交
582

S
sunyaozu 已提交
583 584
**系统能力**:SystemCapability.Global.I18n

S
sunyaozu 已提交
585
**返回值:** 
S
sunyaozu 已提交
586

S
sunyaozu 已提交
587 588 589 590 591 592 593 594
| 类型     | 说明             |
| ------ | -------------- |
| string | 偏好语言列表中的第一个语言。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
595 596 597
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
598 599 600 601

**示例:** 
  ```js
  try {
S
sunyaozu 已提交
602
    let firstPreferredLanguage = I18n.System.getFirstPreferredLanguage();  // 获取系统当前偏好语言列表中的第一个偏好语言
S
sunyaozu 已提交
603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625
  } catch(error) {
    console.error(`call System.getFirstPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`)
  }
  ```

### getAppPreferredLanguage<sup>9+</sup>

static getAppPreferredLanguage(): string

获取应用的偏好语言。

**系统能力**:SystemCapability.Global.I18n

**返回值:** 

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

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
626 627 628
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
629 630 631 632

**示例:** 
  ```js
  try {
S
sunyaozu 已提交
633
    let appPreferredLanguage = I18n.System.getAppPreferredLanguage(); // 获取应用偏好语言
S
sunyaozu 已提交
634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660
  } catch(error) {
    console.error(`call System.getAppPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`)
  }
  ```

### setUsingLocalDigit<sup>9+</sup>

static setUsingLocalDigit(flag: boolean): void

设置是否打开本地数字开关。

此接口为系统接口。

**需要权限**:ohos.permission.UPDATE_CONFIGURATION

**系统能力**:SystemCapability.Global.I18n

**参数:** 

| 参数名  | 类型      | 必填   | 说明                              |
| ---- | ------- | ---- | ------------------------------- |
| flag | boolean | 是    | true表示打开本地数字开关,false表示关闭本地数字开关。 |

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
661 662 663
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
664 665 666 667

**示例:** 
  ```ts
  try {
S
sunyaozu 已提交
668
    I18n.System.setUsingLocalDigit(true); // 打开本地化数字开关
S
sunyaozu 已提交
669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691
  } catch(error) {
    console.error(`call System.setUsingLocalDigit failed, error code: ${error.code}, message: ${error.message}.`)
  }
  ```

### getUsingLocalDigit<sup>9+</sup>

static getUsingLocalDigit(): boolean

获取系统当前是否打开本地数字开关。

**系统能力**:SystemCapability.Global.I18n

**返回值:** 

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

**错误码:**

以下错误码的详细介绍请参见[ohos.i18n错误码](../errorcodes/errorcode-i18n.md)

H
HelloCrease 已提交
692 693 694
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
| 890001 | Unspported para value. |
S
sunyaozu 已提交
695 696 697 698

**示例:** 
  ```ts
  try {
S
sunyaozu 已提交
699
    let status = I18n.System.getUsingLocalDigit();  // 判断本地化数字开关是否打开
S
sunyaozu 已提交
700 701 702 703 704 705
  } catch(error) {
    console.error(`call System.getUsingLocalDigit failed, error code: ${error.code}, message: ${error.message}.`)
  }
  ```


S
sunyaozu 已提交
706
## I18n.isRTL<sup>7+</sup>
S
sunyaozu 已提交
707 708 709 710 711 712 713 714 715

isRTL(locale: string): boolean

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

H
HelloCrease 已提交
716 717 718
| 参数名    | 类型     | 必填   | 说明      |
| ------ | ------ | ---- | ------- |
| locale | string | 是    | 指定区域ID。 |
S
sunyaozu 已提交
719 720 721 722 723 724 725 726 727

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
728 729
  I18n.isRTL("zh-CN");// 中文不是RTL语言,返回false
  I18n.isRTL("ar-EG");// 阿语是RTL语言,返回true
S
sunyaozu 已提交
730 731 732
  ```


S
sunyaozu 已提交
733
## I18n.getCalendar<sup>8+</sup>
S
sunyaozu 已提交
734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755

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

获取日历对象。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

| 参数名    | 类型     | 必填   | 说明                                       |
| ------ | ------ | ---- | ---------------------------------------- |
| locale | string | 是    | 合法的locale值,例如zh-Hans-CN。                 |
| type   | string | 否    | 合法的日历类型,目前合法的类型有buddhist,&nbsp;chinese,&nbsp;coptic,&nbsp;ethiopic,&nbsp;hebrew,&nbsp;gregory,&nbsp;indian,&nbsp;islamic_civil,&nbsp;islamic_tbla,&nbsp;islamic_umalqura,&nbsp;japanese,&nbsp;persian。当type没有给出时,采用区域默认的日历类型。 |

**返回值:** 

| 类型                     | 说明    |
| ---------------------- | ----- |
| [Calendar](#calendar8) | 日历对象。 |

**示例:** 
  ```js
S
sunyaozu 已提交
756
  I18n.getCalendar("zh-Hans", "chinese"); // 获取中国农历日历对象
S
sunyaozu 已提交
757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778
  ```


## Calendar<sup>8+</sup>


### setTime<sup>8+</sup>

setTime(date: Date): void

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
779 780
  let calendar = I18n.getCalendar("en-US", "gregory");
  let date = new Date(2021, 10, 7, 8, 0, 0, 0);
S
sunyaozu 已提交
781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800
  calendar.setTime(date);
  ```


### setTime<sup>8+</sup>

setTime(time: number): void

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

| 参数名  | 类型     | 必填   | 说明                                       |
| ---- | ------ | ---- | ---------------------------------------- |
| time | number | 是    | time为从1970.1.1&nbsp;00:00:00&nbsp;GMT逝去的毫秒数。 |

**示例:** 
  ```js
S
sunyaozu 已提交
801
  let calendar = I18n.getCalendar("en-US", "gregory");
S
sunyaozu 已提交
802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826
  calendar.setTime(10540800000);
  ```


### set<sup>8+</sup>

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 | 否    | 设置的秒。  |

**示例:** 
  ```js
S
sunyaozu 已提交
827
  let calendar = I18n.getCalendar("zh-Hans");
S
sunyaozu 已提交
828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844
  calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.10.1 08:00:00
  ```


### setTimeZone<sup>8+</sup>

setTimeZone(timezone: string): void

设置日历对象的时区。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

| 参数名      | 类型     | 必填   | 说明                        |
| -------- | ------ | ---- | ------------------------- |
| timezone | string | 是    | 设置的时区id,如“Asia/Shanghai”。 |
Z
zengyawen 已提交
845

H
HelloCrease 已提交
846
**示例:** 
H
HelloCrease 已提交
847
  ```js
S
sunyaozu 已提交
848
  let calendar = I18n.getCalendar("zh-Hans");
Z
zengyawen 已提交
849 850 851 852 853 854 855 856 857 858
  calendar.setTimeZone("Asia/Shanghai");
  ```


### getTimeZone<sup>8+</sup>

getTimeZone(): string

获取日历对象的时区。

S
sunyaozu 已提交
859 860
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
861
**返回值:** 
S
sunyaozu 已提交
862

H
HelloCrease 已提交
863 864 865
| 类型     | 说明         |
| ------ | ---------- |
| string | 日历对象的时区id。 |
Z
zengyawen 已提交
866

H
HelloCrease 已提交
867
**示例:** 
H
HelloCrease 已提交
868
  ```js
S
sunyaozu 已提交
869
  let calendar = I18n.getCalendar("zh-Hans");
Z
zengyawen 已提交
870
  calendar.setTimeZone("Asia/Shanghai");
S
sunyaozu 已提交
871
  let timezone = calendar.getTimeZone(); // timezone = "Asia/Shanghai"
Z
zengyawen 已提交
872 873 874 875 876 877 878 879 880
  ```


### getFirstDayOfWeek<sup>8+</sup>

getFirstDayOfWeek(): number

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

S
sunyaozu 已提交
881 882
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
883
**返回值:** 
S
sunyaozu 已提交
884

H
HelloCrease 已提交
885 886 887
| 类型     | 说明                    |
| ------ | --------------------- |
| number | 获取一周的起始日,1代表周日,7代表周六。 |
Z
zengyawen 已提交
888

H
HelloCrease 已提交
889
**示例:** 
H
HelloCrease 已提交
890
  ```js
S
sunyaozu 已提交
891 892
  let calendar = I18n.getCalendar("en-US", "gregory");
  let firstDayOfWeek = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 1
Z
zengyawen 已提交
893 894 895 896 897 898 899 900 901
  ```


### setFirstDayOfWeek<sup>8+</sup>

setFirstDayOfWeek(value: number): void

设置每一周的起始日。

S
sunyaozu 已提交
902 903
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
904
**参数:** 
S
sunyaozu 已提交
905

H
HelloCrease 已提交
906 907
| 参数名   | 类型     | 必填   | 说明                    |
| ----- | ------ | ---- | --------------------- |
H
HelloCrease 已提交
908
| value | number | 是    | 设置一周的起始日,1代表周日,7代表周六。 |
Z
zengyawen 已提交
909

H
HelloCrease 已提交
910
**示例:** 
H
HelloCrease 已提交
911
  ```js
S
sunyaozu 已提交
912
  let calendar = I18n.getCalendar("zh-Hans");
S
sunyaozu 已提交
913
  calendar.setFirstDayOfWeek(3);
S
sunyaozu 已提交
914
  let firstDayOfWeek = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 3
Z
zengyawen 已提交
915 916 917 918 919 920 921 922 923
  ```


### getMinimalDaysInFirstWeek<sup>8+</sup>

getMinimalDaysInFirstWeek(): number

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

S
sunyaozu 已提交
924 925
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
926
**返回值:** 
S
sunyaozu 已提交
927

H
HelloCrease 已提交
928 929 930
| 类型     | 说明           |
| ------ | ------------ |
| number | 一年中第一周的最小天数。 |
Z
zengyawen 已提交
931

H
HelloCrease 已提交
932
**示例:** 
H
HelloCrease 已提交
933
  ```js
S
sunyaozu 已提交
934 935
  let calendar = I18n.getCalendar("zh-Hans");
  let minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 1
Z
zengyawen 已提交
936 937 938 939 940 941 942 943 944
  ```


### setMinimalDaysInFirstWeek<sup>8+</sup>

setMinimalDaysInFirstWeek(value: number): void

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

S
sunyaozu 已提交
945 946
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
947
**参数:** 
S
sunyaozu 已提交
948

H
HelloCrease 已提交
949 950
| 参数名   | 类型     | 必填   | 说明           |
| ----- | ------ | ---- | ------------ |
H
HelloCrease 已提交
951
| value | number | 是    | 一年中第一周的最小天数。 |
Z
zengyawen 已提交
952

H
HelloCrease 已提交
953
**示例:** 
H
HelloCrease 已提交
954
  ```js
S
sunyaozu 已提交
955
  let calendar = I18n.getCalendar("zh-Hans");
Z
zengyawen 已提交
956
  calendar.setMinimalDaysInFirstWeek(3);
S
sunyaozu 已提交
957
  let minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 3
Z
zengyawen 已提交
958 959 960 961 962 963 964 965 966
  ```


### get<sup>8+</sup>

get(field: string): number

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

S
sunyaozu 已提交
967 968
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
969
**参数:** 
S
sunyaozu 已提交
970

H
HelloCrease 已提交
971 972 973
| 参数名   | 类型     | 必填   | 说明                                       |
| ----- | ------ | ---- | ---------------------------------------- |
| field | string | 是    | 通过field来获取日历对象相应的值。目前支持的field值有&nbsp;era,&nbsp;year,&nbsp;month,&nbsp;week_of_year,&nbsp;week_of_month,&nbsp;date,&nbsp;day_of_year,&nbsp;day_of_week,&nbsp;day_of_week_in_month,&nbsp;hour,&nbsp;hour_of_day,&nbsp;minute,&nbsp;second,&nbsp;millisecond,&nbsp;zone_offset,&nbsp;dst_offset,&nbsp;year_woy,&nbsp;dow_local,&nbsp;extended_year,&nbsp;julian_day,&nbsp;milliseconds_in_day,&nbsp;is_leap_month。 |
Z
zengyawen 已提交
974

H
HelloCrease 已提交
975
**返回值:** 
S
sunyaozu 已提交
976

H
HelloCrease 已提交
977 978 979
| 类型     | 说明                                       |
| ------ | ---------------------------------------- |
| number | 与field相关联的值,如当前Calendar对象的内部日期的年份为1990,get("year")返回1990。 |
Z
zengyawen 已提交
980

H
HelloCrease 已提交
981
**示例:** 
H
HelloCrease 已提交
982
  ```js
S
sunyaozu 已提交
983
  let calendar = I18n.getCalendar("zh-Hans");
S
sunyaozu 已提交
984
  calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.10.1 08:00:00
S
sunyaozu 已提交
985
  let hourOfDay = calendar.get("hour_of_day"); // hourOfDay = 8
Z
zengyawen 已提交
986 987 988 989 990 991 992 993 994
  ```


### getDisplayName<sup>8+</sup>

getDisplayName(locale: string): string

获取日历对象在locale所指定的区域的名字。

S
sunyaozu 已提交
995 996
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
997
**参数:** 
S
sunyaozu 已提交
998

H
HelloCrease 已提交
999 1000 1001
| 参数名    | 类型     | 必填   | 说明                                       |
| ------ | ------ | ---- | ---------------------------------------- |
| locale | string | 是    | locale指定获取哪个区域下该calendar的名字,如buddhist在en-US上显示的名称为“Buddhist&nbsp;Calendar”。 |
Z
zengyawen 已提交
1002

H
HelloCrease 已提交
1003
**返回值:** 
S
sunyaozu 已提交
1004

H
HelloCrease 已提交
1005 1006 1007
| 类型     | 说明                  |
| ------ | ------------------- |
| string | 日历在locale所指示的区域的名字。 |
Z
zengyawen 已提交
1008

H
HelloCrease 已提交
1009
**示例:** 
H
HelloCrease 已提交
1010
  ```js
S
sunyaozu 已提交
1011 1012
  let calendar = I18n.getCalendar("en-US", "buddhist");
  let calendarName = calendar.getDisplayName("zh"); // calendarName = "佛历"
Z
zengyawen 已提交
1013 1014 1015 1016 1017 1018 1019 1020 1021
  ```


### isWeekend<sup>8+</sup>

isWeekend(date?: Date): boolean

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

S
sunyaozu 已提交
1022 1023
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1024
**参数:** 
S
sunyaozu 已提交
1025

H
HelloCrease 已提交
1026 1027 1028
| 参数名  | 类型   | 必填   | 说明                                       |
| ---- | ---- | ---- | ---------------------------------------- |
| date | Date | 否    | 判断日期在日历中是否是周末。如果date没有给出,判断calendar当前日期是否为周末。 |
Z
zengyawen 已提交
1029

H
HelloCrease 已提交
1030
**返回值:** 
S
sunyaozu 已提交
1031

H
HelloCrease 已提交
1032 1033 1034
| 类型      | 说明                                  |
| ------- | ----------------------------------- |
| boolean | 当所判断的日期为周末时,返回&nbsp;true,否则返回false。 |
Z
zengyawen 已提交
1035

H
HelloCrease 已提交
1036
**示例:** 
H
HelloCrease 已提交
1037
  ```js
S
sunyaozu 已提交
1038
  let calendar = I18n.getCalendar("zh-Hans");
S
sunyaozu 已提交
1039
  calendar.set(2021, 11, 11, 8, 0, 0); // set time to 2021.11.11 08:00:00
Z
zengyawen 已提交
1040
  calendar.isWeekend(); // false
S
sunyaozu 已提交
1041
  let date = new Date(2011, 11, 6, 9, 0, 0);
Z
zengyawen 已提交
1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054
  calendar.isWeekend(date); // true
  ```


## PhoneNumberFormat<sup>8+</sup>


### constructor<sup>8+</sup>

constructor(country: string, options?: PhoneNumberFormatOptions)

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

S
sunyaozu 已提交
1055 1056
**系统能力**:SystemCapability.Global.I18n

S
sunyaozu 已提交
1057 1058
**参数:** 

H
HelloCrease 已提交
1059 1060 1061
| 参数名     | 类型                                       | 必填   | 说明               |
| ------- | ---------------------------------------- | ---- | ---------------- |
| country | string                                   | 是    | 表示电话号码所属国家或地区代码。 |
S
sunyaozu 已提交
1062
| options | [PhoneNumberFormatOptions](#phonenumberformatoptions9) | 否    | 电话号码格式化对象的相关选项。  |
Z
zengyawen 已提交
1063

H
HelloCrease 已提交
1064
**示例:** 
H
HelloCrease 已提交
1065
  ```js
S
sunyaozu 已提交
1066
  let phoneNumberFormat= new I18n.PhoneNumberFormat("CN", {"type": "E164"});
Z
zengyawen 已提交
1067 1068 1069 1070 1071 1072 1073 1074 1075
  ```


### isValidNumber<sup>8+</sup>

isValidNumber(number: string): boolean

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

S
sunyaozu 已提交
1076 1077
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1078
**参数:** 
S
sunyaozu 已提交
1079

H
HelloCrease 已提交
1080 1081 1082
| 参数名    | 类型     | 必填   | 说明        |
| ------ | ------ | ---- | --------- |
| number | string | 是    | 待判断的电话号码。 |
Z
zengyawen 已提交
1083

H
HelloCrease 已提交
1084
**返回值:** 
S
sunyaozu 已提交
1085

H
HelloCrease 已提交
1086 1087 1088
| 类型      | 说明                                    |
| ------- | ------------------------------------- |
| boolean | 返回true表示电话号码的格式正确,返回false表示电话号码的格式错误。 |
Z
zengyawen 已提交
1089

H
HelloCrease 已提交
1090
**示例:** 
H
HelloCrease 已提交
1091
  ```js
S
sunyaozu 已提交
1092 1093
  let phonenumberfmt = new I18n.PhoneNumberFormat("CN");
  let isValidNumber = phonenumberfmt.isValidNumber("15812312312"); // isValidNumber = true
Z
zengyawen 已提交
1094 1095 1096 1097 1098 1099 1100 1101 1102
  ```


### format<sup>8+</sup>

format(number: string): string

对电话号码进行格式化。

S
sunyaozu 已提交
1103 1104
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1105
**参数:** 
S
sunyaozu 已提交
1106

H
HelloCrease 已提交
1107 1108 1109
| 参数名    | 类型     | 必填   | 说明         |
| ------ | ------ | ---- | ---------- |
| number | string | 是    | 待格式化的电话号码。 |
Z
zengyawen 已提交
1110

H
HelloCrease 已提交
1111
**返回值:** 
S
sunyaozu 已提交
1112

H
HelloCrease 已提交
1113 1114 1115
| 类型     | 说明         |
| ------ | ---------- |
| string | 格式化后的电话号码。 |
Z
zengyawen 已提交
1116

H
HelloCrease 已提交
1117
**示例:** 
H
HelloCrease 已提交
1118
  ```js
S
sunyaozu 已提交
1119 1120
  let phonenumberfmt = new I18n.PhoneNumberFormat("CN");
  let formattedPhoneNumber = phonenumberfmt.format("15812312312"); // formattedPhoneNumber = "158 1231 2312"
Z
zengyawen 已提交
1121 1122 1123
  ```


S
sunyaozu 已提交
1124
### getLocationName<sup>9+</sup>
S
sunyaozu 已提交
1125

S
sunyaozu 已提交
1126
getLocationName(number: string, locale: string): string
S
sunyaozu 已提交
1127 1128 1129 1130 1131 1132

获取电话号码归属地。

**系统能力**:SystemCapability.Global.I18n

**参数:** 
S
sunyaozu 已提交
1133

H
HelloCrease 已提交
1134 1135
| 参数名    | 类型     | 必填   | 说明   |
| ------ | ------ | ---- | ---- |
S
sunyaozu 已提交
1136 1137 1138 1139
| number | string | 是    | 电话号码 |
| locale | string | 是    | 区域ID |

**返回值:** 
S
sunyaozu 已提交
1140

H
HelloCrease 已提交
1141 1142
| 类型     | 说明       |
| ------ | -------- |
S
sunyaozu 已提交
1143 1144 1145
| string | 电话号码归属地。 |

**示例:** 
H
HelloCrease 已提交
1146
  ```js
S
sunyaozu 已提交
1147 1148
  let phonenumberfmt = new I18n.PhoneNumberFormat("CN");
  let locationName = phonenumberfmt.getLocationName("15812312345", "zh-CN"); // locationName = "广东省湛江市"
S
sunyaozu 已提交
1149 1150 1151
  ```


S
sunyaozu 已提交
1152
## PhoneNumberFormatOptions<sup>9+</sup>
Z
zengyawen 已提交
1153 1154 1155

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

H
HelloCrease 已提交
1156
**系统能力**:SystemCapability.Global.I18n
Z
zengyawen 已提交
1157

H
HelloCrease 已提交
1158
| 名称   | 类型     | 可读   | 可写   | 说明                                       |
H
HelloCrease 已提交
1159 1160
| ---- | ------ | ---- | ---- | ---------------------------------------- |
| type | string | 是    | 是    | 表示对电话号码格式化的类型,取值范围:"E164",&nbsp;"INTERNATIONAL",&nbsp;"NATIONAL",&nbsp;"RFC3966"。 |
Z
zengyawen 已提交
1161 1162 1163 1164 1165 1166


## UnitInfo<sup>8+</sup>

度量衡单位信息。

H
HelloCrease 已提交
1167
**系统能力**:SystemCapability.Global.I18n
Z
zengyawen 已提交
1168

H
HelloCrease 已提交
1169
| 名称            | 类型     | 可读   | 可写   | 说明                                       |
H
HelloCrease 已提交
1170 1171 1172
| ------------- | ------ | ---- | ---- | ---------------------------------------- |
| unit          | string | 是    | 是    | 单位的名称,如:"meter",&nbsp;"inch",&nbsp;"cup"等。 |
| measureSystem | string | 是    | 是    | 单位的度量体系,取值包括:"SI",&nbsp;"US",&nbsp;"UK"。 |
Z
zengyawen 已提交
1173 1174


1175
## getInstance<sup>8+</sup>
Z
zengyawen 已提交
1176

S
sunyaozu 已提交
1177
getInstance(locale?:string): IndexUtil
Z
zengyawen 已提交
1178 1179 1180

创建并返回IndexUtil对象。

S
sunyaozu 已提交
1181 1182
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1183
**参数:** 
S
sunyaozu 已提交
1184

H
HelloCrease 已提交
1185 1186 1187
| 参数名    | 类型     | 必填   | 说明                           |
| ------ | ------ | ---- | ---------------------------- |
| locale | string | 否    | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
Z
zengyawen 已提交
1188

H
HelloCrease 已提交
1189
**返回值:** 
S
sunyaozu 已提交
1190

H
HelloCrease 已提交
1191 1192 1193
| 类型                       | 说明                    |
| ------------------------ | --------------------- |
| [IndexUtil](#indexutil8) | locale对应的IndexUtil对象。 |
Z
zengyawen 已提交
1194

H
HelloCrease 已提交
1195
**示例:** 
H
HelloCrease 已提交
1196
  ```js
S
sunyaozu 已提交
1197
  let indexUtil= I18n.getInstance("zh-CN");
Z
zengyawen 已提交
1198 1199 1200
  ```


1201 1202 1203
## IndexUtil<sup>8+</sup>


Z
zengyawen 已提交
1204 1205 1206 1207 1208 1209
### getIndexList<sup>8+</sup>

getIndexList(): Array&lt;string&gt;

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

S
sunyaozu 已提交
1210 1211
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1212
**返回值:** 
S
sunyaozu 已提交
1213

H
HelloCrease 已提交
1214 1215 1216
| 类型                  | 说明                 |
| ------------------- | ------------------ |
| Array&lt;string&gt; | 返回当前locale对应的索引列表。 |
Z
zengyawen 已提交
1217

H
HelloCrease 已提交
1218
**示例:** 
H
HelloCrease 已提交
1219
  ```js
S
sunyaozu 已提交
1220
  let indexUtil = I18n.getInstance("zh-CN");
S
sunyaozu 已提交
1221 1222
  // 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", "..." ]
S
sunyaozu 已提交
1223
  let indexList = indexUtil.getIndexList();
Z
zengyawen 已提交
1224 1225 1226 1227 1228
  ```


### addLocale<sup>8+</sup>

S
sunyaozu 已提交
1229
addLocale(locale: string): void
Z
zengyawen 已提交
1230 1231 1232

将新的locale对应的索引加入当前索引列表。

S
sunyaozu 已提交
1233 1234
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1235
**参数:** 
S
sunyaozu 已提交
1236

H
HelloCrease 已提交
1237 1238 1239
| 参数名    | 类型     | 必填   | 说明                           |
| ------ | ------ | ---- | ---------------------------- |
| locale | string | 是    | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
Z
zengyawen 已提交
1240

H
HelloCrease 已提交
1241
**示例:** 
H
HelloCrease 已提交
1242
  ```js
S
sunyaozu 已提交
1243
  let indexUtil = I18n.getInstance("zh-CN");
Z
zengyawen 已提交
1244 1245 1246 1247 1248 1249 1250 1251 1252 1253
  indexUtil.addLocale("en-US");
  ```


### getIndex<sup>8+</sup>

getIndex(text: string): string

获取text对应的索引。

S
sunyaozu 已提交
1254 1255
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1256
**参数:** 
S
sunyaozu 已提交
1257

H
HelloCrease 已提交
1258 1259 1260
| 参数名  | 类型     | 必填   | 说明           |
| ---- | ------ | ---- | ------------ |
| text | string | 是    | 待计算索引值的输入文本。 |
Z
zengyawen 已提交
1261

H
HelloCrease 已提交
1262
**返回值:** 
S
sunyaozu 已提交
1263

H
HelloCrease 已提交
1264 1265 1266
| 类型     | 说明          |
| ------ | ----------- |
| string | 输入文本对应的索引值。 |
Z
zengyawen 已提交
1267

H
HelloCrease 已提交
1268
**示例:** 
H
HelloCrease 已提交
1269
  ```js
S
sunyaozu 已提交
1270 1271
  let indexUtil= I18n.getInstance("zh-CN");
  let index = indexUtil.getIndex("hi");  // index = "H"
Z
zengyawen 已提交
1272 1273 1274
  ```


S
sunyaozu 已提交
1275
## I18n.getLineInstance<sup>8+</sup>
Z
zengyawen 已提交
1276

S
sunyaozu 已提交
1277
getLineInstance(locale: string): BreakIterator
Z
zengyawen 已提交
1278

S
sunyaozu 已提交
1279
获取一个用于断句的[BreakIterator](#breakiterator8)对象。
S
sunyaozu 已提交
1280

S
sunyaozu 已提交
1281 1282
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1283
**参数:** 
S
sunyaozu 已提交
1284

S
sunyaozu 已提交
1285 1286 1287
| 参数名    | 类型     | 必填   | 说明                                       |
| ------ | ------ | ---- | ---------------------------------------- |
| locale | string | 是    | 合法的locale值,例如zh-Hans-CN。生成的[BreakIterator](#breakiterator8)将按照locale所指定的区域的规则来进行断句。 |
Z
zengyawen 已提交
1288

H
HelloCrease 已提交
1289
**返回值:** 
S
sunyaozu 已提交
1290

H
HelloCrease 已提交
1291 1292 1293
| 类型                               | 说明          |
| -------------------------------- | ----------- |
| [BreakIterator](#breakiterator8) | 用于进行断句的处理器。 |
Z
zengyawen 已提交
1294

H
HelloCrease 已提交
1295
**示例:** 
H
HelloCrease 已提交
1296
  ```js
S
sunyaozu 已提交
1297
  let iterator = I18n.getLineInstance("en");
Z
zengyawen 已提交
1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309
  ```


## BreakIterator<sup>8+</sup>


### setLineBreakText<sup>8+</sup>

setLineBreakText(text: string): void

设置[BreakIterator](#breakiterator8)要处理的文本。

S
sunyaozu 已提交
1310 1311
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1312
**参数:** 
S
sunyaozu 已提交
1313

H
HelloCrease 已提交
1314 1315 1316
| 参数名  | 类型     | 必填   | 说明                      |
| ---- | ------ | ---- | ----------------------- |
| text | string | 是    | 指定BreakIterator进行断句的文本。 |
Z
zengyawen 已提交
1317

H
HelloCrease 已提交
1318
**示例:** 
H
HelloCrease 已提交
1319
  ```js
S
sunyaozu 已提交
1320
  let iterator = I18n.getLineInstance("en");
S
sunyaozu 已提交
1321
  iterator.setLineBreakText("Apple is my favorite fruit."); // 设置短句文本
Z
zengyawen 已提交
1322 1323 1324 1325 1326 1327 1328 1329 1330
  ```


### getLineBreakText<sup>8+</sup>

getLineBreakText(): string

获取[BreakIterator](#breakiterator8)当前处理的文本。

S
sunyaozu 已提交
1331 1332
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1333
**返回值:** 
S
sunyaozu 已提交
1334

H
HelloCrease 已提交
1335 1336 1337
| 类型     | 说明                     |
| ------ | ---------------------- |
| string | BreakIterator对象正在处理的文本 |
Z
zengyawen 已提交
1338

H
HelloCrease 已提交
1339
**示例:** 
H
HelloCrease 已提交
1340
  ```js
S
sunyaozu 已提交
1341
  let iterator = I18n.getLineInstance("en");
Z
zengyawen 已提交
1342
  iterator.setLineBreakText("Apple is my favorite fruit.");
S
sunyaozu 已提交
1343
  let breakText = iterator.getLineBreakText(); // breakText = "Apple is my favorite fruit."
Z
zengyawen 已提交
1344 1345 1346 1347 1348 1349 1350 1351 1352
  ```


### current<sup>8+</sup>

current(): number

获取[BreakIterator](#breakiterator8)对象在当前处理的文本中的位置。

S
sunyaozu 已提交
1353 1354
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1355
**返回值:** 
S
sunyaozu 已提交
1356

H
HelloCrease 已提交
1357 1358 1359
| 类型     | 说明                          |
| ------ | --------------------------- |
| number | BreakIterator在当前所处理的文本中的位置。 |
Z
zengyawen 已提交
1360

H
HelloCrease 已提交
1361
**示例:** 
H
HelloCrease 已提交
1362
  ```js
S
sunyaozu 已提交
1363
  let iterator = I18n.getLineInstance("en");
Z
zengyawen 已提交
1364
  iterator.setLineBreakText("Apple is my favorite fruit.");
S
sunyaozu 已提交
1365
  let currentPos = iterator.current(); // currentPos = 0
Z
zengyawen 已提交
1366 1367 1368 1369 1370 1371 1372 1373 1374
  ```


### first<sup>8+</sup>

first(): number

[BreakIterator](#breakiterator8)对象设置到第一个可断句的分割点。第一个分割点总是被处理的文本的起始位置。

S
sunyaozu 已提交
1375 1376
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1377
**返回值:** 
S
sunyaozu 已提交
1378

H
HelloCrease 已提交
1379 1380 1381
| 类型     | 说明                |
| ------ | ----------------- |
| number | 被处理文本的第一个分割点的偏移量。 |
Z
zengyawen 已提交
1382

H
HelloCrease 已提交
1383
**示例:** 
H
HelloCrease 已提交
1384
  ```js
S
sunyaozu 已提交
1385
  let iterator = i18n.getLineInstance("en");
Z
zengyawen 已提交
1386
  iterator.setLineBreakText("Apple is my favorite fruit.");
S
sunyaozu 已提交
1387
  let firstPos = iterator.first(); // firstPos = 0
Z
zengyawen 已提交
1388 1389 1390 1391 1392 1393 1394 1395 1396
  ```


### last<sup>8+</sup>

last(): number

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

S
sunyaozu 已提交
1397 1398
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1399
**返回值:** 
S
sunyaozu 已提交
1400

H
HelloCrease 已提交
1401 1402 1403
| 类型     | 说明                 |
| ------ | ------------------ |
| number | 被处理的文本的最后一个分割点的偏移量 |
Z
zengyawen 已提交
1404

H
HelloCrease 已提交
1405
**示例:** 
H
HelloCrease 已提交
1406
  ```js
S
sunyaozu 已提交
1407
  let iterator = I18n.getLineInstance("en");
Z
zengyawen 已提交
1408
  iterator.setLineBreakText("Apple is my favorite fruit.");
S
sunyaozu 已提交
1409
  let lastPos = iterator.last(); // lastPos = 27
Z
zengyawen 已提交
1410 1411 1412 1413 1414 1415 1416 1417 1418
  ```


### next<sup>8+</sup>

next(index?: number): number

如果index给出,并且index是一个正数将[BreakIterator](#breakiterator8)向后移动number个可断句的分割点,如果n是一个负数,向前移动相应个分割点。若index没有给出,则相当于index = 1。

S
sunyaozu 已提交
1419 1420
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1421
**参数:** 
S
sunyaozu 已提交
1422

H
HelloCrease 已提交
1423 1424 1425
| 参数名   | 类型     | 必填   | 说明                                       |
| ----- | ------ | ---- | ---------------------------------------- |
| index | number | 否    | [BreakIterator](#breakiterator8)将要移动的分割点数,正数代表向后移动,负数代表向前移动。若index没有给出,则按照index=1处理。 |
Z
zengyawen 已提交
1426

H
HelloCrease 已提交
1427
**返回值:** 
S
sunyaozu 已提交
1428

H
HelloCrease 已提交
1429 1430 1431
| 类型     | 说明                                       |
| ------ | ---------------------------------------- |
| number | 返回移动了index个分割点后,当前[BreakIterator](#breakiterator8)在文本中的位置。若移动index个分割点后超出了所处理的文本的长度范围,返回-1。 |
Z
zengyawen 已提交
1432

H
HelloCrease 已提交
1433
**示例:** 
H
HelloCrease 已提交
1434
  ```js
S
sunyaozu 已提交
1435
  let iterator = I18n.getLineInstance("en");
Z
zengyawen 已提交
1436
  iterator.setLineBreakText("Apple is my favorite fruit.");
S
sunyaozu 已提交
1437
  let pos = iterator.first(); // pos = 0
S
sunyaozu 已提交
1438 1439
  pos = iterator.next(); // pos = 6
  pos = iterator.next(10); // pos = -1
Z
zengyawen 已提交
1440 1441 1442 1443 1444 1445 1446 1447 1448
  ```


### previous<sup>8+</sup>

previous(): number

[BreakIterator](#breakiterator8)移动到前一个分割点处。

S
sunyaozu 已提交
1449 1450
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1451
**返回值:** 
S
sunyaozu 已提交
1452

H
HelloCrease 已提交
1453 1454 1455
| 类型     | 说明                                       |
| ------ | ---------------------------------------- |
| number | 返回移动到前一个分割点后,当前[BreakIterator](#breakiterator8)在文本中的位置。若移动index个分割点后超出了所处理的文本的长度范围,返回-1。 |
Z
zengyawen 已提交
1456

H
HelloCrease 已提交
1457
**示例:** 
H
HelloCrease 已提交
1458
  ```js
S
sunyaozu 已提交
1459
  let iterator = I18n.getLineInstance("en");
Z
zengyawen 已提交
1460
  iterator.setLineBreakText("Apple is my favorite fruit.");
S
sunyaozu 已提交
1461
  let pos = iterator.first(); // pos = 0
S
sunyaozu 已提交
1462 1463
  pos = iterator.next(3); // pos = 12
  pos = iterator.previous(); // pos = 9
Z
zengyawen 已提交
1464 1465 1466 1467 1468 1469 1470 1471 1472
  ```


### following<sup>8+</sup>

following(offset: number): number

[BreakIterator](#breakiterator8)设置到由offset指定的位置的后面一个分割点。返回移动后[BreakIterator](#breakiterator8)的位置。

S
sunyaozu 已提交
1473 1474
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1475
**参数:** 
S
sunyaozu 已提交
1476

H
HelloCrease 已提交
1477 1478 1479
| 参数名    | 类型     | 必填   | 说明                                       |
| ------ | ------ | ---- | ---------------------------------------- |
| offset | number | 是    | 将[BreakIterator](#breakiterator8)对象的位置设置到由offset所指定的位置的下一个分割点。 |
Z
zengyawen 已提交
1480

H
HelloCrease 已提交
1481
**返回值:** 
S
sunyaozu 已提交
1482

H
HelloCrease 已提交
1483 1484 1485
| 类型     | 说明                                       |
| ------ | ---------------------------------------- |
| number | 返回[BreakIterator](#breakiterator8)移动后的位置,如果由offset所指定的位置的下一个分割点超出了文本的范围则返回-1。 |
Z
zengyawen 已提交
1486

H
HelloCrease 已提交
1487
**示例:** 
H
HelloCrease 已提交
1488
  ```js
S
sunyaozu 已提交
1489
  let iterator = I18n.getLineInstance("en");
Z
zengyawen 已提交
1490
  iterator.setLineBreakText("Apple is my favorite fruit.");
S
sunyaozu 已提交
1491
  let pos = iterator.following(0); // pos = 6
S
sunyaozu 已提交
1492 1493
  pos = iterator.following(100); // pos = -1
  pos = iterator.current(); // pos = 27
Z
zengyawen 已提交
1494 1495 1496 1497 1498 1499 1500 1501 1502
  ```


### isBoundary<sup>8+</sup>

isBoundary(offset: number): boolean

如果offset所指定的文本位置是一个分割点,那么返回true,否则返回false。如果返回true, 将[BreakIterator](#breakiterator8)对象设置到offset所指定的位置, 否则相当于调用[following](#following8)(offset)

S
sunyaozu 已提交
1503 1504
**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1505
**参数:** 
S
sunyaozu 已提交
1506

H
HelloCrease 已提交
1507 1508 1509
| 参数名    | 类型     | 必填   | 说明          |
| ------ | ------ | ---- | ----------- |
| offset | number | 是    | 指定需要进行判断的位置 |
Z
zengyawen 已提交
1510

H
HelloCrease 已提交
1511
**返回值:** 
S
sunyaozu 已提交
1512

H
HelloCrease 已提交
1513 1514 1515
| 类型      | 说明                              |
| ------- | ------------------------------- |
| boolean | 如果是一个分割点返回true,&nbsp;否则返回false。 |
Z
zengyawen 已提交
1516

H
HelloCrease 已提交
1517
**示例:** 
H
HelloCrease 已提交
1518
  ```js
S
sunyaozu 已提交
1519
  let iterator = I18n.getLineInstance("en");
Z
zengyawen 已提交
1520
  iterator.setLineBreakText("Apple is my favorite fruit.");
S
sunyaozu 已提交
1521
  let isBoundary = iterator.isBoundary(0); // isBoundary = true;
S
sunyaozu 已提交
1522
  isBoundary = iterator.isBoundary(5); // isBoundary = false;
Z
zengyawen 已提交
1523
  ```
1524 1525


S
sunyaozu 已提交
1526
## I18n.getTimeZone<sup>7+</sup>
1527

S
sunyaozu 已提交
1528
getTimeZone(zoneID?: string): TimeZone
1529

S
sunyaozu 已提交
1530
获取时区ID对应的时区对象。
1531

S
sunyaozu 已提交
1532 1533
**系统能力**:SystemCapability.Global.I18n

S
sunyaozu 已提交
1534 1535 1536 1537 1538 1539
**参数:** 

| 参数名    | 类型     | 必填   | 说明    |
| ------ | ------ | ---- | ----- |
| zondID | string | 否    | 时区ID。 |

H
HelloCrease 已提交
1540
**返回值:** 
S
sunyaozu 已提交
1541

S
sunyaozu 已提交
1542 1543 1544
| 类型       | 说明           |
| -------- | ------------ |
| TimeZone | 时区ID对应的时区对象。 |
1545

H
HelloCrease 已提交
1546
**示例:** 
H
HelloCrease 已提交
1547
  ```js
S
sunyaozu 已提交
1548
  let timezone = I18n.getTimeZone();
1549 1550 1551
  ```


S
sunyaozu 已提交
1552
## TimeZone
1553 1554


S
sunyaozu 已提交
1555
### getID
S
sunyaozu 已提交
1556

S
sunyaozu 已提交
1557
getID(): string
S
sunyaozu 已提交
1558

S
sunyaozu 已提交
1559
获取时区对象的ID。
S
sunyaozu 已提交
1560

S
sunyaozu 已提交
1561
**系统能力**:SystemCapability.Global.I18n
1562

H
HelloCrease 已提交
1563
**返回值:** 
S
sunyaozu 已提交
1564

S
sunyaozu 已提交
1565 1566 1567
| 类型     | 说明           |
| ------ | ------------ |
| string | 时区对象对应的时区ID。 |
1568

H
HelloCrease 已提交
1569
**示例:** 
H
HelloCrease 已提交
1570
  ```js
S
sunyaozu 已提交
1571 1572
  let timezone = I18n.getTimeZone();
  let timezoneID = timezone.getID(); // timezoneID = "Asia/Shanghai"
1573 1574 1575
  ```


S
sunyaozu 已提交
1576
### getDisplayName
1577

S
sunyaozu 已提交
1578
getDisplayName(locale?: string, isDST?: boolean): string
1579

S
sunyaozu 已提交
1580
获取时区的本地化表示。
S
sunyaozu 已提交
1581 1582 1583

**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1584
**参数:** 
S
sunyaozu 已提交
1585

H
HelloCrease 已提交
1586 1587 1588 1589
| 参数名    | 类型      | 必填   | 说明                   |
| ------ | ------- | ---- | -------------------- |
| locale | string  | 否    | 区域ID。                |
| isDST  | boolean | 否    | 表示获取时区对象的表示时是否考虑夏令时。 |
S
sunyaozu 已提交
1590

H
HelloCrease 已提交
1591
**返回值:** 
S
sunyaozu 已提交
1592

H
HelloCrease 已提交
1593 1594 1595
| 类型     | 说明            |
| ------ | ------------- |
| string | 时区对象在指定区域的表示。 |
S
sunyaozu 已提交
1596

H
HelloCrease 已提交
1597
**示例:** 
H
HelloCrease 已提交
1598
  ```js
S
sunyaozu 已提交
1599 1600
  let timezone = I18n.getTimeZone();
  let timezoneName = timezone.getDisplayName("zh-CN", false); // timezoneName = "中国标准时间"
S
sunyaozu 已提交
1601 1602 1603
  ```


S
sunyaozu 已提交
1604
### getRawOffset
S
sunyaozu 已提交
1605 1606 1607 1608 1609 1610 1611

getRawOffset(): number

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

**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1612
**返回值:** 
S
sunyaozu 已提交
1613

H
HelloCrease 已提交
1614 1615 1616
| 类型     | 说明                  |
| ------ | ------------------- |
| number | 时区对象表示的时区与UTC时区的偏差。 |
S
sunyaozu 已提交
1617

H
HelloCrease 已提交
1618
**示例:** 
H
HelloCrease 已提交
1619
  ```js
S
sunyaozu 已提交
1620 1621
  let timezone = I18n.getTimeZone();
  let offset = timezone.getRawOffset(); // offset = 28800000
S
sunyaozu 已提交
1622 1623 1624
  ```


S
sunyaozu 已提交
1625
### getOffset
S
sunyaozu 已提交
1626 1627 1628 1629 1630 1631 1632

getOffset(date?: number): number

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

**系统能力**:SystemCapability.Global.I18n

H
HelloCrease 已提交
1633
**返回值:** 
S
sunyaozu 已提交
1634

H
HelloCrease 已提交
1635 1636 1637
| 类型     | 说明                      |
| ------ | ----------------------- |
| number | 某一时刻时区对象表示的时区与UTC时区的偏差。 |
S
sunyaozu 已提交
1638

H
HelloCrease 已提交
1639
**示例:** 
H
HelloCrease 已提交
1640
  ```js
S
sunyaozu 已提交
1641 1642
  let timezone = I18n.getTimeZone();
  let offset = timezone.getOffset(1234567890); // offset = 28800000
1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654
  ```


### getAvailableIDs<sup>9+</sup>

static getAvailableIDs(): Array&lt;string&gt;

获取系统支持的时区ID。

**系统能力**:SystemCapability.Global.I18n

**返回值:** 
S
sunyaozu 已提交
1655

H
HelloCrease 已提交
1656 1657
| 类型                  | 说明          |
| ------------------- | ----------- |
1658 1659 1660
| Array&lt;string&gt; | 系统支持的时区ID列表 |

**示例:** 
H
HelloCrease 已提交
1661
  ```ts
S
sunyaozu 已提交
1662
  // 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个时区
S
sunyaozu 已提交
1663
  let ids = I18n.TimeZone.getAvailableIDs();
1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675
  ```


### getAvailableZoneCityIDs<sup>9+</sup>

static getAvailableZoneCityIDs(): Array&lt;string&gt;

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

**系统能力**:SystemCapability.Global.I18n

**返回值:** 
S
sunyaozu 已提交
1676

H
HelloCrease 已提交
1677 1678
| 类型                  | 说明            |
| ------------------- | ------------- |
1679 1680 1681
| Array&lt;string&gt; | 系统支持的时区城市ID列表 |

**示例:** 
H
HelloCrease 已提交
1682
  ```ts
S
sunyaozu 已提交
1683
  // 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个时区城市
S
sunyaozu 已提交
1684
  let cityIDs = I18n.TimeZone.getAvailableZoneCityIDs();
1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696
  ```


### getCityDisplayName<sup>9+</sup>

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

获取某时区城市在locale下的本地化显示。

**系统能力**:SystemCapability.Global.I18n

**参数:** 
S
sunyaozu 已提交
1697

H
HelloCrease 已提交
1698 1699
| 参数名    | 类型     | 必填   | 说明     |
| ------ | ------ | ---- | ------ |
1700
| cityID | string | 是    | 时区城市ID |
H
HelloCrease 已提交
1701
| locale | string | 是    | 区域ID   |
1702 1703

**返回值:** 
S
sunyaozu 已提交
1704

H
HelloCrease 已提交
1705 1706
| 类型     | 说明                 |
| ------ | ------------------ |
1707 1708 1709
| string | 时区城市在locale下的本地化显示 |

**示例:** 
H
HelloCrease 已提交
1710
  ```ts
S
sunyaozu 已提交
1711
  let displayName = I18n.TimeZone.getCityDisplayName("Shanghai", "zh-CN"); // displayName = "上海(中国)"
1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723
  ```


### getTimezoneFromCity<sup>9+</sup>

static getTimezoneFromCity(cityID: string): TimeZone

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 
S
sunyaozu 已提交
1724

H
HelloCrease 已提交
1725 1726
| 参数名    | 类型     | 必填   | 说明     |
| ------ | ------ | ---- | ------ |
1727 1728 1729
| cityID | string | 是    | 时区城市ID |

**返回值:** 
S
sunyaozu 已提交
1730

H
HelloCrease 已提交
1731 1732
| 类型       | 说明          |
| -------- | ----------- |
1733 1734 1735
| TimeZone | 时区城市对应的时区对象 |

**示例:** 
H
HelloCrease 已提交
1736
  ```ts
S
sunyaozu 已提交
1737
  let timezone = I18n.TimeZone.getTimezoneFromCity("Shanghai");
1738 1739 1740
  ```


S
sunyaozu 已提交
1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752
## Transliterator<sup>9+</sup>


### getAvailableIDs<sup>9+</sup>

static getAvailableIDs(): string[]

获取音译支持的ID列表。

**系统能力**:SystemCapability.Global.I18n

**返回值:** 
S
sunyaozu 已提交
1753

H
HelloCrease 已提交
1754 1755
| 类型       | 说明         |
| -------- | ---------- |
S
sunyaozu 已提交
1756 1757 1758
| string[] | 音译支持的ID列表。 |

**示例:** 
H
HelloCrease 已提交
1759
  ```ts
S
sunyaozu 已提交
1760 1761
  // ids = ["ASCII-Latin", "Accents-Any", "Amharic-Latin/BGN", ...],共支持671个id
  // 每一个id由使用中划线分割的两部分组成,格式为 source-destination
S
sunyaozu 已提交
1762
  let ids = I18n.Transliterator.getAvailableIDs();
S
sunyaozu 已提交
1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774
  ```


### getInstance<sup>9+</sup>

static getInstance(id: string): Transliterator

创建音译对象。

**系统能力**:SystemCapability.Global.I18n

**参数:** 
S
sunyaozu 已提交
1775

H
HelloCrease 已提交
1776 1777 1778
| 参数名  | 类型     | 必填   | 说明       |
| ---- | ------ | ---- | -------- |
| id   | string | 是    | 音译支持的ID。 |
S
sunyaozu 已提交
1779 1780

**返回值:** 
S
sunyaozu 已提交
1781

H
HelloCrease 已提交
1782 1783
| 类型                                 | 说明    |
| ---------------------------------- | ----- |
S
sunyaozu 已提交
1784 1785 1786
| [Transliterator](#transliterator9) | 音译对象。 |

**示例:** 
H
HelloCrease 已提交
1787
  ```ts
S
sunyaozu 已提交
1788
  let transliterator = I18n.Transliterator.getInstance("Any-Latn");
S
sunyaozu 已提交
1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800
  ```


### transform<sup>9+</sup>

transform(text: string): string

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 
S
sunyaozu 已提交
1801

H
HelloCrease 已提交
1802 1803 1804
| 参数名  | 类型     | 必填   | 说明     |
| ---- | ------ | ---- | ------ |
| text | string | 是    | 输入字符串。 |
S
sunyaozu 已提交
1805 1806

**返回值:** 
S
sunyaozu 已提交
1807

H
HelloCrease 已提交
1808 1809
| 类型     | 说明       |
| ------ | -------- |
S
sunyaozu 已提交
1810 1811 1812
| string | 转换后的字符串。 |

**示例:** 
H
HelloCrease 已提交
1813
  ```ts
S
sunyaozu 已提交
1814 1815
  let transliterator = I18n.Transliterator.getInstance("Any-Latn");
  let res = transliterator.transform("中国"); // res = "zhōng guó"
S
sunyaozu 已提交
1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843
  ```


## Unicode<sup>9+</sup>


### isDigit<sup>9+</sup>

static isDigit(char: string): boolean

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
1844
  let isdigit = I18n.Unicode.isDigit("1");  // isdigit = true
S
sunyaozu 已提交
1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869
  ```


### isSpaceChar<sup>9+</sup>

static isSpaceChar(char: string): boolean

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
1870
  let isspacechar = I18n.Unicode.isSpaceChar("a");  // isspacechar = false
S
sunyaozu 已提交
1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895
  ```


### isWhitespace<sup>9+</sup>

static isWhitespace(char: string): boolean

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
1896
  let iswhitespace = I18n.Unicode.isWhitespace("a");  // iswhitespace = false
S
sunyaozu 已提交
1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921
  ```


### isRTL<sup>9+</sup>

static isRTL(char: string): boolean

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
1922
  let isrtl = I18n.Unicode.isRTL("a");  // isrtl = false
S
sunyaozu 已提交
1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947
  ```


### isIdeograph<sup>9+</sup>

static isIdeograph(char: string): boolean

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
1948
  let isideograph = I18n.Unicode.isIdeograph("a");  // isideograph = false
S
sunyaozu 已提交
1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973
  ```


### isLetter<sup>9+</sup>

static isLetter(char: string): boolean

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
1974
  let isletter = I18n.Unicode.isLetter("a");  // isletter = true
S
sunyaozu 已提交
1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
  ```


### isLowerCase<sup>9+</sup>

static isLowerCase(char: string): boolean

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2000
  let islowercase = I18n.Unicode.isLowerCase("a");  // islowercase = true
S
sunyaozu 已提交
2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025
  ```


### isUpperCase<sup>9+</sup>

static isUpperCase(char: string): boolean

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2026
  let isuppercase = I18n.Unicode.isUpperCase("a");  // isuppercase = false
S
sunyaozu 已提交
2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051
  ```


### getType<sup>9+</sup>

static getType(char: string): string

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2052
  let type = I18n.Unicode.getType("a"); // type = "U_LOWERCASE_LETTER"
S
sunyaozu 已提交
2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084
  ```


## I18NUtil<sup>9+</sup>


### unitConvert<sup>9+</sup>

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

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

**系统能力**:SystemCapability.Global.I18n

**参数:** 

| 参数名      | 类型                     | 必填   | 说明                                       |
| -------- | ---------------------- | ---- | ---------------------------------------- |
| fromUnit | [UnitInfo](#unitinfo8) | 是    | 要被转换的单位。                                 |
| toUnit   | [UnitInfo](#unitinfo8) | 是    | 要转换为的单位。                                 |
| value    | number                 | 是    | 要被转换的单位的数量值。                             |
| locale   | string                 | 是    | 格式化时使用的区域参数,如:zh-Hans-CN。                |
| style    | string                 | 否    | 格式化使用的风格,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2085
  let res = I18n.I18NUtil.unitConvert({unit: "cup", measureSystem: "US"}, {unit: "liter", measureSystem: "SI"}, 1000, "en-US", "long"); // res = 236.588 liters
S
sunyaozu 已提交
2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110
  ```


### getDateOrder<sup>9+</sup>

static getDateOrder(locale: string): string

获取某一区域的日期的年、月、日排列顺序。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

| 类型     | 说明                  |
| ------ | ------------------- |
| string | 返回某一区域的日期的年、月、日排列顺序 |

**示例:** 
  ```js
S
sunyaozu 已提交
2111
  let order = I18n.I18NUtil.getDateOrder("zh-CN");  // order = "y-L-d"
S
sunyaozu 已提交
2112 2113 2114
  ```


S
sunyaozu 已提交
2115
## I18n.getDisplayCountry<sup>(deprecated)</sup>
S
sunyaozu 已提交
2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140

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

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

从API version 9开始不再维护,建议使用[System.getDisplayCountry](#getdisplaycountry9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2141
  let countryName = I18n.getDisplayCountry("zh-CN", "en-GB", true); // countryName = true
S
sunyaozu 已提交
2142
  countryName = I18n.getDisplayCountry("zh-CN", "en-GB"); // countryName = true
S
sunyaozu 已提交
2143 2144 2145
  ```


S
sunyaozu 已提交
2146
## I18n.getDisplayLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171

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

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

从API version 9开始不再维护,建议使用[System.getDisplayLanguage](#getdisplaylanguage9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2172
  let languageName = I18n.getDisplayLanguage("zh", "en-GB", true); // languageName = "Chinese"
S
sunyaozu 已提交
2173
  languageName = I18n.getDisplayLanguage("zh", "en-GB"); // languageName = "Chinese"
S
sunyaozu 已提交
2174 2175 2176
  ```


S
sunyaozu 已提交
2177
## I18n.getSystemLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194

getSystemLanguage(): string

获取系统语言。

从API version 9开始不再维护,建议使用[System.getSystemLanguage](#getsystemlanguage9)代替。

**系统能力**:SystemCapability.Global.I18n

**返回值:** 

| 类型     | 说明      |
| ------ | ------- |
| string | 系统语言ID。 |

**示例:** 
  ```js
S
sunyaozu 已提交
2195
  let systemLanguage = I18n.getSystemLanguage(); // 返回当前系统语言
S
sunyaozu 已提交
2196 2197 2198
  ```


S
sunyaozu 已提交
2199
## I18n.getSystemRegion<sup>(deprecated)</sup>
S
sunyaozu 已提交
2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216

getSystemRegion(): string

获取系统地区。

从API version 9开始不再维护,建议使用[System.getSystemRegion](#getsystemregion9)代替。

**系统能力**:SystemCapability.Global.I18n

**返回值:** 

| 类型     | 说明      |
| ------ | ------- |
| string | 系统地区ID。 |

**示例:** 
  ```js
S
sunyaozu 已提交
2217
  let region = I18n.getSystemRegion(); // 返回当前系统地区
S
sunyaozu 已提交
2218 2219 2220
  ```


S
sunyaozu 已提交
2221
## I18n.getSystemLocale<sup>(deprecated)</sup>
S
sunyaozu 已提交
2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238

getSystemLocale(): string

获取系统区域。

从API version 9开始不再维护,建议使用[System.getSystemLocale](#getsystemlocale9)代替。

**系统能力**:SystemCapability.Global.I18n

**返回值:** 

| 类型     | 说明      |
| ------ | ------- |
| string | 系统区域ID。 |

**示例:** 
  ```js
S
sunyaozu 已提交
2239
  let locale = I18n.getSystemLocale(); // 返回系统Locale
S
sunyaozu 已提交
2240 2241 2242
  ```


S
sunyaozu 已提交
2243
## I18n.is24HourClock<sup>(deprecated)</sup>
S
sunyaozu 已提交
2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260

is24HourClock(): boolean

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

从API version 9开始不再维护,建议使用[System.is24HourClock](#is24hourclock9)代替。

**系统能力**:SystemCapability.Global.I18n

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2261
  let is24HourClock = I18n.is24HourClock();
S
sunyaozu 已提交
2262 2263 2264
  ```


S
sunyaozu 已提交
2265
## I18n.set24HourClock<sup>(deprecated)</sup>
S
sunyaozu 已提交
2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291

set24HourClock(option: boolean): boolean

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

从API version 9开始不再维护,建议使用[System.set24HourClock](#set24hourclock9)代替。

**需要权限**:ohos.permission.UPDATE_CONFIGURATION

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
  // 将系统时间设置为24小时制
S
sunyaozu 已提交
2292
  let success = I18n.set24HourClock(true);
S
sunyaozu 已提交
2293 2294 2295
  ```


S
sunyaozu 已提交
2296
## I18n.addPreferredLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323

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

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[System.addPreferredLanguage](#addpreferredlanguage9)代替。

**需要权限**:ohos.permission.UPDATE_CONFIGURATION

**系统能力**:SystemCapability.Global.I18n

**参数:** 

| 参数名      | 类型     | 必填   | 说明         |
| -------- | ------ | ---- | ---------- |
| language | string | 是    | 待添加的偏好语言。  |
| index    | number | 否    | 偏好语言的添加位置。 |

**返回值:** 

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

**示例:** 
  ```js
  // 将语言zh-CN添加到系统偏好语言列表中
S
sunyaozu 已提交
2324 2325 2326
  let language = 'zh-CN';
  let index = 0;
  let success = I18n.addPreferredLanguage(language, index);
S
sunyaozu 已提交
2327 2328 2329
  ```


S
sunyaozu 已提交
2330
## I18n.removePreferredLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356

removePreferredLanguage(index: number): boolean

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[System.removePreferredLanguage](#removepreferredlanguage9)代替。

**需要权限**:ohos.permission.UPDATE_CONFIGURATION

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
  // 删除系统偏好语言列表中的第一个偏好语言
S
sunyaozu 已提交
2357 2358
  let index = 0;
  let success = I18n.removePreferredLanguage(index);
S
sunyaozu 已提交
2359 2360 2361
  ```


S
sunyaozu 已提交
2362
## I18n.getPreferredLanguageList<sup>(deprecated)</sup>
S
sunyaozu 已提交
2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379

getPreferredLanguageList(): Array&lt;string&gt;

获取系统偏好语言列表。

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

**系统能力**:SystemCapability.Global.I18n

**返回值:** 

| 类型                  | 说明        |
| ------------------- | --------- |
| Array&lt;string&gt; | 系统偏好语言列表。 |

**示例:** 
  ```js
S
sunyaozu 已提交
2380
  let preferredLanguageList = I18n.getPreferredLanguageList(); // 获取系统偏好语言列表
S
sunyaozu 已提交
2381 2382 2383
  ```


S
sunyaozu 已提交
2384
## I18n.getFirstPreferredLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401

getFirstPreferredLanguage(): string

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

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

**系统能力**:SystemCapability.Global.I18n

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2402
  let firstPreferredLanguage = I18n.getFirstPreferredLanguage();
S
sunyaozu 已提交
2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643
  ```


## Util<sup>(deprecated)</sup>


### unitConvert<sup>(deprecated)</sup>

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

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[unitConvert](#unitconvert9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

| 参数名      | 类型                     | 必填   | 说明                                       |
| -------- | ---------------------- | ---- | ---------------------------------------- |
| fromUnit | [UnitInfo](#unitinfo8) | 是    | 要被转换的单位。                                 |
| toUnit   | [UnitInfo](#unitinfo8) | 是    | 要转换为的单位。                                 |
| value    | number                 | 是    | 要被转换的单位的数量值。                             |
| locale   | string                 | 是    | 格式化时使用的区域参数,如:zh-Hans-CN。                |
| style    | string                 | 否    | 格式化使用的风格,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |

**返回值:** 

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


## Character<sup>(deprecated)</sup>


### isDigit<sup>(deprecated)</sup>

static isDigit(char: string): boolean

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[isDigit](#isdigit9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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


### isSpaceChar<sup>(deprecated)</sup>

static isSpaceChar(char: string): boolean

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[isSpaceChar](#isspacechar9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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


### isWhitespace<sup>(deprecated)</sup>

static isWhitespace(char: string): boolean

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[isWhitespace](#iswhitespace9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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


### isRTL<sup>(deprecated)</sup>

static isRTL(char: string): boolean

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[isRTL](#isrtl9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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


### isIdeograph<sup>(deprecated)</sup>

static isIdeograph(char: string): boolean

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[isIdeograph](#isideograph9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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


### isLetter<sup>(deprecated)</sup>

static isLetter(char: string): boolean

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[isLetter](#isletter9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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


### isLowerCase<sup>(deprecated)</sup>

static isLowerCase(char: string): boolean

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[isLowerCase](#islowercase9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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


### isUpperCase<sup>(deprecated)</sup>

static isUpperCase(char: string): boolean

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[isUpperCase](#isuppercase9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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


### getType<sup>(deprecated)</sup>

static getType(char: string): string

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

从API version 8开始支持,从API version 9开始不再维护,建议使用[getType](#gettype9)代替。

**系统能力**:SystemCapability.Global.I18n

**参数:** 

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

**返回值:** 

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