Eggjs 使用 egg-validate 验证插件搭配 i18n 配置本地化中文提示语

发布于 2021-03-12 23:14:55 字数 1603 浏览 1814 评论 0

Eggjs 的表单验证使用的是 egg-validate,各方面使用都挺好,就是提示是英文的,找了一圈的使用文档,发现在初始化的时候,可以配置翻译回调函数,定制我们个性化的本地语言提示语。

这里我们使用大家常用的 i18n 插件,先安装 i18n:

npm install i18n --save

i18n npm 用法规则:https://www.npmjs.com/package/i18n 里面写的很详细。

在 config/config.default.js 引入 i18n 并初始化:

// config/config.default.js
const path = require('path');
const { I18n } = require('i18n');
const i18n = new I18n({
  // eslint-disable-next-line array-bracket-spacing
  locales: ['en', 'cn'],
  directory: path.join(__dirname, 'locales'),
  defaultLocale: 'cn',
});

接着在文件中找到 egg-validate 的配置段,如果没有就直接新建一个:

// config/config.default.js
config.validate = {
  convert: true,
  translate: () => {
    const args = Array.prototype.slice.call(arguments);
    return i18n.__(args[0]);
  },
};

项目运行以后,就会在 config 目录下生成对应的语言 JSON 文件:

找到对应的语言文件翻译下就可以了:

// config/locales/en.json
{
  "should be a number": "应该是一个数字",
  "invalid": "无效",
  "should be an email": "should be an email"
}

其实不仅仅这个验证插件可以使用,在项目的其他地方调用合适的 i18n.__(); 方法即可实现多国语言。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

linfzu01

文章 0 评论 0

可遇━不可求

文章 0 评论 0

枕梦

文章 0 评论 0

qq_3LFa8Q

文章 0 评论 0

JP

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文