0
点赞
收藏
分享

微信扫一扫

OPenHarmony国际化开发


国际化开发

当应用具有多个在语言、时区、区域特性等方面存在显著差异的目标用户和市场时,开发者往往需要提供应用的多个本地化版本,以保证不同地区用户的体验。

应用的国际化能力决定了应用本地化过程的难易程度。系统提供了一系列的国际化接口,基于这些国际化接口,开发者可以设计并实现具有良好国际化能力的应用,从而可以高效、低成本的实现应用的本地化。

基本概念

  • Locale:Locale是对一个群体在语言、脚本、国家或区域,以及日历、排序、货币等区域特性方面的共性的抽象表示。
  • 偏好语言:偏好语言是用户设置过的语言,表示该语言是用户可接受的语言。用户可以在 设置/系统和更新/语言和输入法/语言和地区/添加语言中添加偏好语言。

运作机制

在调用国际化接口时,需要提供Locale信息,接口会依据该Locale的特性进行差异化的执行。Locale信息可以由开发人员通过硬编码的方式提供,但更通常的情况是使用用户设置的系统语言和区域。

获取系统语言区域信息

调用系统提供的接口访问系统的语言区域信息。

接口说明

模块

接口名称

描述

ohos.i18n

getSystemLanguage():string

获取系统语言。

ohos.i18n

getSystemRegion():string

获取系统区域。

ohos.i18n

getSystemLocale():string

获取系统Locale。

ohos.i18n

isRTL(locale:string):boolean7+

locale对应的语言是否为从右到左语言。

ohos.i18n

is24HourClock():boolean7+

获取当前系统时间是否采用24小时制。

ohos.i18n

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

获取语言的本地化表示。

ohos.i18n

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

获取国家的本地化表示。

开发步骤

  1. 获取系统语言。
    调用getSystemLanguage方法获取当前系统设置的语言(i18n为导入的模块)。

var language = i18n.getSystemLanguage();

  1. 获取系统区域。
    调用getSystemRegion方法获取当前系统设置的区域

var region = i18n.getSystemRegion();

  1. 获取系统Locale。
    调用getSystemLocale方法获取当前系统设置的Locale

var locale = i18n.getSystemLocale();

  1. 判断Locale的语言是否为RTL语言。
    调用isRTL方法获取Locale的语言是否为从右到左语言。

var rtl = i18n.isRTL("zh-CN");

  1. 判断当前系统时间是否采用24小时制。
    调用is24HourClock方法来判断当前系统的时间是否采用24小时制。

var hourClock = i18n.is24HourClock();

  1. 获取语言的本地化表示。
    调用getDisplayLanguage方法获取某一语言的本地化表示。其中,language表示待本地化显示的语言,locale表示本地化的Locale,sentenceCase结果是否需要首字母大写。

var language = "en";
var locale = "zh-CN";
var sentenceCase = false;
var localizedLanguage = i18n.getDisplayLanguage(language, locale, sentenceCase);

  1. 获取国家的本地化表示。
    调用getDisplayCountry方法获取某一国家的本地化表示。其中,country表示待本地化显示的国家,locale表示本地化的Locale,sentenceCase结果是否需要首字母大写。

var country = "US";
var locale = "zh-CN";
var sentenceCase = false;
var localizedCountry = i18n.getDisplayCountry(country, locale, sentenceCase);

举报

相关推荐

0 条评论