Skip to content

Instantly share code, notes, and snippets.

@mrtnzagustin
Created April 21, 2020 16:41
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mrtnzagustin/a11823c32ba4957f68df52952f62d415 to your computer and use it in GitHub Desktop.
Save mrtnzagustin/a11823c32ba4957f68df52952f62d415 to your computer and use it in GitHub Desktop.
Spanish messages to be used with @hapi/joi schema validation
{
"any.unknown": "no esta permitido",
"any.invalid": "contiene un valor invalido",
"any.empty": "no está permitido que sea vacío",
"any.required": "es requerido",
"any.allowOnly": "debería ser uno de las siguientes variantes: {{valids}}",
"any.default": "emitió un error cuando se ejecutó el metodo default",
"alternatives.base": "no coincide con ninguna de las alternativas permitidas",
"array.base": "debe ser un array",
"array.includes": "en la posición {{pos}} no coincide con ninguno de los tipos permitidos",
"array.includesSingle": "el valor de \"{{!key}}\" no coincide con ninguno de los tipos permitidos",
"array.includesOne": "en la posición {{pos}} falló porque {{reason}}",
"array.includesOneSingle": "el valor \"{{!key}}\" falló porque {{reason}}",
"array.includesRequiredUnknowns": "no contiene valor/es requerido/s: {{unknownMisses}} ",
"array.includesRequiredKnowns": "no contiene: {{knownMisses}}",
"array.includesRequiredBoth": "no contiene {{knownMisses}} y {{unknownMisses}} otros valores requeridos",
"array.excludes": "en la posición {{pos}} contiene un valor excluído",
"array.excludesSingle": "el valor \"{{!key}}\" contiene un valor excluído",
"array.min": "debe contener al menos {{limit}} items",
"array.max": "debe contener máximo {{limit}} items",
"array.length": "debe contener exactamente {{limit}} items",
"array.ordered": "en la posición {{pos}} falló porque {{reason}}",
"array.orderedLength": "en la posición {{pos}} falló porque el array debre contener como máximo {{limit}} items",
"array.sparse": "no debe ser un array esparcido",
"array.unique": "posición {{pos}} contiene un valor duplicado",
"boolean.base": "debe ser un valor verdadero/falso o si/no",
"binary.base": "debe ser un buffer o un string",
"binary.min": "debe ser como mínimo de {{limit}} bytes",
"binary.max": "debe ser como máximo de {{limit}} bytes",
"binary.length": "debe tener exactamente {{limit}} bytes",
"date.base": "debe ser una cantidad de milisegundos o una fecha en cadena de texto válida",
"date.min": "debe ser mayor o igual a \"{{limit}}\"",
"date.max": "debe ser menor o igual que \"{{limit}}\"",
"date.isoDate": "debe ser una fecha en formato ISO 8601",
"date.ref": "referencia a \"{{ref}}\", que no es una fecha válida",
"function.base": "debe ser una función",
"object.base": "debe ser un objeto",
"object.child": "hijo \"{{!key}}\" falló porque {{reason}}",
"object.min": "debe tener como mínimo {{limit}} hijo",
"object.max": "debe tener menos o a lo sumo {{limit}} hijo",
"object.length": "debe tener máximo {{limit}} hijo/s",
"object.allowUnknown": "no está permitido",
"object.with": "peer faltante: \"{{peer}}\"",
"object.without": "conflicto con peer prohibido: \"{{peer}}\"",
"object.missing": "debe contener al menos uno de: {{peers}}",
"object.xor": "contiene un conflicto con alguno de: {{peers}}",
"object.or": "debe contener al menos uno de: {{peers}}",
"object.and": "contiene {{present}} sin el requerido: {{missing}}",
"object.nand": "!!\"{{main}}\" no debe existir simultáneamente con {{peers}}",
"object.assert": "!!\"{{ref}}\" falló validacion porque \"{{ref}}\" falló a {{message}}",
"object.rename.multiple": "no se puede renombrar el hijo \"{{from}}\" porque múltiples re-nombramientos estan deshabilitados y otra clave fue renombrada a \"{{to}}\"",
"object.rename.override": "no se puede renombrar el hijo \"{{from}}\" porque la sobre escritura esta deshabilitada y el target \"{{to}}\" existe",
"object.type": "debe ser una instancia de \"{{type}}\"",
"number.base": "debe ser un número",
"number.min": "debe ser mayor o igual que {{limit}}",
"number.max": "debe ser menor o igual que {{limit}}",
"number.less": "debe ser menor a {{limit}}",
"number.greater": "debe ser mayor a {{limit}}",
"number.float": "debe ser un numero flotante",
"number.integer": "debe ser un número entero",
"number.negative": "debe ser un número negativo",
"number.positive": "debe ser un número positivo",
"number.precision": "no debe tener mas de {{limit}} decimales",
"number.ref": "referencia a \"{{ref}}\" que no es un número",
"number.multiple": "debe ser un múltiplo de {{multiple}}",
"string.base": "debe ser una cadena de texto",
"string.min": "debe ser mínimo de {{limit}} caracteres de largo",
"string.max": "debe ser de máximo {{limit}} caracteres de largo",
"string.length": "debe ser exactamente de {{limit}} caracteres de largo",
"string.alphanum": "debe contener solo letras y números",
"string.token": "debe contener solo letras, números y guines bajos",
"string.regex.base": "el valor \"{{!value}}\" no coincide con el pattern requerido: {{pattern}}",
"string.regex.name": "el valor \"{{!value}}\" no coincide con el nombre de pattern {{name}}",
"string.email": "debe ser un email válido",
"string.uri": "debe sre una uri válida",
"string.uriCustomScheme": "debe ser una uri válida con el esquema concidiente con el patrón {{scheme}}",
"string.isoDate": "debe ser una fecha en formato ISO 8601 válida",
"string.guid": "debe ser un GUID valido",
"string.hex": "debe contener solo caracteres hexadecimales",
"string.hostname": "deber ser un hostname válido",
"string.lowercase": "solo debe contener minúsculas",
"string.uppercase": "solo debe contener mayúsculas",
"string.trim": "no debe tener espacios en blanco delante o atrás",
"string.creditCard": "debe ser una tarjeta de crédito",
"string.ref": "referencia \"{{ref}}\" que no es un númerp",
"string.ip": "debe ser una dirección ip válida con un CDIR {{cidr}}",
"string.ipVersion": "debe ser una dirección ip válida de una de las siguientes versiones {{version}} con un CDIR {{cidr}}"
}
@controlsgroupsinternational

AMAZING!! Thark work fine with this keys:

{ "any.unknown": "{{key}}: no está permitido", "any.invalid": "{{key}}: contiene un valor invalido", "any.empty": "{{key}}: no está permitido que sea vacío", "any.required": "{{key}}: es un campo requerido", "any.allowOnly": "{{key}}: debería ser uno de las siguientes variantes: {{valids}}", "any.default": "emitió un error cuando se ejecutó el metodo default", "alternatives.base": "{{key}}: no coincide con ninguna de las alternativas permitidas", "array.base": "{{key}}: debe ser un array", "array.includes": "{{key}}: en la posición {{pos}} no coincide con ninguno de los tipos permitidos", "array.includesSingle": "{{key}}: el valor de \"{{!key}}\" no coincide con ninguno de los tipos permitidos", "array.includesOne": "{{key}}: en la posición {{pos}} falló porque {{reason}}", "array.includesOneSingle": "{{key}}: el valor \"{{!key}}\" falló porque {{reason}}", "array.includesRequiredUnknowns": "{{key}}: no contiene valor/es requerido/s: {{unknownMisses}} ", "array.includesRequiredKnowns": "{{key}}: no contiene: {{knownMisses}}", "array.includesRequiredBoth": "{{key}}: no contiene {{knownMisses}} y {{unknownMisses}} otros valores requeridos", "array.excludes": "{{key}}: en la posición {{pos}} contiene un valor excluído", "array.excludesSingle": "{{key}}: el valor \"{{!key}}\" contiene un valor excluído", "array.min": "{{key}}: debe contener al menos {{limit}} items", "array.max": "{{key}}: debe contener máximo {{limit}} items", "array.length": "{{key}}: debe contener exactamente {{limit}} items", "array.ordered": "{{key}}: en la posición {{pos}} falló porque {{reason}}", "array.orderedLength": "{{key}}: en la posición {{pos}} falló porque el array debre contener como máximo {{limit}} items", "array.sparse": "{{key}}: no debe ser un array esparcido", "array.unique": "{{key}}: posición {{pos}} contiene un valor duplicado", "boolean.base": "{{key}}: debe ser un valor verdadero/falso o si/no", "binary.base": "{{key}}: debe ser un buffer o un string", "binary.min": "{{key}}: debe ser como mínimo de {{limit}} bytes", "binary.max": "{{key}}: debe ser como máximo de {{limit}} bytes", "binary.length": "{{key}}: debe tener exactamente {{limit}} bytes", "date.base": "{{key}}: debe ser una cantidad de milisegundos o una fecha en cadena de texto válida", "date.min": "{{key}}: debe ser mayor o igual a \"{{limit}}\"", "date.max": "{{key}}: debe ser menor o igual que \"{{limit}}\"", "date.isoDate": "{{key}}: debe ser una fecha en formato ISO 8601", "date.ref": "referencia a \"{{ref}}\", que no es una fecha válida", "function.base": "{{key}}: debe ser una función", "object.base": "{{key}}: debe ser un objeto", "object.child": "hijo \"{{!key}}\" falló porque {{reason}}", "object.min": "{{key}}: debe tener como mínimo {{limit}} hijo", "object.max": "{{key}}: debe tener menos o a lo sumo {{limit}} hijo", "object.length": "{{key}}: debe tener máximo {{limit}} hijo/s", "object.allowUnknown": "no está permitido", "object.with": "peer faltante: \"{{peer}}\"", "object.without": "conflicto con peer prohibido: \"{{peer}}\"", "object.missing": "{{key}}: debe contener al menos uno de: {{peers}}", "object.xor": "{{key}}: contiene un conflicto con alguno de: {{peers}}", "object.or": "{{key}}: debe contener al menos uno de: {{peers}}", "object.and": "contiene {{present}} sin el requerido: {{missing}}", "object.nand": "!!\"{{main}}\" no debe existir simultáneamente con {{peers}}", "object.assert": "!!\"{{ref}}\" falló validacion porque \"{{ref}}\" falló a {{message}}", "object.rename.multiple": "{{key}}: no se puede renombrar el hijo \"{{from}}\" porque múltiples re-nombramientos estan deshabilitados y otra clave fue renombrada a \"{{to}}\"", "object.rename.override": "{{key}}: no se puede renombrar el hijo \"{{from}}\" porque la sobre escritura esta deshabilitada y el target \"{{to}}\" existe", "object.type": "{{key}}: debe ser una instancia de \"{{type}}\"", "number.base": "{{key}}: debe ser un número", "number.min": "{{key}}: debe ser mayor o igual que {{limit}}", "number.max": "{{key}}: debe ser menor o igual que {{limit}}", "number.less": "{{key}}: debe ser menor a {{limit}}", "number.greater": "{{key}}: debe ser mayor a {{limit}}", "number.float": "{{key}}: debe ser un numero flotante", "number.integer": "{{key}}: debe ser un número entero", "number.negative": "{{key}}: debe ser un número negativo", "number.positive": "{{key}}: debe ser un número positivo", "number.precision": "{{key}}: no debe tener mas de {{limit}} decimales", "number.ref": "{{key}}: referencia a \"{{ref}}\" que no es un número", "number.multiple": "{{key}}: debe ser un múltiplo de {{multiple}}", "string.base": "{{key}}: debe ser una cadena de texto", "string.min": "{{key}}: debe ser mínimo de {{limit}} caracteres de largo", "string.max": "{{key}}: debe ser de máximo {{limit}} caracteres de largo", "string.length": "{{key}}: debe ser exactamente de {{limit}} caracteres de largo", "string.alphanum": "{{key}}: debe contener solo letras y números", "string.token": "{{key}}: debe contener solo letras, números y guines bajos", "string.regex.base": "{{key}}: el valor \"{{!value}}\" no coincide con el pattern requerido: {{pattern}}", "string.regex.name": "{{key}}: el valor \"{{!value}}\" no coincide con el nombre de pattern {{name}}", "string.email": "{{key}}: debe ser un email válido", "string.uri": "{{key}}: debe sre una uri válida", "string.uriCustomScheme": "{{key}}: debe ser una uri válida con el esquema concidiente con el patrón {{scheme}}", "string.isoDate": "{{key}}: debe ser una fecha en formato ISO 8601 válida", "string.guid": "{{key}}: debe ser un GUID valido", "string.hex": "{{key}}: debe contener solo caracteres hexadecimales", "string.hostname": "{{key}}: deber ser un hostname válido", "string.lowercase": "{{key}}: solo debe contener minúsculas", "string.uppercase": "{{key}}: solo debe contener mayúsculas", "string.trim": "{{key}}: no debe tener espacios en blanco delante o atrás", "string.creditCard": "{{key}}: debe ser una tarjeta de crédito", "string.ref": "Referencia \"{{ref}}\" que no es un número", "string.ip": "{{key}}: debe ser una dirección ip válida con un CDIR {{cidr}}", "string.ipVersion": "{{key}}: debe ser una dirección ip válida de una de las siguientes versiones {{version}} con un CDIR {{cidr}}", "object.unknown": "{{key}}: es un campo no es permitido" }

In joi u can use validations like this

const validate = schema.validate(data, {abortEarly: false}); if(validate.error){ let messageError = '' for (const index of validate.error.details.keys()) { const tmpErr = validate.error.details[index] const value = i18n.__(tmpErr.type , tmpErr.context) messageError = messageError === '' ? ${value}:${messageError}, ${value}} next(Boom.badRequest(messageError, exceptions.DE001 )) }

When data its the request values

@juniorUsca
Copy link

thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment