具有 Mongo 架构和 i18n 的多语言验证消息
Multilingual validation message with Mongo Schema and i18n
我是 Node.js/Mongo 的新手,我想知道如何使用 i18n 进行验证。到目前为止,这就是我所拥有的
架构
const UserSchema = new Schema({
language: {
type: String,
enum: ['fr', 'en']
},
email: {
type: String,
default: ''
}
});
验证
i18n.configure({
locales:['en', 'fr'],
directory:'locales',
defaultLocale: this.language,
cookie: 'locale'
});
UserSchema.path('email').validate(function (email) {
return email.length;
}, i18n.__('Email_is_required'));
我之前添加了i18n的配置,所以我可以使用它,但我知道这不是正确的做法。我尝试使用 this.language 但默认情况下它始终是英语。
我想使用表单中发送的语言配置 i18n。有没有办法在模型中做到这一点?谢谢!
所以我找到了一个解决方法,这里是我目前的解决方案。我是直接用字段里的id
const UserSchema = new Schema({
email: {
type: String,
unique: 'Unique_email', // id error in en.json
trim: true,
default: '',
required: [true, 'Email_required']
}
});
在我看来,使用哈巴狗是我对每个错误所做的处理
ul
each error in errors
li!= __(error) // the error return will be the key for this language
我是 Node.js/Mongo 的新手,我想知道如何使用 i18n 进行验证。到目前为止,这就是我所拥有的
架构
const UserSchema = new Schema({
language: {
type: String,
enum: ['fr', 'en']
},
email: {
type: String,
default: ''
}
});
验证
i18n.configure({
locales:['en', 'fr'],
directory:'locales',
defaultLocale: this.language,
cookie: 'locale'
});
UserSchema.path('email').validate(function (email) {
return email.length;
}, i18n.__('Email_is_required'));
我之前添加了i18n的配置,所以我可以使用它,但我知道这不是正确的做法。我尝试使用 this.language 但默认情况下它始终是英语。
我想使用表单中发送的语言配置 i18n。有没有办法在模型中做到这一点?谢谢!
所以我找到了一个解决方法,这里是我目前的解决方案。我是直接用字段里的id
const UserSchema = new Schema({
email: {
type: String,
unique: 'Unique_email', // id error in en.json
trim: true,
default: '',
required: [true, 'Email_required']
}
});
在我看来,使用哈巴狗是我对每个错误所做的处理
ul
each error in errors
li!= __(error) // the error return will be the key for this language