关于鸿蒙系统的国际化组件介绍

微生香岚
发布于 2021-9-16 17:57
浏览
0收藏

简介

国际化组件提供时间日期格式化、获取月份和星期的名称、数字格式化等国际化能力。

目录

国际化组件源代码目录结构如下所示:

/base/global/
├── i18n_lite                 # 国际化框架代码仓
│   ├──  frameworks           # 国际化框架核心代码
│   │   ├── i18n              # 国际化模块
│   │   │   ├── include       # 接口文件
│   │   │   ├── src           # 实现代码
│   │   │   └── test          # 测试用例
│   ├──  interfaces           # 国际化框架接口
│   │   ├── kits              # 应用接口
│   │   │   ├── i18n          # C/C++国际化能力接口
│   │   │   └── js            # javascript接口的C/C++支持

约束

语言限制:C/C++语言

支持范围限制:支持的区域和语言见附录

说明

1.提供时间日期格式化接口,使时间日期格式(如年月日顺序、月份和星期词汇、使用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
  1. 提供数字格式化接口,使数字格式(如数字体系、数字分组、小数点、百分号等)跟随应用系统设置满足不同区域用户的文化习惯。更详细的内容见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
  1. 提供获取指定区域月份、星期不同格式名称的能力。示例如下:
#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
  1. 不同语言下名称跟随数字有不同的表达,如英文下会有:“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 // 获取单复数六条规则中的第二条规则

相关仓

全球化子系统

global_resmgr_lite

global_i18n_lite

global_cust_lite

附录

支持语言列表

缩写 语言 缩写 语言 缩写 语言
am_ET 阿姆哈拉语 hr_HR 克罗地亚语 or-IN 欧里亚语
ar_EG 阿拉伯语 hu_HU 匈牙利语 pa_IN 旁遮普语
as_IN 阿萨姆语 in_ID 印尼语 pl_PL 波兰语
az_AZ 阿塞拜疆语 it_IT 意大利语 pt_BR 巴西葡语
be_BY 白俄罗斯语 iw_IL 希伯来语 pt_PT 欧洲葡语
bg_BG 保加利亚语 ja_JP 日语 ro_RO 罗马尼亚语
bn_BD 孟加拉语 jv_ID 爪哇语 ru_RU 俄语
bo_CN 藏语 ka_GE 格鲁吉亚语 si_LK 僧伽罗语
bs_BA 波斯尼亚语 kk_KZ 哈萨克语(西里尔文) sk_SK 斯洛伐克语
ca_ES 加泰罗尼亚语 km_KH 高棉语 sl_SI 斯洛文尼亚语
cs_CZ 捷克语 kn_IN 卡纳达语 sr_Latn_RS sr_RS 塞尔维亚语(拉丁文)
da_DK 丹麦语 ko_KR 韩语 sv_SE 瑞典语
de_DE 德语 lo_LA 老挝语 sw_TZ 斯瓦希里语
el_GR 希腊语 lt_LT 立陶宛语 ta_IN 泰米尔语
en_GB 英式英语 lv_LV 拉脱维亚语 te_IN 泰卢固语
en_US 美式英语 mai-Deva-IN 迈蒂利语 th_TH 泰语
es_ES 欧洲西语 mi-NZ 毛利语 tl_PH 菲律宾语
es_US 拉美西语 mk_MK 马其顿语 tr_TR 土耳其语
et_EE 爱沙尼亚语 ml_IN 马拉雅拉姆语 uk_UA 乌克兰语
eu_ES 巴斯克语 mn_MN 蒙古 ur_PK 乌尔都语
fa_IR 波斯语 mr_IN 马拉地语 uz_UZ 乌兹别克语
fi_FI 芬兰语 ms_MY 马来西亚语 vi_VN 越南语
fr_FR 法语 my_MM my_ZG 缅甸语 zh_CN 简体中文
gl_ES 加利西亚语 nb_NO 挪威语 zh_HK 香港繁体中文
gu_IN 古吉拉特语 ne_NP 尼泊尔语 zh_TW 台湾繁体中文
hi_IN 印地语 nl_NL 荷兰语

global_i18n_lite-master.zip 135.95K 13次下载
已于2021-9-16 17:57:22修改
1
收藏
回复
举报
回复
    相关推荐