OpenHarmony开发技术:【国际化】实例

news/2025/1/15 18:19:08/

 国际化

如今越来的越多的应用都走向了海外,应用走向海外需要支持不同国家的语言,这就意味着应用资源文件需要支持不同语言环境下的显示。本节就介绍一下设备语言环境变更后,如何让应用支持多语言。

应用支持多语言

ArkUI开发框架对多语言的支持比较友好,只需要在 resources 目录下创建对应国家的文件夹,名称对国家简码,例如中国为 zh ,则在 resources 下创建 zh 文件夹,然后在 zh 文件下创建对应的类别文件,笔者以文本资源支持多语言为例。

添加多语言数据

  • resources目录下创建 zh / element 文件夹目录后,添加 string.json 文件:

    2_6_1_1

    笔者分别在 zh 目录下的 string.json 和 base 目录下的 string.json 中添加了一个 json 数据, name 都是 calculator , value 一个是英文一个中文。

使用多语言数据

鸿蒙OS开发更多内容↓点击HarmonyOS与OpenHarmony技术
鸿蒙技术文档开发知识更新库gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在这。

使用 resources 目录下的资源,ArkUI开发框架给我们提供了快捷方法: ()∗∗,比如要访问 ∗∗string.json∗∗ 中的资源,可以简写 ∗∗('app.string.name') ,笔者在第 3 节有介绍  $()  的使用,读者请自行查看。

  • 在 index.ets 里使用添加的多语言,代码如下:

    @Entry @Component struct Index {build() {Column({space: 10}) {Text('多语言测试:').fontSize(22)Text($r("app.string.calculator")) // 使用多语言.fontSize(22)}.padding(10).width('100%').height('100%')}
    }

i18n和intl简介

搜狗高速浏览器截图20240326151547.png

让APP支持多语言可以采取资源本地化的操作,当设备语言环境变更后系统会自动读取对应的资源,当需要手动获取语言环境相关信息时,可以使用 @ohos.i18n 和 @ohos.intl 模块提供的相关 API 实现。

  • i18n模块

    declare namespace i18n {// 获取设备系统语言export function getSystemLanguage(): string;// 设置设备系统语言export function setSystemLanguage(language: string): boolean;// 获取设备系统地区export function getSystemRegion(): string;// 获取时区ID对应的时区对象export function getTimeZone(zoneID?: string): TimeZone;// 省略部分API
    }
    export default i18n;

    i18n 主要提供的是获取系统信息,比如当前系统语言,系统区域等,预了解更多信息读者可参考官方文档或者源码,

    aboutToAppear() {let language = i18n.getSystemLanguage();console.log(language);// 输出:zh-Hans-CN
    }

  • intl模块

    declare namespace intl {// 区域初始化选项。export interface LocaleOptions {}// 区域信息设置对象export class Locale {}// 时间日期格式化选项。export interface DateTimeOptions {}// 日期格式化对象export class DateTimeFormat {}// 数字格式化选项export interface NumberOptions {}// 数字格式化对象export class NumberFormat {}// 省略相关 API
    }
    export default intl;

    @ohos.intl 模块提供了信息在不同区域的差异化能力,比如日期显示,在不同的国家显示格式是不一样的,可以采用DateTimeFormat 获取不同的显示方式:

    aboutToAppear() {let date = new Date(2022, 5, 1, 17, 45, 30);   // 创建日期var datefmt= new intl.DateTimeFormat("en-GB"); // 格式化对象console.log(datefmt.format(date));             // 输出01/06/2022
    }

鸿蒙开发岗位需要掌握那些核心要领?

目前还有很多小伙伴不知道要学习哪些鸿蒙技术?不知道重点掌握哪些?为了避免学习时频繁踩坑,最终浪费大量时间的。

自己学习时必须要有一份实用的鸿蒙(Harmony NEXT)资料非常有必要。 这里我推荐,根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。

废话就不多说了,接下来好好看下这份资料。

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙OpenHarmony知识←前往。下面是鸿蒙开发的学习路线图。

针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

其中内容包含:

《鸿蒙开发基础》鸿蒙OpenHarmony知识←前往

  1. ArkTS语言
  2. 安装DevEco Studio
  3. 运用你的第一个ArkTS应用
  4. ArkUI声明式UI开发
  5. .……

《鸿蒙开发进阶》鸿蒙OpenHarmony知识←前往

  1. Stage模型入门
  2. 网络管理
  3. 数据管理
  4. 电话服务
  5. 分布式应用开发
  6. 通知与窗口管理
  7. 多媒体技术
  8. 安全技能
  9. 任务管理
  10. WebGL
  11. 国际化开发
  12. 应用测试
  13. DFX面向未来设计
  14. 鸿蒙系统移植和裁剪定制
  15. ……

《鸿蒙开发实战》鸿蒙OpenHarmony知识←前往

  1. ArkTS实践
  2. UIAbility应用
  3. 网络案例
  4. ……

最后

鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!


http://www.ppmy.cn/news/1413415.html

相关文章

如何保证消息不丢失?——使用rabbitmq的死信队列!

如何保证消息不丢失?——使用rabbitmq的死信队列! 1、什么是死信 在 RabbitMQ 中充当主角的就是消息,在不同场景下,消息会有不同地表现。 死信就是消息在特定场景下的一种表现形式,这些场景包括: 消息被拒绝访问&am…

【MATLAB源码-第184期】基于matlab的FNN预测人民币美元汇率 输出预测图误差图RMSE R2 MAE MBE等指标

操作环境: MATLAB 2022a 1、算法描述 前馈神经网络(Feedforward Neural Network, FNN)是最简单也是应用最广泛的人工神经网络之一。在许多领域,尤其是数据预测方面,FNN已经展现出了卓越的性能和强大的适应性。 一、…

数据的属性与相似性

目录 一、数据集的结构(一)二维表(二)数据矩阵 二、属性的类型(一)连续属性(二)离散属性(三)分类属性(四)二元属性(五&…

springBoot 在过滤器中如何捕获抛出的异常并自定义返回信息 (Filter doFilter)解决方案

在使用 servlet 过滤器时 发现异常报错 不准确,定义的 全局异常处理 好像失效了,过滤器里报错每次都会返回 状态码 :500 错误信息为 “Internal Server Error” 真正的异常只能输出的控制台,抛出不到前端。 问题: 一般…

从零开始学习二分算法

二分算法的定义: 二分算法(Binary Search Algorithm)是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于…

【UE5 C++】UBT与UHT

UE有一组用于自动执行编译虚幻引擎过程的工具,包括 虚幻编译工具(UnrealBuildTool) 和 虚幻头工具(UnrealHeaderTool)(以及其他工具)。实现这一套工具的目的是为了简化多平台编译,方…

zabbix监控警告

监控概述 对服务的管理,不能仅限于可用性。 还需要服务可以安全、稳定、高效地运行。 监控的目的:早发现、早治疗。 被监控的资源类型: 公开数据:对外开放的,不需要认证即可获取的数据 私有数据:对外不…

MySQL innoDB存储引擎多事务场景下的事务执行情况

一、背景 在日常开发中,对不同事务之间的隔离情况等理解如果不够清晰,很容易导致代码的效果和预期不符。因而在这对一些存在疑问的场景进行模拟。 下面的例子全部基于innoDB存储引擎。 二、场景: 2.1、两个事务修改同一行记录 正常来说&…