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

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

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

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-21 22:07 ? 次閱讀

簡介

國際化部件為應(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)心

全網(wǎng)首發(fā)-純血版鴻蒙OpenHarmony4.0&Next中高級鴻蒙技術(shù)學(xué)習(xí)路線圖.png

說明

  1. 提供時間日期格式化接口,使時間日期格式(如年月日順序、月份和星期詞匯、使用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
    
  2. 提供數(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
    
  3. 提供獲取指定區(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
    
  4. 不同語言下名稱跟隨數(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ī)則
    
  5. 提供獲取指定區(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
收藏 人收藏

    評論

    相關(guān)推薦

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

    Intl模塊包含國際化能力基礎(chǔ)接口(在ECMA 402中定義)。
    的頭像 發(fā)表于 06-03 09:28 ?824次閱讀
    <b class='flag-5'>鴻蒙</b><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 ?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次下載
    iOS的<b class='flag-5'>國際化</b>功能方便了APP走向<b class='flag-5'>國際</b>

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

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

    聞泰科技加速國際化布局,印度分公司正式開業(yè)

    聞泰印度產(chǎn)品印度造,是聞泰科技加速走向國際化的重要戰(zhàn)略。
    的頭像 發(fā)表于 05-29 14:04 ?5283次閱讀

    中科創(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ù)示范”獎項。
    的頭像 發(fā)表于 06-05 13:50 ?2978次閱讀

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

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

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

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