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 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值