0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony開發(fā)技術(shù):【國(guó)際化】實(shí)例

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-11 09:40 ? 次閱讀

國(guó)際化

如今越來(lái)的越多的應(yīng)用都走向了海外,應(yīng)用走向海外需要支持不同國(guó)家的語(yǔ)言,這就意味著應(yīng)用資源文件需要支持不同語(yǔ)言環(huán)境下的顯示。本節(jié)就介紹一下設(shè)備語(yǔ)言環(huán)境變更后,如何讓應(yīng)用支持多語(yǔ)言。

應(yīng)用支持多語(yǔ)言

ArkUI開發(fā)框架對(duì)多語(yǔ)言的支持比較友好,只需要在 resources 目錄下創(chuàng)建對(duì)應(yīng)國(guó)家的文件夾,名稱對(duì)國(guó)家簡(jiǎn)碼,例如中國(guó)為 zh ,則在 resources 下創(chuàng)建 zh 文件夾,然后在 zh 文件下創(chuàng)建對(duì)應(yīng)的類別文件,筆者以文本資源支持多語(yǔ)言為例。

添加多語(yǔ)言數(shù)據(jù)

  • resources目錄下創(chuàng)建 zh / element 文件夾目錄后,添加 string.json 文件:
    2_6_1_1
    筆者分別在 zh 目錄下的 string.jsonbase 目錄下的 string.json 中添加了一個(gè) json 數(shù)據(jù), name 都是 calculatorvalue 一個(gè)是英文一個(gè)中文。

使用多語(yǔ)言數(shù)據(jù)

|

使用 resources 目錄下的資源,ArkUI開發(fā)框架給我們提供了快捷方法: () ,比如要訪問 string.json 中的資源,可以簡(jiǎn)寫 ('app.string.name') ,筆者在第 3 節(jié)有介紹 [$()] 的使用,讀者請(qǐng)自行查看。

  • index.ets 里使用添加的多語(yǔ)言,代碼如下:
    @Entry @Component struct Index {
    
      build() {
        Column({space: 10}) {
          Text('多語(yǔ)言測(cè)試:')
            .fontSize(22)
          Text($r("app.string.calculator")) // 使用多語(yǔ)言
            .fontSize(22)
        }
        .padding(10)
        .width('100%')
        .height('100%')
      }
    }
    

i18n和intl簡(jiǎn)介

搜狗高速瀏覽器截圖20240326151547.png

讓APP支持多語(yǔ)言可以采取資源本地化的操作,當(dāng)設(shè)備語(yǔ)言環(huán)境變更后系統(tǒng)會(huì)自動(dòng)讀取對(duì)應(yīng)的資源,當(dāng)需要手動(dòng)獲取語(yǔ)言環(huán)境相關(guān)信息時(shí),可以使用 @ohos.i18n@ohos.intl 模塊提供的相關(guān) API 實(shí)現(xiàn)。

  • i18n模塊

    declare namespace i18n {
      // 獲取設(shè)備系統(tǒng)語(yǔ)言
      export function getSystemLanguage(): string;
      // 設(shè)置設(shè)備系統(tǒng)語(yǔ)言
      export function setSystemLanguage(language: string): boolean;
      // 獲取設(shè)備系統(tǒng)地區(qū)
      export function getSystemRegion(): string;
      // 獲取時(shí)區(qū)ID對(duì)應(yīng)的時(shí)區(qū)對(duì)象
      export function getTimeZone(zoneID?: string): TimeZone;
    
      // 省略部分API
    }
    export default i18n;
    

    i18n 主要提供的是獲取系統(tǒng)信息,比如當(dāng)前系統(tǒng)語(yǔ)言,系統(tǒng)區(qū)域等,預(yù)了解更多信息讀者可參考官方文檔或者源碼,

    aboutToAppear() {
      let language = i18n.getSystemLanguage();
      console.log(language);// 輸出:zh-Hans-CN
    }
    
  • intl模塊

    declare namespace intl {
    
      // 區(qū)域初始化選項(xiàng)。
      export interface LocaleOptions {
      }
    
      // 區(qū)域信息設(shè)置對(duì)象
      export class Locale {
      }
    
      // 時(shí)間日期格式化選項(xiàng)。
      export interface DateTimeOptions {
      }
    
      // 日期格式化對(duì)象
      export class DateTimeFormat {
      }
    
      // 數(shù)字格式化選項(xiàng)
      export interface NumberOptions {
      }
    
      // 數(shù)字格式化對(duì)象
      export class NumberFormat {
      }
    
      // 省略相關(guān) API
    }
    export default intl;
    

    @ohos.intl 模塊提供了信息在不同區(qū)域的差異化能力,比如日期顯示,在不同的國(guó)家顯示格式是不一樣的,可以采用DateTimeFormat 獲取不同的顯示方式:

    aboutToAppear() {
      let date = new Date(2022, 5, 1, 17, 45, 30);   // 創(chuàng)建日期
      var datefmt= new intl.DateTimeFormat("en-GB"); // 格式化對(duì)象
      console.log(datefmt.format(date));             // 輸出01/06/2022
    }
    

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2358

    瀏覽量

    42876
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1977

    瀏覽量

    30234
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3723

    瀏覽量

    16340
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙開發(fā)接口資源管理:【@ohos.intl (國(guó)際化-Intl)】

    Intl模塊包含國(guó)際化能力基礎(chǔ)接口(在ECMA 402中定義)。
    的頭像 發(fā)表于 06-03 09:28 ?892次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b>接口資源管理:【@ohos.intl (<b class='flag-5'>國(guó)際化</b>-Intl)】

    Qt多國(guó)語(yǔ)言(國(guó)際化)問題小結(jié)

    的需求,筆者就教學(xué)與項(xiàng)目開發(fā)中的經(jīng)歷,小結(jié)了Qt多國(guó)語(yǔ)言(國(guó)際化)問題,僅供參考。 假設(shè)我們已經(jīng)建好一個(gè)工程,且可以運(yùn)行出基本的界面。1、打開項(xiàng)目工程文件QTDemo.pro,添加如下語(yǔ)句
    發(fā)表于 05-18 10:35

    OpenHarmony設(shè)置zh_CN國(guó)際化以后總是報(bào)錯(cuò)的原因是什么

    OpenHarmony [Standard]Empty Ability模板new一個(gè)新項(xiàng)目設(shè)置zh_CN國(guó)際化以后一直提示或在zh_element 的字符串??偸窃谀睦锾崾疽韵洛e(cuò)誤,或者在下
    發(fā)表于 04-19 11:09

    開啟OpenHarmony應(yīng)用開發(fā)之旅

    據(jù)管理后臺(tái)代理提醒后臺(tái)任務(wù)管理設(shè)備管理設(shè)備使用信息統(tǒng)計(jì)DFX國(guó)際化工具DevEco Studio工具是OpenHarmony應(yīng)用開發(fā)的推薦IDE工具。在工具部分,講解了DevEco Studio工具
    發(fā)表于 05-12 13:49

    OpenHarmony數(shù)據(jù)轉(zhuǎn)碼應(yīng)用開發(fā)實(shí)戰(zhàn)(下)

    OpenHarmony數(shù)據(jù)轉(zhuǎn)碼應(yīng)用開發(fā)實(shí)戰(zhàn)(中)》我們講述了核心解轉(zhuǎn)碼工具包的實(shí)現(xiàn),以及UI組件數(shù)據(jù)綁定,那么接下來(lái)將講述項(xiàng)目的國(guó)際化適配、調(diào)測(cè)和發(fā)布。2 國(guó)際化適配
    發(fā)表于 11-10 09:31

    中軟國(guó)際教培開發(fā)板通過OpenHarmony兼容性測(cè)評(píng)

    兼容性測(cè)評(píng),獲頒OpenHarmony生態(tài)產(chǎn)品兼容性證書。OpenHarmony兼容性測(cè)評(píng)是保障OpenHarmony生態(tài)產(chǎn)品在統(tǒng)一技術(shù)底座支持下互聯(lián)互通的關(guān)鍵一環(huán),此次教培
    發(fā)表于 12-22 11:26

    淺議基于JSF的Java國(guó)際化編程及其實(shí)現(xiàn)

    本文從實(shí)際操作的角度,討論了利用JSF 開發(fā)Web 應(yīng)用程序時(shí)實(shí)現(xiàn)程序的國(guó)際化和本地的方法。提出了解決應(yīng)用程序國(guó)際化的MVC-R 四層框架模型。
    發(fā)表于 01-27 13:47 ?9次下載

    柳傳志談聯(lián)想國(guó)際化:看中目標(biāo)拐大彎

    柳傳志談聯(lián)想國(guó)際化:看中目標(biāo)拐大彎 然而,無(wú)論從哪個(gè)角度來(lái)說,聯(lián)想國(guó)際化都是一種必然與必須。按照張瑞敏的說法,“如果不國(guó)際化,風(fēng)險(xiǎn)可能更大”。1994年,
    發(fā)表于 12-21 17:27 ?502次閱讀

    iOS的國(guó)際化功能方便了APP走向國(guó)際

    iOS的國(guó)際化功能可以使APP很方便的在不同國(guó)家的不同語(yǔ)言之間進(jìn)行切換,大大的方便了APP走向國(guó)際。國(guó)際化的時(shí)候主要分為三個(gè)方面的國(guó)際化:InfoPlist、Xib/Storyboar
    發(fā)表于 09-22 19:26 ?0次下載
    iOS的<b class='flag-5'>國(guó)際化</b>功能方便了APP走向<b class='flag-5'>國(guó)際</b>

    攜安世半導(dǎo)體邁入A股 聞泰科技更加國(guó)際化

    聞泰是有國(guó)際夢(mèng)想的公司,我們希望從過去服務(wù)中國(guó)的品牌,到現(xiàn)在服務(wù)全球的品牌,我們也是希望依托安世的國(guó)際化,能夠讓我們聞泰科技也更加國(guó)際化。
    的頭像 發(fā)表于 11-15 16:51 ?2975次閱讀

    劍指國(guó)際化,誰(shuí)能搶灘新大陸?

    這次在央視還曾討論國(guó)際化的議題,當(dāng)時(shí)還不出名的拼多多創(chuàng)始人黃崢作為嘉賓,建議張一鳴更加激進(jìn)的做國(guó)際化:“當(dāng)你整個(gè)公司布局到全球,并且反過來(lái)用全球的資源,集中回來(lái)打中國(guó)市場(chǎng)的時(shí)候,會(huì)更加從容一些?!?/div>
    的頭像 發(fā)表于 06-18 15:58 ?4519次閱讀

    國(guó)際化測(cè)試和本地測(cè)試的特點(diǎn)和區(qū)別

    軟件的國(guó)際化和軟件的本地開發(fā)面向全球不同地區(qū)用戶使用的軟件系統(tǒng)的兩個(gè)過程。而本地測(cè)試和國(guó)際化測(cè)試則是針對(duì)這類軟件產(chǎn)品進(jìn)行的測(cè)試。由于軟
    的頭像 發(fā)表于 06-29 11:29 ?5290次閱讀

    鴻蒙實(shí)戰(zhàn)開發(fā):【國(guó)際化部件】

    **國(guó)際化部件**為應(yīng)用提供了一系列國(guó)際化接口,包括:時(shí)間日期格式、數(shù)字格式、月份星期格式、單復(fù)數(shù)、度量衡等相關(guān)接口。基于這些
    的頭像 發(fā)表于 03-21 22:07 ?325次閱讀
    鴻蒙實(shí)戰(zhàn)<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>國(guó)際化</b>部件】

    中軟國(guó)際教育科技集團(tuán)助力職業(yè)教育國(guó)際化發(fā)展

    近日,京津冀職業(yè)教育國(guó)際化合作發(fā)展聯(lián)盟(后簡(jiǎn)稱“聯(lián)盟”)成立大會(huì)暨職業(yè)教育國(guó)際合作交流研討會(huì)在北京信息職業(yè)技術(shù)學(xué)院隆重召開。中軟國(guó)際教育科技集團(tuán)在本次成立大會(huì)上受聘聯(lián)盟第一屆理事會(huì)常務(wù)
    的頭像 發(fā)表于 10-10 11:26 ?442次閱讀

    OpenHarmony城市技術(shù)論壇第11期(香港站)【智能終端操作系統(tǒng)技術(shù)國(guó)際化生態(tài)構(gòu)建】大咖齊聚

    OpenHarmony城市技術(shù)論壇——第11期(香港站) 【主題:智能終端操作系統(tǒng)技術(shù)國(guó)際化生態(tài)構(gòu)建】 專家齊聚,精彩來(lái)襲,議題揭曉,不容錯(cuò)過! 時(shí)間 : 2:00 - 5:30 P
    的頭像 發(fā)表于 11-11 10:48 ?274次閱讀
    <b class='flag-5'>OpenHarmony</b>城市<b class='flag-5'>技術(shù)</b>論壇第11期(香港站)【智能終端操作系統(tǒng)<b class='flag-5'>技術(shù)</b>與<b class='flag-5'>國(guó)際化</b>生態(tài)構(gòu)建】大咖齊聚