0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-11 09:40 次阅读

国际化

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

应用支持多语言

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

添加多语言数据

  • resources目录下创建 zh / element 文件夹目录后,添加 string.json 文件:
    2_6_1_1
    笔者分别在 zh 目录下的 string.jsonbase 目录下的 string.json 中添加了一个 json 数据, name 都是 calculatorvalue 一个是英文一个中文。

使用多语言数据

|

使用 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
    }
    

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    57

    文章

    2306

    浏览量

    42736
  • HarmonyOS
    +关注

    关注

    79

    文章

    1967

    浏览量

    30006
  • OpenHarmony
    +关注

    关注

    25

    文章

    3658

    浏览量

    16135
收藏 人收藏

    评论

    相关推荐

    鸿蒙开发接口资源管理:【@ohos.intl (国际化-Intl)】

    Intl模块包含国际化能力基础接口(在ECMA 402中定义)。
    的头像 发表于 06-03 09:28 846次阅读
    鸿蒙<b class='flag-5'>开发</b>接口资源管理:【@ohos.intl (<b class='flag-5'>国际化</b>-Intl)】

    Qt多国语言(国际化)问题小结

    的需求,笔者就教学与项目开发中的经历,小结了Qt多国语言(国际化)问题,仅供参考。 假设我们已经建好一个工程,且可以运行出基本的界面。1、打开项目工程文件QTDemo.pro,添加如下语句
    发表于 05-18 10:35

    OpenHarmony设置zh_CN国际化以后总是报错的原因是什么

    OpenHarmony [Standard]Empty Ability模板new一个新项目设置zh_CN国际化以后一直提示或在zh_element 的字符串。总是在哪里提示以下错误,或者在下
    发表于 04-19 11:09

    开启OpenHarmony应用开发之旅

    据管理后台代理提醒后台任务管理设备管理设备使用信息统计DFX国际化工具DevEco Studio工具是OpenHarmony应用开发的推荐IDE工具。在工具部分,讲解了DevEco Studio工具
    发表于 05-12 13:49

    OpenHarmony数据转码应用开发实战(下)

    OpenHarmony数据转码应用开发实战(中)》我们讲述了核心解转码工具包的实现,以及UI组件数据绑定,那么接下来将讲述项目的国际化适配、调测和发布。2 国际化适配
    发表于 11-10 09:31

    中软国际教培开发板通过OpenHarmony兼容性测评

    兼容性测评,获颁OpenHarmony生态产品兼容性证书。OpenHarmony兼容性测评是保障OpenHarmony生态产品在统一技术底座支持下互联互通的关键一环,此次教培
    发表于 12-22 11:26

    浅议基于JSF的Java国际化编程及其实现

    本文从实际操作的角度,讨论了利用JSF 开发Web 应用程序时实现程序的国际化和本地的方法。提出了解决应用程序国际化的MVC-R 四层框架模型。
    发表于 01-27 13:47 9次下载

    柳传志谈联想国际化:看中目标拐大弯

    柳传志谈联想国际化:看中目标拐大弯 然而,无论从哪个角度来说,联想国际化都是一种必然与必须。按照张瑞敏的说法,“如果不国际化,风险可能更大”。1994年,
    发表于 12-21 17:27 493次阅读

    iOS的国际化功能方便了APP走向国际

    iOS的国际化功能可以使APP很方便的在不同国家的不同语言之间进行切换,大大的方便了APP走向国际国际化的时候主要分为三个方面的国际化:InfoPlist、Xib/Storyboar
    发表于 09-22 19:26 0次下载
    iOS的<b class='flag-5'>国际化</b>功能方便了APP走向<b class='flag-5'>国际</b>

    携安世半导体迈入A股 闻泰科技更加国际化

    闻泰是有国际梦想的公司,我们希望从过去服务中国的品牌,到现在服务全球的品牌,我们也是希望依托安世的国际化,能够让我们闻泰科技也更加国际化
    的头像 发表于 11-15 16:51 2945次阅读

    剑指国际化,谁能抢滩新大陆?

    这次在央视还曾讨论国际化的议题,当时还不出名的拼多多创始人黄峥作为嘉宾,建议张一鸣更加激进的做国际化:“当你整个公司布局到全球,并且反过来用全球的资源,集中回来打中国市场的时候,会更加从容一些。”
    的头像 发表于 06-18 15:58 4481次阅读

    国际化测试和本地测试的特点和区别

    软件的国际化和软件的本地开发面向全球不同地区用户使用的软件系统的两个过程。而本地测试和国际化测试则是针对这类软件产品进行的测试。由于软
    的头像 发表于 06-29 11:29 5234次阅读

    鸿蒙实战开发:【国际化部件】

    **国际化部件**为应用提供了一系列国际化接口,包括:时间日期格式、数字格式、月份星期格式、单复数、度量衡等相关接口。基于这些
    的头像 发表于 03-21 22:07 293次阅读
    鸿蒙实战<b class='flag-5'>开发</b>:【<b class='flag-5'>国际化</b>部件】

    中软国际教育科技集团助力职业教育国际化发展

    近日,京津冀职业教育国际化合作发展联盟(后简称“联盟”)成立大会暨职业教育国际合作交流研讨会在北京信息职业技术学院隆重召开。中软国际教育科技集团在本次成立大会上受聘联盟第一届理事会常务
    的头像 发表于 10-10 11:26 379次阅读

    OpenHarmony城市技术论坛第11期(香港站)【智能终端操作系统技术国际化生态构建】大咖齐聚

    OpenHarmony城市技术论坛——第11期(香港站) 【主题:智能终端操作系统技术国际化生态构建】 专家齐聚,精彩来袭,议题揭晓,不容错过! 时间 : 2:00 - 5:30 P
    的头像 发表于 11-11 10:48 175次阅读
    <b class='flag-5'>OpenHarmony</b>城市<b class='flag-5'>技术</b>论坛第11期(香港站)【智能终端操作系统<b class='flag-5'>技术</b>与<b class='flag-5'>国际化</b>生态构建】大咖齐聚