乐趣区

关于api:开源-API-管理工具新功能发布插件都支持多语言了

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

退出移动版