最近我都没怎么发文,原来产品和开发始终在忙着迭代, 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

AB
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,我看到了都会及时回复的。