【最新鴻蒙應用開發】——鴻蒙國際化

1. 國際化

鴻蒙應用開發的國際化主要是指讓應用支持多種語言和適應不同地區的用戶習慣。這包括對不同語言環境的支持,如文本和布局的本地化設置。要實現國際化,開發者需要準備應用程序支持的每種語言環境的一些資源,比如翻譯后的文本、特定區域的圖像等。

在鴻蒙OS中,國際化的實現主要依賴于兩套API:IntlI18n

  1. Intl模塊:這個模塊提供符合ECMA 402標準的基礎國際化功能,如日期時間格式化、數字格式化等。這些功能可以幫助應用根據用戶的語言和地區設置來顯示相應的格式。

  2. I18n模塊:這個模塊提供鴻蒙OS特有的國際化功能,以及對ECMA 402標準的補充,例如區域管理、電話號碼處理等。這些功能與Intl模塊結合使用,可以提供更完整的國際化支持能力。

在具體操作上,開發者需要在應用的資源目錄下為每種語言創建相應的文件夾和資源文件。例如,對于中文,可以在resources目錄下創建zh文件夾,并在該文件夾中添加對應的類別文件,如string.json。然后,在代碼中通過特定的方法來引用這些資源,以實現多語言支持。

例如,在ArkUI開發框架中,可以通過在index.ets文件中使用$r("app.string.calculator")的方式來引用多語言資源。在i18nintl模塊中,可以使用如i18n.getSystemLanguage()來獲取設備系統語言,或者使用intl.DateTimeFormat來進行日期時間的格式化。

總的來說,鴻蒙應用開發的國際化是一個涉及多方面技術和步驟的過程,包括資源文件的配置、API的使用,以及代碼中對這些資源的正確引用。通過這些步驟,開發者可以為不同語言環境的用戶提供更好的用戶體驗。

1.1. @ohos.i18n (國際化-I18n)

本模塊提供系統相關的或者增強的國際化能力,包括區域管理、電話號碼處理、日歷等,相關接口為ECMA 402標準中未定義的補充接口。Intl模塊提供了ECMA 402標準定義的基礎國際化接口,與本模塊共同使用可提供完整地國際化支持能力。

導入模塊

import I18n from '@ohos.i18n';

System9+

getDisplayCountry9+

static getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string

獲取指定國家的本地化顯示文本。

系統能力:SystemCapability.Global.I18n

參數:

參數名類型必填說明
countrystring指定國家。
localestring顯示指定國家的區域ID。
sentenceCaseboolean本地化顯示文本是否要首字母大寫。默認值:true。

示例:

import { BusinessError } from '@ohos.base';try {let displayCountry: string = I18n.System.getDisplayCountry("zh-CN", "en-GB"); // displayCountry = "China"
} catch (error) {let err: BusinessError = error as BusinessError;console.error(`call System.getDisplayCountry failed, error code: ${err.code}, message: ${err.message}.`);
}

1.2. @ohos.intl (國際化-Intl)

本模塊提供基礎的應用國際化能力,包括時間日期格式化、數字格式化、排序等,相關接口在ECMA 402標準中定義。

I18N模塊提供其他非ECMA 402定義的國際化接口,與本模塊共同使用可提供完整地國際化支持能力。

說明

  • 本模塊首批接口從API version 6開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。

  • Intl模塊包含國際化能力基礎接口(在ECMA 402中定義),包括時間日期格式化、數字格式化、排序等,國際化增強能力請參考I18N模塊。

  • 從API version 11開始,本模塊部分接口支持在ArkTS卡片中使用。

導入模塊

import Intl from '@ohos.intl';

Locale

屬性

卡片能力:從API version 11開始,該接口支持在ArkTS卡片中使用。

系統能力:SystemCapability.Global.I18n

名稱類型必填說明
languagestring與區域設置相關的語言,如:zh。
scriptstring語言的書寫方式,如:Hans。
regionstring與區域設置相關的地區,如:CN。
baseNamestringLocale的基本核心信息(由語言腳本與地區組成),如:zh-Hans-CN。
caseFirststring區域的整理規則是否考慮大小寫,取值包括:"upper", "lower", "false"。
calendarstring區域的日歷信息,取值包括:"buddhist", "chinese", "coptic","dangi", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamic-umalqura", "islamic-tbla", "islamic-civil", "islamic-rgsa", "iso8601", "japanese", "persian", "roc", "islamicc"。
collationstring區域的排序規則,取值包括:"big5han", "compat", "dict", "direct", "ducet", "eor", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad", "unihan", "zhuyin"。
hourCyclestring區域的時制信息,取值包括:"h12", "h23", "h11", "h24"。
numberingSystemstring區域使用的數字系統,取值包括:"adlm", "ahom", "arab", "arabext", "bali", "beng", "bhks", "brah", "cakm", "cham", "deva", "diak", "fullwide", "gong", "gonm", "gujr", "guru", "hanidec", "hmng", "hmnp", "java", "kali", "khmr", "knda", "lana", "lanatham", "laoo", "latn", "lepc", "limb", "mathbold", "mathdbl", "mathmono", "mathsanb", "mathsans", "mlym", "modi", "mong", "mroo", "mtei", "mymr", "mymrshan", "mymrtlng", "newa", "nkoo", "olck", "orya", "osma", "rohg", "saur", "segment", "shrd", "sind", "sinh", "sora", "sund", "takr", "talu", "tamldec", "telu", "thai", "tibt", "tirh", "vaii", "wara", "wcho"。
numericboolean是否對數字字符具有特殊的排序規則處理。默認值:false。

constructor8+

constructor()

創建區域對象

示例:

// 默認構造函數使用系統當前locale創建Locale對象
let locale = new Intl.Locale();
// 返回系統當前locale
let localeID = locale.toString();

constructor

constructor(locale: string, options?: LocaleOptions)

創建區域對象

參數:

參數名類型必填說明
localestring區域信息的字符串,由語言、腳本、國家或地區組成。
optionsLocaleOptions用于創建區域對象的選項。

示例:

// 創建 "zh-CN" Locale對象
let locale = new Intl.Locale("zh-CN");
let localeID = locale.toString(); // localeID = "zh-CN"

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37442.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37442.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37442.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

理解論文筆記:基于貝葉斯網絡和最大期望算法的可維護性研究

看了與上一篇研究方向一致的文章,上一篇19年的,這一篇22年的更新。若有侵權,請聯系刪除。 I. INTRODUCTION 介紹 主要介紹了使用貝葉斯網絡和歷史數據對無線傳感器網絡可維護性研究的重要性和必要性,并對下面的各章進行了…

【高性能服務器】單進程服務器

🔥博客主頁: 我要成為C領域大神🎥系列專欄:【C核心編程】 【計算機網絡】 【Linux編程】 【操作系統】 ??感謝大家點贊👍收藏?評論?? 本博客致力于知識分享,與更多的人進行學習交流 ? 單進程服務器 …

深入解析MSE在深度學習回歸中的雙重角色-損失函數-評價指標

深入解析MSE在深度學習回歸中的雙重角色 在深度學習特別是回歸任務中,均方誤差(Mean Squared Error, MSE)是一種廣泛使用的方法,既可作為損失函數也可作為評價指標。這種使用方式可能會引起一些疑問:作為損失函數和評…

認識100種電路之穩壓電路

在電子電路中,穩壓電路扮演著至關重要的角色。那么,為什么電路需要穩壓?穩壓的原理又是什么?以及穩壓需要用到哪些元器件,數量又有多少呢?今天,就讓我們一同揭開穩壓電路的神秘面紗。 【電路為什…

Apple Final Cut Pro 10.8 - 專業后期制作 (視頻編輯)

Apple Final Cut Pro 10.8 - 專業后期制作 (視頻編輯) Final Cut Pro 10.8 Compressor 4.8 Motion 5.8 (Universal) 請訪問原文鏈接:https://sysin.org/blog/apple-final-cut-pro/,查看最新版。原創作品,轉載請保留出處。 作者主頁&…

供應商關系管理(SRM)中的供應商績效評估

供應商績效評估是供應商關系管理(SRM)的核心組成部分,它涉及到對供應商在合作過程中的表現進行全面的分析和評價。一個有效的供應商績效評估系統不僅可以幫助企業識別和解決供應鏈中的潛在問題,還可以促進供應商的持續改進和優化&…

7.javaSE基礎進階_設計模式和代理模式(靜態代理JDK和動態代理CGLIB)

文章目錄 一.設計模式1.簡介1)設計模式基本要素2)設計模式的分類1.模式依據其目的可分為:2.第二是范圍準則3.創建模式4.結構模式5、行為模式 2.工廠模式1)定義2)結構3)創建工廠 3.單例(Singleton)模式1)定義2)應用3)分類1.餓漢式EngerSingLeton2.懶漢式LazySingLeto…

Java學習 - Redis緩存問題與優化

緩存收益與成本 收益 加速讀寫降低后端、持久層的負載和壓力 成本 可能導致數據不一致代碼運維成本redis節點運維成本 緩存更新策略 策略一致性維護成本介紹LRU/LIRS算法剔除最差底剔除最近最少使用的數據超時剔除較差底定時刪除、惰性刪除主動更新最好高持久層更新&#x…

監控 Promethus的監控告警Alertmanager、Grafana

Promethus的監控告警Alertmanager Alertmanager 介紹 Prometheus的一個組件,用于定義和發送告警通知,內置多種第三方告警通知方式,同時還提供了對Webhook通知的支持基于警報規則對規則產生的警報進行分組、抑制和路由,并把告警發…

深入了解Spring框架的模塊組成

目錄 Spring CoreSpring ContextSpring AOPSpring DAOSpring ORMSpring WebSpring MVCSpring WebFluxSpring TestSpring BootSpring SecuritySpring BatchSpring IntegrationSpring Cloud結論 Spring Core 1.1 核心容器 Spring Core模塊是整個Spring框架的基礎。它包含了框架…

vue如何引入圖標

方法1&#xff1a;iconify/vue pnpm add iconify/vue -D 網址&#xff1a;https://icon-sets.iconify.design/ 使用哪個需要安裝 如下截圖,安裝指令&#xff1a; > npm install iconify/icons-gg在使用的頁面引入 import { Icon } from “iconify/vue”; <template>…

Mysql存儲過程用法:使用存儲過程編程,來判斷數據庫中數據表中的字段是否重復,避免重復插入記錄

目錄 一、mysql的存儲過程介紹 二、. 創建存儲過程 1、準備 2、創建插入記錄的存儲過程 三. 調用存儲過程 四. 刪除存儲過程 五. 修改存儲過程&#xff0c;避免數據表的姓名出現重復 1、修改存儲過程的方式 2、重新創建存儲過程 六. 驗證新的存儲過程 1、插入新的記…

高考后的抉擇:專業優先還是學校優先?

隨著2024年高考的帷幕落下&#xff0c;高考生們面臨的一個重要抉擇再度浮上心頭&#xff1a;在分數受限的情況下&#xff0c;是選擇一個心儀的專業&#xff0c;還是選擇一個知名度更高的學校&#xff1f;這是一個困擾了眾多考生和家長的長期難題。在這個關鍵的時刻&#xff0c;…

好用的導航網站有哪些

網址導航網站是我們日常上網的一個重要工具。它們不僅可以幫助我們快速找到所需的資源和信息&#xff0c;還能提高我們的工作效率。以下是小編收藏的幾個好用的導航網站&#xff0c;涵蓋了辦公、學習、娛樂等多個領域&#xff0c;分享給大家。 1. 辦公人導航 辦公人導航是一個…

Drag Select Compose:實現多平臺圖片多選功能的利器

Drag Select Compose:實現多平臺圖片多選功能的利器 在現代移動應用開發中,圖片多選功能是一個常見且實用的需求。而實現這種功能可能涉及到復雜的手勢處理和狀態管理。今天,我將介紹一款強大的Compose多平臺庫——Drag Select Compose,它能夠輕松實現類似于Google Photos…

【鴻蒙】第2天?裝飾器?組件和頁面生命周期

背景知識 &#xff11;?ArkTS 拓展了 TypeScript&#xff0c;TypeScript 拓展了 JavaScript。 增加了一些約束。 &#xff12;?ArkTS 是聲明式編程。 構建對象時類似構建者設計模式。鏈式賦值。 裝飾器 &#xff20;Component 自定義組件 Component裝飾器僅能裝飾str…

BGP中的TCP連接源地址問題

3.TCP連接源地址&#xff08;用loop back地址是最優選擇&#xff09; 應用場景與理論&#xff1a; 由于BGP應用于大型網絡中&#xff0c;為了避免單點失敗&#xff0c;往往需要通過多條鏈路連接&#xff0c;當一條鏈路故障時候就用另一條鏈路繼續工作&#xff0c;但是BGP又無法…

為何重要?解析企業實行網絡安全等級保護的必要性

在全球信息化迅速發展的背景下&#xff0c;企業數據資產成為核心競爭力的重要組成部分。然而&#xff0c;隨之而來的網絡安全威脅亦日益嚴峻&#xff0c;從數據泄露到勒索軟件攻擊&#xff0c;每一次安全事件都可能給企業帶來不可估量的損失。在此情境下&#xff0c;實行網絡安…

Java IO: 使用 FileReader 和 FileWriter 進行文件操作

在 Java 中&#xff0c;進行文件操作是一個常見的任務。FileReader 和 FileWriter 是用于讀取和寫入文本文件的類&#xff0c;它們提供了一種方便的方法來處理文件內容。本文將介紹如何使用 FileReader 和 FileWriter&#xff0c;并提供一些示例代碼。 FileReader 類概述 Fil…

使用PHP創建一個簡單的Web爬蟲

隨著互聯網的不斷發展&#xff0c;信息的獲取變得越來越方便。然而&#xff0c;海量的信息也給我們帶來了很多的煩惱&#xff0c;如何高效地獲取到我們所需要的信息就成了一項非常重要的任務。在實現自動化獲取信息的過程中&#xff0c;web爬蟲被廣泛應用。 Web爬蟲是一種自動…