最近我都没怎么发文,原来产品和开发始终在忙着迭代, 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,我看到了都会及时回复的。