当前位置: 首页 > news >正文

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

 国际化

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

应用支持多语言

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.lryc.cn/news/335812.html

相关文章:

  • c++子类和父类成员函数重名
  • 《C++程序设计》阅读笔记【7-堆和拷贝构造函数】
  • 洛谷 P1048 [NOIP2005 普及组] 采药
  • VMware vSphere虚拟化基础管理平台
  • leetcode刷题-代码训练营-第7章-回溯算法1
  • 三种常见webshell工具的流量特征分析
  • pkg打包nodejs程序用动态require路由出现问题
  • 设计模式(018)行为型之策略模式
  • c++关键字: =delete和=default
  • JSON
  • Python | 超前滞后分析
  • Linux CPU利用率
  • vue3实现导出pdf、png功能
  • what is tty?
  • 在vite中限制node版本
  • 07 Php学习:运算符
  • 做了多年前端,有没有想在python,go,nodejs,.net,java,c++中学一门后端,推荐
  • JR-SMD201-P便携式网络解码器
  • 线程池阻塞队列的选择
  • linux内核驱动-在内核代码里添加设备结点
  • 【算法优选】 动态规划之简单多状态dp问题——贰
  • 【算法刷题 | 二叉树 06】4.10( 路径总和、路径总和 || )
  • 代码学习记录37----动态规划
  • Spring Boot:Web开发之三大组件的整合
  • 2024.3.15力扣每日一题——卖木头块
  • vue快速入门(七)内联语句
  • Docker实战教程 第2章 Docker基础
  • 【S32K3 MCAL配置】-3.2-CANFD配置-发送“经典CAN/CANFD标准帧“和“经典CAN/CANFD扩展帧“(基于MCAL+FreeRTOS)
  • 【airtest】自动化入门教程(四)Poco元素定位
  • Go语言中如何处理goroutine和循环变量