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