js-apis-i18n.md 87.0 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。     |
35
| sentenceCase | boolean | 否    | 本地化显示文本是否要首字母大写。默认值:true。 |
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
49
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
56
    console.error(`call System.getDisplayCountry failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
57
  }
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。     |
74
| sentenceCase | boolean | 否    | 本地化显示文本是否要首字母大写。默认值:true。 |
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
88
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
95
    console.error(`call System.getDisplayLanguage failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
96
  }
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
获取系统支持的语言列表。语言的详细说明参见[实例化Locale对象](../../internationalization/intl-guidelines.md#开发步骤)
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
119
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
126
    console.error(`call System.getSystemLanguages failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
127
  }
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
获取针对输入语言系统支持的国家或地区列表。国家或地区的详细说明参见[实例化Locale对象](../../internationalization/intl-guidelines.md#开发步骤)
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
156
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
163
    console.error(`call System.getSystemCountries failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
164 165
  }
  ```
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
| 参数名      | 类型     | 必填   | 说明            |
| -------- | ------ | ---- | ------------- |
| language | string | 是    | 合法的语言ID,例如zh。 |
180
| region   | string | 否    | 合法的地区ID,例如CN。默认值:使用SIM卡国家或地区。  |
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
194
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
201
    console.error(`call System.isSuggested failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
202
  }
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
获取系统语言。语言的详细说明参见[实例化Locale对象](../../internationalization/intl-guidelines.md#开发步骤)
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
225
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
232
    console.error(`call System.getSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
233
  }
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

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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
260
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
267
    console.error(`call System.setSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
268
  }
S
sunyaozu 已提交
269 270
  ```

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

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

S
sunyaozu 已提交
275
获取系统地区。地区的详细说明参见[实例化Locale对象](../../internationalization/intl-guidelines.md#开发步骤)
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
291
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
298
    console.error(`call System.getSystemRegion failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
299
  }
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
设置系统区域。

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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
326
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
333
    console.error(`call System.setSystemRegion failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
334
  }
S
sunyaozu 已提交
335 336
  ```

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

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

S
sunyaozu 已提交
341
获取系统区域。区域的详细说明参见[实例化Locale对象](../../internationalization/intl-guidelines.md#开发步骤)
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
357
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
364
    console.error(`call System.getSystemLocale failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
365
  }
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。

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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
392
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
399
    console.error(`call System.setSystemLocale failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
400
  }
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
423
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
430
    console.error(`call System.is24HourClock failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
431
  }
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

438
设置系统时间为24小时。
Z
zengyawen 已提交
439

440
**系统接口**:此接口为系统接口。
S
sunyaozu 已提交
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
458
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
466
    console.error(`call System.set24HourClock failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
467
  }
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

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
| 参数名      | 类型     | 必填   | 说明         |
| -------- | ------ | ---- | ---------- |
| language | string | 是    | 待添加的偏好语言。  |
487
| index    | number | 否    | 偏好语言的添加位置。默认值:系统偏好语言列表长度。 |
S
sunyaozu 已提交
488 489 490 491 492

**错误码:**

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

H
HelloCrease 已提交
493 494
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
495
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
505
    console.error(`call System.addPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
506
  }
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

515
**系统接口**:此接口为系统接口。
S
sunyaozu 已提交
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
533
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
542
    console.error(`call System.removePreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
543
  }
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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
566
| 890001 | param value not valid |
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
  } catch(error) {
S
sunyaozu 已提交
573
    console.error(`call System.getPreferredLanguageList failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
574
  }
Z
zengyawen 已提交
575 576
  ```

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

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

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
| 错误码ID  | 错误信息                   |
| ------ | ---------------------- |
S
sunyaozu 已提交
597
| 890001 | param value not valid |
S
sunyaozu 已提交
598 599 600 601

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

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

static getAppPreferredLanguage(): string

获取应用的偏好语言。

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

**返回值:** 

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

**错误码:**

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

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

**示例:** 
  ```js
  try {
S
sunyaozu 已提交
633
    let appPreferredLanguage = I18n.System.getAppPreferredLanguage(); // 获取应用偏好语言
S
sunyaozu 已提交
634
  } catch(error) {
S
sunyaozu 已提交
635
    console.error(`call System.getAppPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
636 637 638 639 640 641 642
  }
  ```

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

static setUsingLocalDigit(flag: boolean): void

S
sunyaozu 已提交
643
设置系统是否使用本地数字。
S
sunyaozu 已提交
644

645
**系统接口**:此接口为系统接口。
S
sunyaozu 已提交
646 647 648 649 650 651 652 653 654 655 656 657 658 659 660

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

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

**参数:** 

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

**错误码:**

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

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

**示例:** 
  ```ts
  try {
S
sunyaozu 已提交
668
    I18n.System.setUsingLocalDigit(true); // 打开本地化数字开关
S
sunyaozu 已提交
669
  } catch(error) {
S
sunyaozu 已提交
670
    console.error(`call System.setUsingLocalDigit failed, error code: ${error.code}, message: ${error.message}.`);
S
sunyaozu 已提交
671 672 673 674 675 676 677
  }
  ```

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

static getUsingLocalDigit(): boolean

S
sunyaozu 已提交
678
判断系统是否使用本地数字。
S
sunyaozu 已提交
679 680 681 682 683 684 685 686 687 688 689 690 691

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

**返回值:** 

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

**错误码:**

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

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

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


S
sunyaozu 已提交
706
## I18n.isRTL<sup>7+</sup>
S
sunyaozu 已提交
707 708 709

isRTL(locale: string): boolean

710
获取该区域是否为从右至左显示语言。
S
sunyaozu 已提交
711 712 713 714 715

**系统能力**: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

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

获取日历对象。

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

**参数:** 

| 参数名    | 类型     | 必填   | 说明                                       |
| ------ | ------ | ---- | ---------------------------------------- |
| locale | string | 是    | 合法的locale值,例如zh-Hans-CN。                 |
746
| 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。默认值:区域默认的日历类型。 |
S
sunyaozu 已提交
747 748 749 750 751 752 753 754 755

**返回值:** 

| 类型                     | 说明    |
| ---------------------- | ----- |
| [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
  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 | 是    | 设置的日。  |
821 822 823
| hour   | number | 否    | 设置的小时。默认值:系统小时。 |
| minute | number | 否    | 设置的分钟。默认值:系统分钟。 |
| second | number | 否    | 设置的秒。默认值:系统秒。 |
S
sunyaozu 已提交
824 825 826

**示例:** 
  ```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
  ```


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

getDisplayName(locale: string): string

993
获取日历对象在该区域的名字。
Z
zengyawen 已提交
994

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

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

H
HelloCrease 已提交
999 1000
| 参数名    | 类型     | 必填   | 说明                                       |
| ------ | ------ | ---- | ---------------------------------------- |
1001
| locale | string | 是    | locale用于指定区域,如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
  ```


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

isWeekend(date?: Date): boolean

1020
判断指定的日期在日历中是否为周末。
Z
zengyawen 已提交
1021

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

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

H
HelloCrease 已提交
1026 1027
| 参数名  | 类型   | 必填   | 说明                                       |
| ---- | ---- | ---- | ---------------------------------------- |
1028
| date | Date | 否    | 指定的日期。若不填,则判断当前日期是否为周末。默认值:系统日期。 |
Z
zengyawen 已提交
1029

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

H
HelloCrease 已提交
1032 1033
| 类型      | 说明                                  |
| ------- | ----------------------------------- |
1034
| boolean | 若判断指定日期为周末时,返回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                                   | 是    | 表示电话号码所属国家或地区代码。 |
1062
| options | [PhoneNumberFormatOptions](#phonenumberformatoptions8) | 否    | 电话号码格式化对象的相关选项。默认值:NATIONAL。  |
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
  ```


1152
## PhoneNumberFormatOptions<sup>8+</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"。<br>-在API version 8版本,type为必填项。 <br>-API version 9版本开始,type为选填项。|
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 | 否    | 区域设置信息字符串,包括语言以及可选的脚本和区域。默认值:系统Locale。 |
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
### getIndexList<sup>8+</sup>

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

1208
获取当前区域对应的索引列表。
Z
zengyawen 已提交
1209

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
在当前索引列表中添加新的区域。
Z
zengyawen 已提交
1232

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
  let indexUtil = I18n.getInstance("zh-CN");
S
sunyaozu 已提交
1271
  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
  ```


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


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

setLineBreakText(text: string): void

1308
设置BreakIterator要处理的文本。
Z
zengyawen 已提交
1309

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
  ```


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

getLineBreakText(): string

1329
获取BreakIterator当前处理的文本。
Z
zengyawen 已提交
1330

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
  ```


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

current(): number

1351
获取BreakIterator对象在当前处理的文本中的位置。
Z
zengyawen 已提交
1352

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
  ```


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

first(): number

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

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
  ```


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

last(): number

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

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
  ```


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

next(index?: number): number

1417
将BreakIterator向后移动相应个分割点。
Z
zengyawen 已提交
1418

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

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

H
HelloCrease 已提交
1423 1424
| 参数名   | 类型     | 必填   | 说明                                       |
| ----- | ------ | ---- | ---------------------------------------- |
1425
| index | number | 否    | BreakIterator将要移动的分割点数。正数代表向后移动,即将BreakIterator向后移动number个可断句的分割点;负数代表向前移动,即向前移动相应个分割点。默认值:1。 |
Z
zengyawen 已提交
1426

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

H
HelloCrease 已提交
1429 1430
| 类型     | 说明                                       |
| ------ | ---------------------------------------- |
1431
| number | 返回移动了index个分割点后,当前BreakIterator在文本中的位置。若移动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
  ```


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

previous(): number

1447
将BreakIterator向前移动一个分割点。
Z
zengyawen 已提交
1448

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

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

H
HelloCrease 已提交
1453 1454
| 类型     | 说明                                       |
| ------ | ---------------------------------------- |
1455
| number | 返回移动到前一个分割点后,当前BreakIterator在文本中的位置。若移动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
  ```


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

following(offset: number): number

1471
将BreakIterator设置到指定位置的后面一个分割点。
Z
zengyawen 已提交
1472

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

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

H
HelloCrease 已提交
1477 1478
| 参数名    | 类型     | 必填   | 说明                                       |
| ------ | ------ | ---- | ---------------------------------------- |
1479
| offset | number | 是    | 将BreakIterator设置到指定位置的后面一个分割点。 |
Z
zengyawen 已提交
1480

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

H
HelloCrease 已提交
1483 1484
| 类型     | 说明                                       |
| ------ | ---------------------------------------- |
1485
| number | 返回BreakIterator移动后的位置,如果由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
  ```


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

isBoundary(offset: number): boolean

1501
判断文本指定位置是否为分割点。
Z
zengyawen 已提交
1502

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

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

H
HelloCrease 已提交
1507 1508
| 参数名    | 类型     | 必填   | 说明          |
| ------ | ------ | ---- | ----------- |
1509
| offset | number | 是    | 若offset指定的文本位置是一个分割点,则返回true,否则返回false。返回true时,将BreakIterator对象移动到offset指定的位置,否则相当于调用following。 |
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
| zondID | string | 否    | 时区ID。默认值:系统时区。 |
S
sunyaozu 已提交
1539

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

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

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

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

H
HelloCrease 已提交
1586 1587
| 参数名    | 类型      | 必填   | 说明                   |
| ------ | ------- | ---- | -------------------- |
1588 1589
| locale | string  | 否    | 区域ID。默认值:系统Locale。                |
| isDST  | boolean | 否    | 时区对象本地化表示时是否考虑夏令时。默认值:false。 |
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
  ```


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

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

1692
获取某时区城市在该区域的本地化显示。
1693 1694 1695 1696

**系统能力**: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 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751
### getTimezonesByLocation<sup>10+</sup>

static getTimezonesByLocation(longitude: number, latitude: number): Array&lt;TimeZone&gt;

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

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

**参数:** 

| 参数名     | 类型     | 必填   | 说明     |
| --------- | ------ | ---- | ------ |
1752 1753
| longitude | number | 是    | 经度, 范围[-180, 179.9), 东经取正值, 西经取负值 |
| latitude  | number | 是    | 纬度, 范围[-90, 89.9), 北纬取正值, 南纬取负值 |
1754 1755 1756 1757 1758

**返回值:** 

| 类型       | 说明          |
| -------- | ----------- |
1759
| Array&lt;[TimeZone](#timezone)&gt; | 时区对象的数组 |
1760 1761

**示例:** 
1762
  ```js
1763 1764 1765 1766 1767 1768
  let timezoneArray = I18n.TimeZone.getTimezonesByLocation(-118.1, 34.0);
  for (var i = 0; i < timezoneArray.length; i++) {
     let tzId = timezoneArray[i].getID();
  }
  ```

1769

S
sunyaozu 已提交
1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781
## Transliterator<sup>9+</sup>


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

static getAvailableIDs(): string[]

获取音译支持的ID列表。

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

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

H
HelloCrease 已提交
1783 1784
| 类型       | 说明         |
| -------- | ---------- |
S
sunyaozu 已提交
1785 1786 1787
| string[] | 音译支持的ID列表。 |

**示例:** 
H
HelloCrease 已提交
1788
  ```ts
1789 1790
  // ids共支持671个。每一个id由使用中划线分割的两部分组成,格式为 source-destination。例如ids = ["Han-Latin","Latin-ASCII", "Amharic-Latin/BGN","Accents-Any", ...],Han-Latin表示汉语转为译拉丁文,Amharic-Latin表示阿姆哈拉语转为拉丁文。
  // 更多使用信息可以参考ISO-15924。
S
sunyaozu 已提交
1791
  let ids = I18n.Transliterator.getAvailableIDs();
S
sunyaozu 已提交
1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803
  ```


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

static getInstance(id: string): Transliterator

创建音译对象。

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

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

H
HelloCrease 已提交
1805 1806 1807
| 参数名  | 类型     | 必填   | 说明       |
| ---- | ------ | ---- | -------- |
| id   | string | 是    | 音译支持的ID。 |
S
sunyaozu 已提交
1808 1809

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

H
HelloCrease 已提交
1811 1812
| 类型                                 | 说明    |
| ---------------------------------- | ----- |
S
sunyaozu 已提交
1813 1814 1815
| [Transliterator](#transliterator9) | 音译对象。 |

**示例:** 
H
HelloCrease 已提交
1816
  ```ts
S
sunyaozu 已提交
1817
  let transliterator = I18n.Transliterator.getInstance("Any-Latn");
S
sunyaozu 已提交
1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829
  ```


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

transform(text: string): string

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

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

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

H
HelloCrease 已提交
1831 1832 1833
| 参数名  | 类型     | 必填   | 说明     |
| ---- | ------ | ---- | ------ |
| text | string | 是    | 输入字符串。 |
S
sunyaozu 已提交
1834 1835

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

H
HelloCrease 已提交
1837 1838
| 类型     | 说明       |
| ------ | -------- |
S
sunyaozu 已提交
1839 1840 1841
| string | 转换后的字符串。 |

**示例:** 
H
HelloCrease 已提交
1842
  ```ts
S
sunyaozu 已提交
1843 1844
  let transliterator = I18n.Transliterator.getInstance("Any-Latn");
  let res = transliterator.transform("中国"); // res = "zhōng guó"
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 1870 1871 1872
  ```


## 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 已提交
1873
  let isdigit = I18n.Unicode.isDigit("1");  // isdigit = true
S
sunyaozu 已提交
1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898
  ```


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

static isSpaceChar(char: string): boolean

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

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

**参数:** 

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

**返回值:** 

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

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


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

static isWhitespace(char: string): boolean

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

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

**参数:** 

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

**返回值:** 

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

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


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

static isRTL(char: string): boolean

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

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

**参数:** 

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

**返回值:** 

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

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


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

static isIdeograph(char: string): boolean

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

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

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
1977
  let isideograph = I18n.Unicode.isIdeograph("a");  // isideograph = false
S
sunyaozu 已提交
1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002
  ```


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

static isLetter(char: string): boolean

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

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

**参数:** 

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

**返回值:** 

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

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


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

static isLowerCase(char: string): boolean

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

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

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2029
  let islowercase = I18n.Unicode.isLowerCase("a");  // islowercase = true
S
sunyaozu 已提交
2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054
  ```


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

static isUpperCase(char: string): boolean

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

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

**参数:** 

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2055
  let isuppercase = I18n.Unicode.isUpperCase("a");  // isuppercase = false
S
sunyaozu 已提交
2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076
  ```


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

static getType(char: string): string

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

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

**参数:** 

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

**返回值:** 

| 类型     | 说明          |
| ------ | ----------- |
2077 2078 2079 2080 2081 2082 2083 2084 2085 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 2111 2112 2113
| 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 | 表示其它符号。 |
S
sunyaozu 已提交
2114 2115 2116

**示例:** 
  ```js
S
sunyaozu 已提交
2117
  let type = I18n.Unicode.getType("a"); // type = "U_LOWERCASE_LETTER"
S
sunyaozu 已提交
2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134
  ```

## 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

**参数:** 

| 参数名      | 类型                     | 必填   | 说明                                       |
| -------- | ---------------------- | ---- | ---------------------------------------- |
2135 2136 2137
| fromUnit | [UnitInfo](#unitinfo8) | 是    | 需要转换的单位。                                 |
| toUnit   | [UnitInfo](#unitinfo8) | 是    | 转换成的目标单位。                                 |
| value    | number                 | 是    | 需要转换的单位的数量值。                             |
S
sunyaozu 已提交
2138
| locale   | string                 | 是    | 格式化时使用的区域参数,如:zh-Hans-CN。                |
2139
| style    | string                 | 否    | 格式化使用的风格,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。默认值:short。 |
S
sunyaozu 已提交
2140 2141 2142 2143 2144 2145 2146 2147 2148

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2149
  let res = I18n.I18NUtil.unitConvert({unit: "cup", measureSystem: "US"}, {unit: "liter", measureSystem: "SI"}, 1000, "en-US", "long"); // res = 236.588 liters
S
sunyaozu 已提交
2150 2151 2152 2153 2154 2155 2156
  ```


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

static getDateOrder(locale: string): string

2157
获取该区域日期中年、月、日的排列顺序。
S
sunyaozu 已提交
2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170

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

**参数:** 

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

**返回值:** 

| 类型     | 说明                  |
| ------ | ------------------- |
2171
| string | 返回该区域年、月、日的排列顺序。 |
S
sunyaozu 已提交
2172 2173 2174

**示例:** 
  ```js
S
sunyaozu 已提交
2175
  let order = I18n.I18NUtil.getDateOrder("zh-CN");  // order = "y-L-d"
S
sunyaozu 已提交
2176 2177 2178
  ```


S
sunyaozu 已提交
2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247
## Normalizer<sup>10+</sup>

### getInstance<sup>10+</sup>

static getInstance(mode: NormalizerMode): Normalizer

获取文本正则化对象。

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

**参数:**

| 参数名    | 类型     | 必填   | 说明                        |
| ------ | ------ | ---- | ------------------------- |
| mode | [NormalizerMode](#normalizermode10) | 是    | 文本正则化范式。 |

**返回值:**

| 类型     | 说明                  |
| ------ | ------------------- |
| [Normalizer](#normalizer10) | 返回指定范式的文本正则化对象。 |

**示例:**
  ```js
  let normalizer = I18n.Normalizer.getInstance(I18n.NormalizerMode.NFC);
  ```


### normalize<sup>10+</sup>

normalize(text: string): string

对字符串进行正则化。

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

**参数:**

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

**返回值:**

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

**示例:**
  ```js
  let normalizer = I18n.Normalizer.getInstance(I18n.NormalizerMode.NFC);
  let normalizedText = normalizer.normalize('\u1E9B\u0323'); // normalizedText = \u1E9B\u0323
  ```


## NormalizerMode<sup>10+</sup>

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

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

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


S
sunyaozu 已提交
2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 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 2292 2293 2294 2295 2296 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 2324 2325 2326 2327
## SystemLocaleManager<sup>10+</sup>


### constructor<sup>10+</sup>

constructor()

创建SystemLocaleManager对象。

**系统接口**:此接口为系统接口。

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

**示例:**
  ```js
  let systemLocaleManager= new I18n.SystemLocaleManager();
  ```


### getLanguageInfoArray<sup>10+</sup>

getLanguageInfoArray(languages: Array&lt;string&gt;, options?: SortOptions): Array&lt;LocaleItem&gt;

获取语言排序数组。

**系统接口**:此接口为系统接口。

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

**参数:**

|   参数名  |      类型      | 必填 |     说明      |
| --------- | ------------- | ---- | ------------- |
| languages | Array&lt;string&gt; | 是   | 待排序语言列表。|
| options   | [SortOptions](#sortoptions10)   | 否   | 语言排序选项。 |

**返回值:**

|       类型        |         说明          |
| ----------------- | -------------------- |
| Array&lt;[LocaleItem](#localeitem10)&gt; | 排序后的语言列表信息。 |

**错误码:**

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

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

**示例:**
  ```js
  // 当系统语言为zh-Hans,系统地区为CN,系统Locale为zh-Hans-CN时
  let systemLocaleManager = new I18n.SystemLocaleManager();
  var languages = ["zh-Hans", "en-US", "pt", "ar"];
  var sortOptions = {locale: "zh-Hans-CN", isUseLocalName: true, isSuggestedFirst: true};
  try {
    // 排序后的语言顺序为: [zh-Hans, en-US, pt, ar]
    let sortedLanguages = systemLocaleManager.getLanguageInfoArray(languages, sortOptions);
  } catch(error) {
    console.error(`call systemLocaleManager.getLanguageInfoArray failed, error code: ${error.code}, message: ${error.message}.`);
  }
  ```


### getRegionInfoArray<sup>10+</sup>

getRegionInfoArray(regions: Array&lt;string&gt;, options?: SortOptions): Array&lt;LocaleItem&gt;

获取国家或地区排序数组。

**系统接口**:此接口为系统接口。

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

**参数:**

|   参数名  |      类型      | 必填 |     说明      |
| --------- | ------------- | ---- | ------------- |
| regions   | Array&lt;string&gt; | 是   | 待排序的国家或地区列表。|
2328
| options   | [SortOptions](#sortoptions10)   | 否   | 国家或地区排序选项。默认值:locale的默认值为系统Locale,isUseLocalName的默认值为false,isSuggestedFirst的默认值为true。 |
S
sunyaozu 已提交
2329 2330 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 2357

**返回值:**

|       类型        |         说明          |
| ----------------- | -------------------- |
| Array&lt;[LocaleItem](#localeitem10)&gt; | 排序后的国家或地区列表信息。 |

**错误码:**

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

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

**示例:**
  ```js
  // 当系统语言为zh-Hans,系统地区为CN,系统Locale为zh-Hans-CN时
  let systemLocaleManager = new I18n.SystemLocaleManager();
  var regions = ["CN", "US", "PT", "EG"];
  var sortOptions = {locale: "zh-Hans-CN", isUseLocalName: false, isSuggestedFirst: true};
  try {
    // 排序后的地区顺序为: [CN, EG, US, PT]
    let sortedRegions = systemLocaleManager.getRegionInfoArray(regions, sortOptions);
  } catch(error) {
    console.error(`call systemLocaleManager.getRegionInfoArray failed, error code: ${error.code}, message: ${error.message}.`);
  }
  ```

2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376
### getTimeZoneCityItemArray<sup>10+</sup>

static getTimeZoneCityItemArray(): Array&lt;TimeZoneCityItem&gt;

获取时区城市组合信息的数组。

**系统接口**:此接口为系统接口。

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

**返回值:**

|       类型        |         说明          |
| ----------------- | -------------------- |
| Array&lt;[TimeZoneCityItem](#timezonecityitem10)&gt; | 排序后的时区城市组合信息的数组。 |

**示例:**
  ```js
  try {
Z
zhangdd_ewan 已提交
2377
    let timeZoneCityItemArray = I18n.SystemLocaleManager.getTimeZoneCityItemArray();
2378 2379 2380 2381 2382 2383 2384 2385
    for (var i = 0; i < timeZoneCityItemArray.length; i++) {
        console.log(timeZoneCityItemArray[i].zoneId + ", " + timeZoneCityItemArray[i].cityId + ", " + timeZoneCityItemArray[i].cityDisplayName + 
                   ", " + timeZoneCityItemArray[i].offset + "\r\n");
    }
  } catch(error) {
    console.error(`call SystemLocaleManager.getTimeZoneCityItemArray failed, error code: ${error.code}, message: ${error.message}.`);
  }
  ```
S
sunyaozu 已提交
2386 2387 2388 2389 2390

## LocaleItem<sup>10+</sup>

SystemLocaleManager对语言或国家地区列表的排序结果信息项。

2391 2392
**系统接口**:此接口为系统接口。

S
sunyaozu 已提交
2393 2394 2395 2396 2397 2398 2399 2400 2401
**系统能力**:SystemCapability.Global.I18n

| 名称            | 类型            |  必填   |  说明                                   |
| --------------- | --------------- | ------ | --------------------------------------- |
| id              | string          |   是   | 语言代码或国家地区代码,如"zh"、"CN"。    |
| suggestionType  | [SuggestionType](#suggestiontype10)  |   是  | 语言或国家地区推荐类型。                  |
| displayName     | string          |  是   | id在SystemLocaleManager的Locale下的表示。|
| localName       | string          |  否   | id的本地名称。                           |

2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416
## TimeZoneCityItem<sup>10+</sup>

封装时区城市组合信息的类型。

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

| 名称            | 类型             |  必填   |  说明                                   |
| --------------- | --------------- | ------  | --------------------------------------- |
| zoneId          | string          |   是    | 时区Id,例如Asia/Shanghai。              |
| cityId          | string          |   是    | 城市Id,例如Shanghai。                   |
| cityDisplayName | string          |   是    | 城市Id在系统Locale下显示的名称。          |
| offset          | int             |   是    | 时区Id的偏移量。                         |
| zoneDisplayName | string          |   是    | 时区Id在系统Locale下显示的名称。          |
| rawOffset       | int             |   否    | 时区Id的行偏移量。                       |

S
sunyaozu 已提交
2417 2418 2419 2420 2421

## SuggestionType<sup>10+</sup>

语言或国家地区的推荐类型。

2422 2423
**系统接口**:此接口为系统接口。

S
sunyaozu 已提交
2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436
**系统能力**:SystemCapability.Global.I18n

| 名称                   | 值  | 说明   |
| ---------------------- | ---- | ---- |
| SUGGESTION_TYPE_NONE   | 0x00 | 非推荐语言或国家地区。 |
| SUGGESTION_TYPE_RELATED| 0x01 | 系统语言推荐的国家地区或系统国家地区推荐的语言。 |
| SUGGESTION_TYPE_SIM    | 0x02 | Sim卡国家地区推荐的语言。 |


## SortOptions<sup>10+<sup>

语言或国家地区排序选项。

2437 2438
**系统接口**:此接口为系统接口。

S
sunyaozu 已提交
2439 2440 2441 2442
**系统能力**:SystemCapability.Global.I18n

| 名称            | 类型            |  必填 |   说明                                 |
| --------------- | --------------- | ---- | --------------------------------------- |
2443 2444 2445
| locale          | string          |  否  | 区域代码,如"zh-Hans-CN"。locale属性默认值为系统Locale。    |
| isUseLocalName  | boolean         |  否  | 表示是否使用本地名称进行排序。若调用方法为getLanguageInfoArray,isUseLocalName属性默认值为true。若调用方法为getRegionInfoArray,isUseLocalName属性默认值为false。                |
| isSuggestedFirst | boolean        |  否  | 表示是否将推荐语言或国家地区在排序结果中置顶。isSuggestedFirst属性默认值为true。  |
S
sunyaozu 已提交
2446 2447


S
sunyaozu 已提交
2448
## I18n.getDisplayCountry<sup>(deprecated)</sup>
S
sunyaozu 已提交
2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463

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

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

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

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

**参数:** 

| 参数名          | 类型      | 必填   | 说明               |
| ------------ | ------- | ---- | ---------------- |
| country      | string  | 是    | 指定国家。            |
| locale       | string  | 是    | 显示指定国家的区域ID。     |
2464
| sentenceCase | boolean | 否    | 本地化显示文本是否要首字母大写。默认值:true。 |
S
sunyaozu 已提交
2465 2466 2467 2468 2469 2470 2471 2472 2473

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2474
  let countryName = I18n.getDisplayCountry("zh-CN", "en-GB", true); // countryName = true
S
sunyaozu 已提交
2475
  countryName = I18n.getDisplayCountry("zh-CN", "en-GB"); // countryName = true
S
sunyaozu 已提交
2476 2477 2478
  ```


S
sunyaozu 已提交
2479
## I18n.getDisplayLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494

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

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

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

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

**参数:** 

| 参数名          | 类型      | 必填   | 说明               |
| ------------ | ------- | ---- | ---------------- |
| language     | string  | 是    | 指定语言。            |
| locale       | string  | 是    | 显示指定语言的区域ID。     |
2495
| sentenceCase | boolean | 否    | 本地化显示文本是否要首字母大写。默认值:true。 |
S
sunyaozu 已提交
2496 2497 2498 2499 2500 2501 2502 2503 2504

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2505
  let languageName = I18n.getDisplayLanguage("zh", "en-GB", true); // languageName = "Chinese"
S
sunyaozu 已提交
2506
  languageName = I18n.getDisplayLanguage("zh", "en-GB"); // languageName = "Chinese"
S
sunyaozu 已提交
2507 2508 2509
  ```


S
sunyaozu 已提交
2510
## I18n.getSystemLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527

getSystemLanguage(): string

获取系统语言。

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

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2528
  let systemLanguage = I18n.getSystemLanguage(); // 返回当前系统语言
S
sunyaozu 已提交
2529 2530 2531
  ```


S
sunyaozu 已提交
2532
## I18n.getSystemRegion<sup>(deprecated)</sup>
S
sunyaozu 已提交
2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549

getSystemRegion(): string

获取系统地区。

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

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2550
  let region = I18n.getSystemRegion(); // 返回当前系统地区
S
sunyaozu 已提交
2551 2552 2553
  ```


S
sunyaozu 已提交
2554
## I18n.getSystemLocale<sup>(deprecated)</sup>
S
sunyaozu 已提交
2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571

getSystemLocale(): string

获取系统区域。

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

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2572
  let locale = I18n.getSystemLocale(); // 返回系统Locale
S
sunyaozu 已提交
2573 2574 2575
  ```


S
sunyaozu 已提交
2576
## I18n.is24HourClock<sup>(deprecated)</sup>
S
sunyaozu 已提交
2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593

is24HourClock(): boolean

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

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

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2594
  let is24HourClock = I18n.is24HourClock();
S
sunyaozu 已提交
2595 2596 2597
  ```


S
sunyaozu 已提交
2598
## I18n.set24HourClock<sup>(deprecated)</sup>
S
sunyaozu 已提交
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

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 已提交
2625
  let success = I18n.set24HourClock(true);
S
sunyaozu 已提交
2626 2627 2628
  ```


S
sunyaozu 已提交
2629
## I18n.addPreferredLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645

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

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

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

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

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

**参数:** 

| 参数名      | 类型     | 必填   | 说明         |
| -------- | ------ | ---- | ---------- |
| language | string | 是    | 待添加的偏好语言。  |
2646
| index    | number | 否    | 偏好语言的添加位置。默认值:系统偏好语言列表长度。 |
S
sunyaozu 已提交
2647 2648 2649 2650 2651 2652 2653 2654 2655 2656

**返回值:** 

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

**示例:** 
  ```js
  // 将语言zh-CN添加到系统偏好语言列表中
S
sunyaozu 已提交
2657 2658 2659
  let language = 'zh-CN';
  let index = 0;
  let success = I18n.addPreferredLanguage(language, index);
S
sunyaozu 已提交
2660 2661 2662
  ```


S
sunyaozu 已提交
2663
## I18n.removePreferredLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689

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 已提交
2690 2691
  let index = 0;
  let success = I18n.removePreferredLanguage(index);
S
sunyaozu 已提交
2692 2693 2694
  ```


S
sunyaozu 已提交
2695
## I18n.getPreferredLanguageList<sup>(deprecated)</sup>
S
sunyaozu 已提交
2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712

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

获取系统偏好语言列表。

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

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2713
  let preferredLanguageList = I18n.getPreferredLanguageList(); // 获取系统偏好语言列表
S
sunyaozu 已提交
2714 2715 2716
  ```


S
sunyaozu 已提交
2717
## I18n.getFirstPreferredLanguage<sup>(deprecated)</sup>
S
sunyaozu 已提交
2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734

getFirstPreferredLanguage(): string

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

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

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

**返回值:** 

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

**示例:** 
  ```js
S
sunyaozu 已提交
2735
  let firstPreferredLanguage = I18n.getFirstPreferredLanguage();
S
sunyaozu 已提交
2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759
  ```


## 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。                |
2760
| style    | string                 | 否    | 格式化使用的风格,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。默认值:short。 |
S
sunyaozu 已提交
2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976

**返回值:** 

| 类型     | 说明                      |
| ------ | ----------------------- |
| 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 | 输入字符的一般类别值。 |