鸿蒙实战开发:【国际化部件】

简介

国际化部件为应用提供了一系列国际化接口,包括:时间日期格式化、数字格式化、月份星期格式化、单复数、度量衡等相关接口。基于这些国际化接口,开发者可以设计并实现具有良好国际化能力的应用,从而可以高效、低成本的实现应用的本地化。国际化部件支持如下设备: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可以前往参考。

说明

  1. 提供时间日期格式化接口,使时间日期格式(如年月日顺序、月份和星期词汇、使用12或24小时制等)跟随系统设置满足不同区域用户的文化习惯。更详细的内容见API文档。示例如下:

    cpp 复制代码
    #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
  2. 提供数字格式化接口,使数字格式(如数字体系、数字分组、小数点、百分号等)跟随应用系统设置满足不同区域用户的文化习惯。更详细的内容见API文档。示例如下:

    cpp 复制代码
    #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
  3. 不同语言下名称跟随数字有不同的表达,如英文下会有:"one apple"、"two apples"。单复数规范总结多种语言的语法规范将名词的单数和复数形式划分为zero、one、two、few、many、other六种类型。不同语言支持不同数量的单复数类型,如中文只支持other一种,英文支持one和other两种,阿拉伯语支持全部6种类型。提供单复数接口来计算不同语言下不同数字时应该使用的名词复数类型,使"数字+名词"这种表达形式跟随应用语言满足不同语言用户的文化习惯。示例如下:

    cpp 复制代码
    #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
  4. 提供获取指定区域不同单复数、不同格式对应的度量衡名称的能力。示例如下:

    cpp 复制代码
    #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 // 获取单复数六条规则中的第二条规则

最后呢,很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造 的**《鸿蒙NEXT星河版OpenHarmony开发文档》** 里面内容包含了(**ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony****多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)**技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

高清完整版请点击→《鸿蒙NEXT星河版开发学习文档》

针对鸿蒙成长路线打造的鸿蒙学习文档 。话不多说,我们直接看详细资料鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

《鸿蒙 (OpenHarmony)开发学习视频》

《鸿蒙生态应用开发V2.0白皮书》

《鸿蒙 (OpenHarmony)开发基础到实战手册》

获取这份鸿蒙星河版学习资料,请点击→ 《鸿蒙NEXT星河版开发学习文档》

OpenHarmony北向、南向开发环境搭建

《鸿蒙开发基础》

  1. ArkTS语言

  2. 安装DevEco Studio

  3. 运用你的第一个ArkTS应用

  4. ArkUI声明式UI开发

  5. .......

《鸿蒙开发进阶》

  1. Stage模型入门

  2. 网络管理

  3. 数据管理

  4. 电话服务

  5. 分布式应用开发

  6. 通知与窗口管理

  7. 多媒体技术

  8. 安全技能

  9. 任务管理

  10. WebGL

  11. 国际化开发

  12. 应用测试

  13. DFX面向未来设计

  14. 鸿蒙系统移植和裁剪定制

  15. ......

《鸿蒙开发实战》

  1. ArkTS实践

  2. UIAbility应用

  3. 网络案例

  4. ......

获取这份鸿蒙星河版学习资料,请点击→ 《鸿蒙NEXT星河版开发学习文档》

总结

鸿蒙---作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发 ,未来将会支持 50 万款的应用 。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

相关推荐
深海的鲸同学 luvi7 分钟前
【HarmonyOS NEXT】hdc环境变量配置
linux·windows·harmonyos
Freerain996 小时前
鸿蒙Next ArkTS语法适配背景概述
华为·harmonyos
他的猫哎6 小时前
鸿蒙 Navigation组件下的组件获取pageStack问题
harmonyos·鸿蒙
雨汨6 小时前
鸿蒙之路的坑
华为·harmonyos
轻口味7 小时前
【每日学点鸿蒙知识】沙箱目录、图片压缩、characteristicsArray、gm-crypto 国密加解密、通知权限
pytorch·华为·harmonyos
xo1988201111 小时前
鸿蒙人脸识别
redis·华为·harmonyos
塞尔维亚大汉12 小时前
【OpenHarmony】 鸿蒙 UI开发之CircleIndicator
harmonyos·arkui
BisonLiu12 小时前
华为仓颉鸿蒙HarmonyOS NEXT仓颉原生数据网络HTTP请求(ohos.net.http)
harmonyos
BisonLiu12 小时前
华为仓颉鸿蒙NEXT原生加解密算法库框架
harmonyos
变色龙云12 小时前
网页生成鸿蒙App
华为·harmonyos