簡介
國際化部件為應用提供了一系列國際化接口,包括:時間日期格式化、數字格式化、月份星期格式化、單復數、度量衡等相關接口。基于這些國際化接口,開發者可以設計并實現具有良好國際化能力的應用,從而可以高效、低成本的實現應用的本地化。國際化部件支持如下設備:Multi-modal V200Z-R BES2600。
國際化部件架構圖說明:
- Kits為提供的c++國際化接口。
- frameworks為c++接口的底層c++實現。
- binary data generate tool為數據打包工具。數據打包工具的輸入為文本數據文件,輸出為二進制數據文件i18n.dat,i18n.dat中包含了國際化接口所依賴的國際化數據。數據打包工具位于tools/i18n-dat-tool目錄下,i18n.dat位于frameworks目錄下。 數據打包工具的使用方法:執行tools/i18n-dat-tool/src/main/java/ohos/global/i18n/Fetcher.java中的main方法。
- source data文本格式的國際化數據,位于tools/i18n-dat-tool/resource目錄下。
鴻蒙知識已更新完整gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
可以前往參考。
或者添+mau123789是衛心
說明
- 提供時間日期格式化接口,使時間日期格式(如年月日順序、月份和星期詞匯、使用12或24小時制等)跟隨系統設置滿足不同區域用戶的文化習慣。更詳細的內容見API文檔。示例如下:
#include "date_time_format.h" using namespace OHOS::I18N LocaleInfo locale("zh", "Hans", "CN"); // 獲得區域 DateTimeFormat formatter(AvailableDateTimeFormatPattern::HOUR_MINUTE, locale); // 初始化時間日期示例,并獲取該區域時間格式化所需數據,第一個參數為時間日期格式化模板類型,所支持的模板類型見API文檔types.h time_t time = 3600 * 3; // 所需要格式化的時間 std::string zoneInfo = "+1:00"; // 設置時區,相對于UTC 0時區加一小時 std::string out; // 時間日期格式化結果保存在out中 Ii8nStatus status = Ii8nStatus::ISUCCESS; formatter.Format(time, zoneInfo, out, status); // 判斷status狀態 output: 4:00
- 提供數字格式化接口,使數字格式(如數字體系、數字分組、小數點、百分號等)跟隨應用系統設置滿足不同區域用戶的文化習慣。更詳細的內容見API文檔。示例如下:
#include "number_format.h" using namespace OHOS::I18N LocaleInfo locale("en", "US"); int status = 0; NumberFormat formatter(locale, status); // 初始化數據格式化實例,并獲取指定locale數字格式化所需數據;status為初始化的結果,等于1時表示初始化失敗 int num = 1234 std::string out = formatter.Format(num, status); // 判斷status狀態 output: 1,234
- 提供獲取指定區域月份、星期不同格式名稱的能力。示例如下:
#include "date_time_format.h" using namespace OHOS::I18N LocaleInfo locale("en", "US"); // 獲得區域 DateTimeFormat formatter(AvailableDateTimeFormatPattern::HOUR_MINUTE, locale); std::string month = formatter.GetMonthName(0, DateTimeDataType::FORMAT_WIDE); // 獲取format類型的長格式 output: January
- 不同語言下名稱跟隨數字有不同的表達,如英文下會有:“one apple”、“two apples”。單復數規范總結多種語言的語法規范將名詞的單數和復數形式劃分為zero、one、two、few、many、other六種類型。不同語言支持不同數量的單復數類型,如中文只支持other一種,英文支持one和other兩種,阿拉伯語支持全部6種類型。提供單復數接口來計算不同語言下不同數字時應該使用的名詞復數類型,使“數字+名詞”這種表達形式跟隨應用語言滿足不同語言用戶的文化習慣。示例如下:
#include "plural_format.h" using namespace OHOS::I18N Locale locale("en", "US"); // 獲得區域 Ii8nStatus status = Ii8nStatus::ISUCCESS; PluralFormatter formatter = PluralFormatter(locale, status); // 判斷status狀態 int out = formatter.GetPluralFormatter(1, status); // 判斷status狀態 output: 1 // 獲取單復數六條規則中的第二條規則
- 提供獲取指定區域不同單復數、不同格式對應的度量衡名稱的能力。示例如下:
#include "measure_format.h" using namespace OHOS::I18N LocaleInfo locale("en", "US"); // 獲得區域 int num = 1; // 度量衡前的數字,如 1h std::string unit = "h"; // 度量衡 I18nStatus status = I18nStatus::ISUCCESS; MeasureFormatType type = MeasureFormatType::MEASURE_FULL; // 指定度量衡格式,包括SHORT、MEDIUM、LONG、FULL四種格式。 MeasureFormat formatter(locale, status); // 判斷status狀態 std::string unit = formatter.Format(num, unit, status, type); // 獲取前置數字1、FULL格式下,度量衡h(小時)的格式化表示。 output: hour
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
接口
+關注
關注
33文章
8691瀏覽量
151918 -
鴻蒙
+關注
關注
57文章
2392瀏覽量
43050
發布評論請先 登錄
相關推薦
華為的國際化怪圈如何破解
貝恩資本與華為試圖聯合收購美國3Com公司,但也是因未通過CFIUS的審查而最終失敗,一直在國際化征途上攻城略地的華為,似乎進入了一個怪圈
發表于 03-25 10:42
?1009次閱讀
鴻蒙實戰項目開發:【短信服務】
數據管理
電話服務
分布式應用開發
通知與窗口管理
多媒體技術
安全技能
任務管理
WebGL
國際化開發
應用測試
DFX面向未來設計
鴻蒙系統移植和裁剪定制
……
?
《鴻蒙
發表于 03-03 21:29
鴻蒙Flutter實戰:07混合開發
# 鴻蒙Flutter實戰:混合開發
鴻蒙Flutter混合開發主要有兩種形式。
## 1.基于har
將flutter module
發表于 10-23 16:00
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數據轉碼應用開發實戰(下)
《OpenHarmony數據轉碼應用開發實戰(中)》我們講述了核心解轉碼工具包的實現,以及UI組件數據綁定,那么接下來將講述項目的國際化適配、調測和發布。2 國際化適配OpenHarm
發表于 11-10 09:31
淺議基于JSF的Java國際化編程及其實現
本文從實際操作的角度,討論了利用JSF 開發Web 應用程序時實現程序的國際化和本地化的方法。提出了解決應用程序國際化的MVC-R 四層框架模型。
發表于 01-27 13:47
?9次下載
柳傳志談聯想國際化:看中目標拐大彎
柳傳志談聯想國際化:看中目標拐大彎
然而,無論從哪個角度來說,聯想國際化都是一種必然與必須。按照張瑞敏的說法,“如果不國際化,風險可能更大”。1994年,
發表于 12-21 17:27
?510次閱讀
iOS的國際化功能方便了APP走向國際
iOS的國際化功能可以使APP很方便的在不同國家的不同語言之間進行切換,大大的方便了APP走向國際。國際化的時候主要分為三個方面的國際化:InfoPlist、Xib/Storyboar
發表于 09-22 19:26
?0次下載
攜安世半導體邁入A股 聞泰科技更加國際化
聞泰是有國際夢想的公司,我們希望從過去服務中國的品牌,到現在服務全球的品牌,我們也是希望依托安世的國際化,能夠讓我們聞泰科技也更加國際化。
中科創達榮獲2019年京交會“國際化戰略服務示范”獎項
近日,在2019年中國國際服務貿易交易會上, 憑借穩定的國際化經營戰略和優秀的智能駕駛艙解決方案平臺,中科創達榮獲2019年京交會“國際化戰略服務示范”獎項。
劍指國際化,誰能搶灘新大陸?
這次在央視還曾討論國際化的議題,當時還不出名的拼多多創始人黃崢作為嘉賓,建議張一鳴更加激進的做國際化:“當你整個公司布局到全球,并且反過來用全球的資源,集中回來打中國市場的時候,會更加從容一些。”
國際化測試和本地化測試的特點和區別
軟件的國際化和軟件的本地化是開發面向全球不同地區用戶使用的軟件系統的兩個過程。而本地化測試和國際化測試則是針對這類軟件產品進行的測試。由于軟
評論