回复
关于鸿蒙系统的国际化组件介绍
微生香岚
发布于 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
- 提供数字格式化接口,使数字格式(如数字体系、数字分组、小数点、百分号等)跟随应用系统设置满足不同区域用户的文化习惯。更详细的内容见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
- 提供获取指定区域月份、星期不同格式名称的能力。示例如下:
#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
- 不同语言下名称跟随数字有不同的表达,如英文下会有:“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_i18n_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
收藏
回复
相关推荐