项目简介
本项目是基于JavaScript的国际化(i18n)解决方案,为Web应用提供多语言支持。借助i18n-xml-js
库,能把Android规范下的国际化多语言资源文件(如strings.xml
)转换为JavaScript资源文件,可在React、Vue等主流前端框架实现动态语言切换,还提供丰富API接口和编译工具,方便开发者管理维护多语言资源。
项目的主要特性和功能
主要特性
- 多框架适配:支持React(建议v16.12.0以上版本)和Vue 2.x(建议v2.6.x以上版本),子组件可注册独立国际化模块。
- 多语言资源编译:将Android规范下的
strings.xml
文件编译为JavaScript资源文件,简化管理。 - 复数处理:支持复数、序数和区间数处理,满足复杂多语言需求。
功能介绍
- 多语言切换:通过
setLocal
方法动态设置当前语言,支持备用语言机制。 - 资源获取:提供简洁API接口,可获取字符串、数组等资源,支持带参数的字符串处理。
- 复数处理:支持基数、序数和区间数的复数处理,适配不同语言复数规则。
- 编译工具:使用
parseFromXML
命令,将Android规范下的XML资源文件编译为JavaScript资源文件。
安装使用步骤
安装
通过npm安装i18n-xml-js
库:
shell
npm install i18n-xml-js --save
使用
- 引入库并创建多语言实例: ```javascript import I18nJs, { setLocal, addPluralization, plurals } from 'i18n-xml-js';
const en = { // 英文资源 };
const zh = { // 中文资源 };
// 设置当前语言 setLocal('en');
// 创建多语言实例
const i18n = I18nJs({ en, zh }, 'en');
2. 获取资源:
javascript
const lang = i18n.lang;
// 获取字符串 lang.string.app_name; // 输出: GetApps
// 获取带参数的字符串
lang.string.welcome_messages('小明', 20); // 输出: Hello, 小明! You have 20 new messages.
3. 处理复数:
javascript
// 基数复数
plurals.cardinal(lang.plurals.cardinal.wastetime, 5, 5); // 输出: 5 minutes
// 序数复数 plurals.cardinal(lang.plurals.ordinal.takeRight, 5, 5); // 输出: Take the 5th right.
// 区间复数
plurals.range(lang.plurals.range.days, 1, 2, 1, 2); // 输出: 1–2 days
4. 编译XML资源文件:
在`package.json`中添加编译命令:
json
"scripts": {
"parseFormXML": "parseFromXML i18n/*/.xml"
}
运行命令编译XML文件:
shell
npm run parseFormXML
```
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】