diff --git a/README.md b/README.md index b9e17bf..fc2bddc 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Locales implemented: - `cs` - `da` - `de` +- `el` - `en` - `es` - `et` diff --git a/src/index.ts b/src/index.ts index 584a88e..2bfc96a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,6 +4,7 @@ import * as bs from './locales/bs'; import * as cs from './locales/cs'; import * as da from './locales/da'; import * as de from './locales/de'; +import * as el from './locales/el'; import * as en from './locales/en'; import * as es from './locales/es'; import * as fr from './locales/fr'; @@ -35,6 +36,7 @@ export { cs, da, de, + el, en, es, fr, diff --git a/src/locales/el.ts b/src/locales/el.ts new file mode 100644 index 0000000..fda403e --- /dev/null +++ b/src/locales/el.ts @@ -0,0 +1,70 @@ +/*eslint-disable no-template-curly-in-string*/ +import { printValue, LocaleObject, bool } from 'yup' + +export const mixed: LocaleObject['mixed'] = { + default: '${path} μη έγκυρο', + required: '${path} απαιτούμενο πεδίο', + defined: '${path} πρέπει να καθοριστεί', + notNull: '${path} δεν μπορεί να είναι μηδενικό', + oneOf: '${path} πρέπει να είναι μια απο τις παρακάτω τιμές: ${values}', + notOneOf: "${path} πρέπει να είναι μια απο τις παρακάτω τιμές: ${values}'", + notType: ({ path, type, value, originalValue }) => { + const isCast = originalValue != null && originalValue !== value + let msg = + `${path} πρέπει να είναι  \`${type}\` τύπος, ` + + `αλλά η τελική τιμή ήταν: \`${printValue(value, true)}\`` + + (isCast ? ` (μετατροπή από την τιμή \`${printValue(originalValue, true)}\`).` : '.') + + if (value === null) { + msg += '\n Εάν "null" πρόκειται να είναι κενή τιμή βεβαιωθείτε ότι έχετε σημειώσει το σχήμα ως' + ' `.nullable()`' + } + + return msg + }, +} +export const string: LocaleObject['string'] = { + length: '${path}πρέπει να είναι ${length} χαρακτήρες', + min: '${path} πρέπει να είναι τουλάχιστον ${min} χαρακτήρες', + max: '${path} πρέπει να είναι τουλάχιστον ${max} χαρακτήρες', + matches: '${path} πρέπει να συμφωνεί με τα παρακάτω: "${regex}"', + email: '${path} πρέπει να είναι έγκυρη διεύθυνσηl', + url: '${path} πρέπει να είναι έγκυρη διεύθυνσηl', + uuid: '${path} πρέπει να είναι έγκυρο UUID', + trim: '${path} πρέπει να είναι συμβολοσειρά χωρίς κενά', + lowercase: '${path} πρέπει να είναι συμβολοσειρά μικρών γραμμάτων', + uppercase: "${path} πρέπει να είναι συμβολοσειρά κεφαλαίων'", +} +export const number: LocaleObject['number'] = { + min: '${path} πρέπει να είναι μεγαλύτερο ή ίσο ${min}', + max: '${path} πρέπει να είναι λιγότερο ή ίσο ${max}', + lessThan: '${path} πρέπει να είναι λιγότερο απο ${less}', + moreThan: '${path} πρέπει να είναι περισσότερο απο ${more}', + positive: '${path} πρέπει να είναι θετική τιμή', + negative: '${path} πρέπει να είναι αρνητική τιμή', + integer: '${path} πρέπει να είναι ακέραιος αριθμός', +} +export const date: LocaleObject['date'] = { + min: '${path} το πεδίο πρέπει να είναι μεταγενέστερο ${min}', + max: '${path} το πεδίο πρέπει να είναι προγενέστερο ${max}', +} +export const object: LocaleObject['object'] = { + noUnknown: '${path} το πεδίο περιέχει μη καθορισμένα κλειδιά: ${unknown}', +} +export const array: LocaleObject['array'] = { + min: '${path} το πεδίο πρέπει να περιέχει τουλάχιστον ${min} στοιχεία', + max: '${path} tο πεδίο πρέπει να έχει λιγότερα ή ίσα με ${max} στοιχείαs', + length: '${path} πρέπει να έχει ${length} στοιχεία', +} +export const boolean: LocaleObject['boolean'] = { + isValue: '${path} το πεδίο πρέπει να είναι ${value}', +} + +export const yupLocaleEl = { + mixed, + string, + number, + date, + object, + array, + boolean, +}