Eggjs 使用 egg-validate 验证插件搭配 i18n 配置本地化中文提示语
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论