最近我都没怎么发文,原来产品和开发始终在忙着迭代,EOAPI 又新增一些性能:像 前后置脚本 、 多语言 以及 近程数据源 等等。那必定会有小伙伴问,那你们的插件广场里的插件是不是也反对多语言啊!
必须反对!浏览本文,你将晓得如何配置 Eoapi 反对多语言,最终成果如下图:
中文版插件
英文版插件
示例代码
https://github.com/eolinker/e…
能够通过示例代码的链接间接 debug 插件,更直观地看展现成果
配置
package.json
在 package.json 配置 i18n
字段
// package.json
{
"name": "eoapi-i18n",
"version": "1.0.0",
"description": "The i18n example extension of eoapi",
"author": "scar",
"main": "dist/index.js",
"moduleID": "eoapi-i18n",
"moduleName": "eoapi-i18n",
"moduleType": "feature",
"logo": "http://dummyimage.com/125x125",
"scripts": {
"build": "rollup -c rollup.config.js",
"build:watch": "rollup -w -c rollup.config.js"
},
"devDependencies": {"rollup": "^2.70.2"},
"features": {
"apimanage.export": {
"action": "exportFunc",
"label": "${function.label}", // 在 feature 中通过 ${i18n name} 应用
"description": "${function.description}",
"icon": "http://dummyimage.com/125x125",
"filename": "data.json"
},
//i18n 配置
"i18n": {
"sourceLocale": "en-US", // 默认语言,应用 eoapi 规定的 localeID
"locales": ["zh-Hans" // 反对语言]
}
}
}
配置语言包
插件根目录下新建名为 i18n
的文件夹,语言包名称为 LocaleID
A | B | |
---|---|---|
1 | 简体中文 | zh-Hans |
2 | 繁体中文 | zh-Hant |
3 | 英文 - 美国 | en-US |
4 | 法语 | fr-FR |
5 | 日语 | ja-JP |
6 | 俄罗斯 | ru-RU |
//en-US.json
{
"moduleName": "eoapi-i18n",
"description": "The i18n example extension of eoapi", // 如果语言包 json 外面找不到,会应用 package.json 的文件
"logo": "http://dummyimage.com/125x125",
"function.label": "en Data(.json)",
"function.description": "export api data",
"now-lanuage": "Now lanuage is: {0}"
}
//zh-Hans.json
{
"moduleName": "eoapi- 国际化",
"description": "国际化插件示例",
"author": "秦一",
"logo": "http://dummyimage.com/200x100",
"function.description": "导出 API 数据",
"function.label": "zh Data(.json)",
"now-lanuage": "以后语言是:{0}",
"multiple-variable": "替换多个变量:{0} {1}"
}
在 Javascript 中应用
通过 eo.i18n 函数
eo.i18n.localize:(originText:string,replacement:string,...variable)=>string;
export const exportFunc = (data = {}) => {console.log(eo.i18n.localize("export-id", "I am origin text"));
//localize(id:string,originText:string,...args)
console.log(
eo.i18n.localize(
"now-lanuage",
"Now lanuage is: {0}",
eo.i18n.getSystemLanguage())
);
//id can be ignore in default localize i18n json
console.log(
eo.i18n.localize(
"multiple-variable",
"Replace multiple variable: {0} {1}",
0,
"1"
)
);
return {name: "eoapi",};
};
如果大家对插件零碎如何实现插件多语言感兴趣,能够看看相应实现的 PR:https://github.com/eolinker/e…
最初还是介绍下我本人吧。
Eoapi 是一款类 Postman 的开源 API 工具,它更轻量,同时可拓展。
我的项目地址:
https://github.com/eolinker/e…
官网地址:
https://www.eoapi.io/?utm_sou…
如果你对于 Eoapi 有任何疑难或者倡议,都能够去 Github 或者来这里找我,提个 Issue,我看到了都会及时回复的。