开源的 API 管理工具,连插件也支持多语言了

7 篇文章 0 订阅

最近我都没怎么发文,原来产品和开发一直在忙着迭代,又新增一些功能:像前后置脚本多语言以及远程数据源等等。那肯定会有小伙伴问,那你们的插件广场里的插件是不是也支持多语言啊

必须支持!阅读本文,你将知道如何配置 Eoapi 实现多语言,最终效果如下图:

 中文版插件

 英文版本插件

示例代码

https://github.com/eolinker/eoapi-extensions/tree/main/packages/feature/i18n

可以通过示例代码的链接直接 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语言ID
2中文-简体zh-Hans
3中文-繁体zh-Hant
4英语-美国en-US
5法语fr-FR
6日本ja-JP
7俄罗斯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/eoapi/pull/90,想要交流随时在 issue 联系~

最后还是介绍下我自己吧。

 Eoapi 是一款类 Postman 的开源 API 工具,它更轻量,同时可拓展。

项目地址: https://github.com/eolinker/eoapi

官网地址:https://www.eoapi.io/?utm_source=CSDN-0701

如果你对于 Eoapi 有任何疑问或者建议,都可以去 Github 或者来这里找我,提个Issue,我看到了都会及时回复的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值