簡(jiǎn)介
國(guó)際化部件為應(yīng)用提供了一系列國(guó)際化接口,包括:時(shí)間日期格式化、數(shù)字格式化、月份星期格式化、單復(fù)數(shù)、度量衡等相關(guān)接口。基于這些國(guó)際化接口,開發(fā)者可以設(shè)計(jì)并實(shí)現(xiàn)具有良好國(guó)際化能力的應(yīng)用,從而可以高效、低成本的實(shí)現(xiàn)應(yīng)用的本地化。國(guó)際化部件支持如下設(shè)備:Multi-modal V200Z-R BES2600。
國(guó)際化部件架構(gòu)圖說明:
- Kits為提供的c++國(guó)際化接口。
- frameworks為c++接口的底層c++實(shí)現(xiàn)。
- binary data generate tool為數(shù)據(jù)打包工具。數(shù)據(jù)打包工具的輸入為文本數(shù)據(jù)文件,輸出為二進(jìn)制數(shù)據(jù)文件i18n.dat,i18n.dat中包含了國(guó)際化接口所依賴的國(guó)際化數(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文本格式的國(guó)際化數(shù)據(jù),位于tools/i18n-dat-tool/resource目錄下。
鴻蒙知識(shí)已更新完整gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
可以前往參考。
或者添+mau123789是衛(wèi)心
說明
- 提供時(shí)間日期格式化接口,使時(shí)間日期格式(如年月日順序、月份和星期詞匯、使用12或24小時(shí)制等)跟隨系統(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); // 初始化時(shí)間日期示例,并獲取該區(qū)域時(shí)間格式化所需數(shù)據(jù),第一個(gè)參數(shù)為時(shí)間日期格式化模板類型,所支持的模板類型見API文檔types.h time_t time = 3600 * 3; // 所需要格式化的時(shí)間 std::string zoneInfo = "+1:00"; // 設(shè)置時(shí)區(qū),相對(duì)于UTC 0時(shí)區(qū)加一小時(shí) std::string out; // 時(shí)間日期格式化結(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)、百分號(hào)等)跟隨應(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時(shí)表示初始化失敗 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類型的長(zhǎng)格式 output: January
- 不同語(yǔ)言下名稱跟隨數(shù)字有不同的表達(dá),如英文下會(huì)有:“one apple”、“two apples”。單復(fù)數(shù)規(guī)范總結(jié)多種語(yǔ)言的語(yǔ)法規(guī)范將名詞的單數(shù)和復(fù)數(shù)形式劃分為zero、one、two、few、many、other六種類型。不同語(yǔ)言支持不同數(shù)量的單復(fù)數(shù)類型,如中文只支持other一種,英文支持one和other兩種,阿拉伯語(yǔ)支持全部6種類型。提供單復(fù)數(shù)接口來計(jì)算不同語(yǔ)言下不同數(shù)字時(shí)應(yīng)該使用的名詞復(fù)數(shù)類型,使“數(shù)字+名詞”這種表達(dá)形式跟隨應(yīng)用語(yǔ)言滿足不同語(yǔ)言用戶的文化習(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ù)、不同格式對(duì)應(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(小時(shí))的格式化表示。 output: hour
審核編輯 黃宇
-
接口
+關(guān)注
關(guān)注
33文章
8526瀏覽量
150861 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2321瀏覽量
42749
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論