智能客服
你问我答,随时在线为你解决问题
在设置的“语言和地区”中可以添加多种语言,多种语言形成的列表称为语言列表,列表中的第一个语言称为系统语言。系统区域是依据区域ID划分的特定地区。
设置/切换系统语言时,系统会检查扩展参数与系统语言是否匹配,若不匹配,则删除扩展参数。例如,当前系统语言设置为阿拉伯语“ar”时,使用本地数字为“arab”。当系统语言切换为马来西亚语“my”时,本地数字参数更改为马来西亚的本地数字“mymr”。当切换为中文时,因中文不支持设置本地数字,采用阿拉伯数字,因此本地数字的扩展参数会被移除。
从API version 21开始,开发者可以在开发者模式下通过param工具的“param get persist.global.language”命令获取系统语言。
接口具体使用方法和说明请参考System的API接口文档。
导入模块。
- import { i18n } from '@kit.LocalizationKit';
- import { BusinessError, commonEventManager } from '@kit.BasicServicesKit';
使用场景。
获取系统语言、系统地区、系统区域。
- // 获取系统语言
- let systemLanguage = i18n.System.getSystemLanguage(); // systemLanguage为当前系统语言
-
- // 获取系统地区
- let systemRegion = i18n.System.getSystemRegion(); // systemRegion为当前系统地区
-
- // 获取系统区域
- let systemLocale: Intl.Locale = i18n.System.getSystemLocaleInstance(); // systemLocale为当前系统区域
-
- // 通过监听公共事件COMMON_EVENT_LOCALE_CHANGED可以感知系统语言、系统地区或系统区域变化
- let subscriber: commonEventManager.CommonEventSubscriber; // 用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作
- let subscribeInfo: commonEventManager.CommonEventSubscribeInfo = {
- events: [commonEventManager.Support.COMMON_EVENT_LOCALE_CHANGED]
- };
- // 创建订阅者
- commonEventManager.createSubscriber(subscribeInfo)
- .then((commonEventSubscriber: commonEventManager.CommonEventSubscriber) => {
- console.info('CreateSubscriber');
- subscriber = commonEventSubscriber;
- commonEventManager.subscribe(subscriber, (err, data) => {
- if (err) {
- console.error(`Failed to subscribe common event. error code: ${err.code}, message: ${err.message}.`);
- return;
- }
- console.info('The subscribed event has occurred.'); // 系统语言、系统地区或系统区域变化时执行
- })
- })
- .catch((err: BusinessError) => {
- console.error(`CreateSubscriber failed, code is ${err.code}, message is ${err.message}`);
- });
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功