2017-03-25 6 views
2

私はNode.js/Mongoを使い慣れていません。私は自分の検証でi18nをどのように使うことができるのだろうかと思っていました。これまでのところ、ここで私は、私はそれを使用することができます前に、私は国際化の設定を追加Mongo Schemaと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')); 

持っているものだが、私はそれを行うには正しい方法ではありません知っています。 this.languageを使用しようとしましたが、デフォルトでは常に英語です。

私のフォームで送信された言語でi18nを設定したいと思います。モデルでこれを行う方法はありますか?ありがとう!

答えて

0

私は回避策を見つけることができました。私はここにパグを使用して、直接フィールドに

const UserSchema = new Schema({ 
    email: { 
     type: String, 
     unique: 'Unique_email', // id error in en.json 
     trim: true, 
     default: '', 
     required: [true, 'Email_required'] 
    } 
}); 

そして、私のビュー上をIDを使用しています、私は、各エラーのために何をすべきかだ

ul 
    each error in errors 
     li!= __(error) // the error return will be the key for this language 
関連する問題