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

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

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

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-11 09:40 ? 次閱讀

國際化

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

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

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

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

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

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

|

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

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

  • i18n模塊

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

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

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

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

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

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

審核編輯 黃宇

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

    關(guān)注

    57

    文章

    2291

    瀏覽量

    42631
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1956

    瀏覽量

    29903
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3611

    瀏覽量

    15959
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    華為的國際化怪圈如何破解

    貝恩資本與華為試圖聯(lián)合收購美國3Com公司,但也是因未通過CFIUS的審查而最終失敗,一直在國際化征途上攻城略地的華為,似乎進(jìn)入了一個怪圈
    發(fā)表于 03-25 10:42 ?996次閱讀

    Qt多國語言(國際化)問題小結(jié)

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

    OpenHarmony設(shè)置zh_CN國際化以后總是報錯的原因是什么

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

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

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

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

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

    中軟國際教培開發(fā)板通過OpenHarmony兼容性測評

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

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

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

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

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

    iOS的國際化功能方便了APP走向國際

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

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

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

    劍指國際化,誰能搶灘新大陸?

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

    國際化測試和本地測試的特點和區(qū)別

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

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

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

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

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