中国总决赛
全球总决赛
学习进度
完成
省赛
√
能力分类
主要子系统
能力模型
资源的基本类型和用途
全球化
当应用具有多个在语言、时区、区域特性等方面存在显著差异的目标用户和市场时,开发者往往需要提供应用的多个本地化版本,以保证不同地区用户的体验。
应用的国际化能力决定了应用本地化过程的难易程度。
基本概念
- Locale:Locale是对一个群体在语言、脚本、国家或区域,以及日历、排序、货币等区域特性方面的共性的抽象表示。
- 偏好语言:偏好语言是用户设置过的语言,表示该语言是用户可接受的语言。用户可以在 设置/系统和更新/语言和输入法/语言和地区/添加语言中添加偏好语言。
运作机制
在调用国际化接口时,需要提供Locale信息,接口会依据该Locale的特性进行差异化的执行。Locale信息可以由开发人员通过硬编码的方式提供,但更通常的情况是使用用户设置的系统语言和区域。
Intl开发指导
- 本模块提供基础的应用国际化能力,包括时间日期格式化、数字格式化、排序等,相关接口在ECMA 402标准中定义。
- I18N模块提供其他非ECMA 402定义的国际化接口,与本模块共同使用可提供完整地国际化支持能力。
接口说明
- 调用Locale的相关接口实现最大化区域信息或最小化区域信息。
- import Intl from '@ohos.intl';
类名 | 接口名称 | 描述 |
Locale | constructor()8+ | 实例化Locale对象。 |
Locale | constructor(locale:string,options?:LocaleOptions) | 基于locale参数及其选项实例化Locale对象。 |
Locale | toString():string | 将Locale信息转换为字符串。 |
Locale | maximize():Locale | 最大化区域信息。 |
Locale | minimize():Locale | 最小化区域信息。 |
ㅤ | ㅤ | ㅤ |
表示Locale的字符串参数可以分为以下四部分:语言、脚本、地区、扩展参数。各个部分按照顺序使用中划线“-”进行连接。
- 语言:必选,使用2个或3个小写英文字母表示(可参考ISO-639标准),例如英文使用“en”表示,中文使用“zh”表示。
- 脚本:可选,使用4个英文字母表示,其中首字母需要大写,后面3个使用小写字母(可参考ISO-15924)。例如,中文繁体使用脚本“Hant”表示,中文简体使用脚本“Hans”表示。
- 国家或地区:可选,使用两个大写字母表示(可参考ISO-3166),例如中国使用“CN”表示,美国使用“US”表示;
- 扩展参数:可选,由key和value两部分组成,目前支持以下扩展参数(可参考BCP 47扩展)。各个扩展参数之间没有严格的顺序,使用“-key-value”的格式书写。扩展参数整体使用“-u”连接到语言、脚本、地区后面。例如“zh-u-nu-latn-ca-chinese”表示使用“latn”数字系统,“chinese”日历系统。扩展参数也可以通过第二个参数传入。
I18n开发指导
本模块提供系统相关的或者增强的国际化能力,包括区域管理、电话号码处理、日历等,相关接口为ECMA 402标准中未定义的补充接口。更多接口和使用方式请见I18N。
Intl模块提供了ECMA 402标准定义的基础国际化接口,与本模块共同使用可提供完整地国际化支持能力。
获取和设置系统国际化相关信息
调用接口访问和设置系统语言、偏好语言、地区、24小时制、本地数字等国际化信息。
资源
OpenHarmony中的资源基本类型
- Resource:用于设置组件属性的值,可以通过
r
、rawfile
创建。Resource类型支持多种数据类型,如boolean
、color
、float
、intarray
、integer
、pattern
、plural
、strarray
、string
、media
等1。
- Length:用于描述尺寸单位1。
- ResourceStr:用于描述字符串入参的类型1。
- Padding:用于描述组件不同方向的内边距1。
- Margin:用于描述组件不同方向的外边距1。
- EdgeWidths:用于描述组件边框不同方向的宽度1。
资源的基本用途和分类:
- 应用资源:开发者在应用中自定义资源,自行管理这些资源在不同的设备或配置中的表现。这些资源文件需要统一存放在应用的
:ml-search[resources]
目录下,包括`base目录和限定词目录。base目录默认存在,而限定词目录需要开发者自行创建,其名称可以由一个或多个表征应用场景或设备特征的限定词组合而成。系统会根据当前设备状态优先从相匹配的限定词目录中寻找资源,只有在限定词目录中找不到资源时,才会去base目录中查找2。
- 系统资源:开发者直接使用系统预置的资源定义(即分层参数)2。