Preisy / body-blast-monorepo

0 stars 0 forks source link

[Frontend] Zod i18n #163

Open Preisy opened 1 month ago

Preisy commented 1 month ago

yup.setLocale({ mixed: { // default: '', required: (it: MessageParams) => ${getFieldName(it)} обязательно, notType: (it: MessageParams) => { const dict: Record<string, string> = { number: ${getFieldName(it)} должно быть числом, string: ${getFieldName(it)} должно быть строкой, mixed: ${getFieldName(it)} не соответствует типу, date: ${getFieldName(it)} должно быть датой, boolean: ${getFieldName(it)} должно быть булевым значением, object: ${getFieldName(it)} должно быть объектом, array: ${getFieldName(it)} должно быть массивом, tuple: ${getFieldName(it)} должно быть кортежем, }; const message = dict[it.type]; if (message === undefined) throw new Error('unknown type for internationalization'); return message; }, oneOf: (it) => ${getFieldName(it)} должно быть одним из следующих значений: ${it.values}, notOneOf: (it) => ${getFieldName(it)} не должно быть одним из следующих значений: ${it.values}, notNull: (it) => ${getFieldName(it)} не должно равняться null, defined: (it) => ${getFieldName(it)} должно быть определено, }, number: { min: (it) => ${getFieldName(it)} должно быть больше ${it.min}, max: (it) => ${getFieldName(it)} должно быть меньше ${it.max}, lessThan: (it) => ${getFieldName(it)} должно быть меньше ${it.less}, moreThan: (it) => ${getFieldName(it)} должно быть больше ${it.more}, positive: (it) => ${getFieldName(it)} должно быть больше ${it.more}, negative: (it) => ${getFieldName(it)} должно быть меньше ${it.less}, integer: (it) => ${getFieldName(it)} должно быть целым числом, }, string: { length: (it) => ${getFieldName(it)} должно быть длиной ${it.length}, min: (it) => ${getFieldName(it)} должно быть длиннее ${it.min}, max: (it) => ${getFieldName(it)} должно быть короче ${it.max}, matches: (it) => ${getFieldName(it)} должно соответвовать выражению ${it.regex}, email: (it) => ${getFieldName(it)} должно быть адресом email, url: (it) => ${getFieldName(it)} должно быть валидным URL, uuid: (it) => ${getFieldName(it)} должно быть валидным UUID, // trim: (it) => ${getFieldName(it)} должно быть, lowercase: (it) => ${getFieldName(it)} должно быть в нижнем регистре, uppercase: (it) => ${getFieldName(it)} должно быть в верхнем регистре, }, date: {}, boolean: {}, object: {}, array: { length: (it) => ${getFieldName(it)} должно быть длиной ${it.length}, min: (it) => ${getFieldName(it)} должно быть длиннее ${it.min}, max: (it) => ${getFieldName(it)} должно быть короче ${it.max}, }, tuple: {}, });