diff --git a/src/main/java/com/networknt/schema/i18n/Locales.java b/src/main/java/com/networknt/schema/i18n/Locales.java index 0c9231034..43f8fa8c7 100644 --- a/src/main/java/com/networknt/schema/i18n/Locales.java +++ b/src/main/java/com/networknt/schema/i18n/Locales.java @@ -30,7 +30,7 @@ public class Locales { /** * The list of locale resource bundles. */ - public static final String[] SUPPORTED_LANGUAGE_TAGS = new String[] { "ar", "cs", "da", "de", "fa", "fi", "fr", + public static final String[] SUPPORTED_LANGUAGE_TAGS = new String[] { "ar", "cs", "da", "de", "es", "fa", "fi", "fr", "iw", "he", "hr", "hu", "it", "ja", "ko", "nb", "nl", "pl", "pt", "ro", "ru", "sk", "sv", "th", "tr", "uk", "vi", "zh-CN", "zh-TW" }; diff --git a/src/main/resources/jsv-messages_es.properties b/src/main/resources/jsv-messages_es.properties new file mode 100644 index 000000000..44dbff7b5 --- /dev/null +++ b/src/main/resources/jsv-messages_es.properties @@ -0,0 +1,70 @@ +$ref = {0}: tiene un error con las 'referencias' +additionalItems = {0}: el \u00edndice ''{1}'' no est\u00e1 definido en el esquema y el esquema no permite elementos adicionales +additionalProperties = {0}: la propiedad ''{1}'' no est\u00e1 definida en el esquema y el esquema no permite propiedades adicionales +allOf = {0}: debe ser v\u00e1lido para todos los esquemas {1} +anyOf = {0}: debe ser v\u00e1lido para cualquiera de los esquemas {1} +const = {0}: debe ser el valor constante ''{1}'' +contains = {0}: no contiene un elemento que cumpla estas validaciones: {2} +contains.max = {0}: debe contener como m\u00e1ximo {1} elemento(s) que cumpla(n) estas validaciones: {2} +contains.min = {0}: debe contener al menos {1} elemento(s) que cumpla(n) estas validaciones: {2} +dependencies = {0}: tiene un error con las dependencias {1} +dependentRequired = {0}: tiene una propiedad faltante ''{1}'' que es dependiente y requerida porque ''{2}'' est\u00e1 presente +dependentSchemas = {0}: tiene un error con dependentSchemas {1} +enum = {0}: no tiene un valor en la enumeraci\u00f3n {1} +exclusiveMaximum = {0}: debe tener un valor m\u00e1ximo exclusivo de {1} +exclusiveMinimum = {0}: debe tener un valor m\u00ednimo exclusivo de {1} +false = {0}: el esquema para ''{1}'' es falso +format = {0}: no coincide con el patr\u00f3n {1} {2} +format.date = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 3339 con fecha completa v\u00e1lido +format.date-time = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 3339 con fecha y hora v\u00e1lido +format.duration = {0}: no coincide con el patr\u00f3n {1}; debe ser un ISO 8601 de duraci\u00f3n v\u00e1lido +format.email = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 5321 de buz\u00f3n de correo v\u00e1lido +format.ipv4 = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 2673 de direcci\u00f3n IP v\u00e1lido +format.ipv6 = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 4291 de direcci\u00f3n IP v\u00e1lido +format.idn-email = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 6531 de buz\u00f3n de correo v\u00e1lido +format.idn-hostname = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 5890 de nombre de host internacionalizado v\u00e1lido +format.iri = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 3987 de IRI v\u00e1lido +format.iri-reference = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 3987 de referencia IRI v\u00e1lido +format.uri = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 3986 de URI v\u00e1lido +format.uri-reference = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 3986 de referencia URI v\u00e1lido +format.uri-template = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 6570 de plantilla de URI v\u00e1lido +format.uuid = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 4122 de UUID v\u00e1lido +format.regex = {0}: no coincide con el patr\u00f3n {1}; debe ser una expresi\u00f3n regular ECMA-262 v\u00e1lida +format.time = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 3339 con hora v\u00e1lido +format.hostname = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 1123 de nombre de host v\u00e1lido +format.json-pointer = {0}: no coincide con el patr\u00f3n {1}; debe ser un RFC 6901 de puntero JSON v\u00e1lido +format.relative-json-pointer = {0}: no coincide con el patr\u00f3n {1}; debe ser un IETF relativo de puntero JSON v\u00e1lido +format.unknown = {0}: tiene un formato desconocido ''{1}'' +id = {0}: ''{1}'' no es un v\u00e1lido {2} +items = {0}: el \u00edndice ''{1}'' no est\u00e1 definido en el esquema y el esquema no permite elementos adicionales +maxContains = {0}: debe ser un entero no negativo en {1} +maxItems = {0}: debe tener como m\u00e1ximo {1} elementos, pero se encontraron {2} +maxLength = {0}: debe tener como m\u00e1ximo {1} caracteres +maxProperties = {0}: debe tener como m\u00e1ximo {1} propiedades +maximum = {0}: debe tener un valor m\u00e1ximo de {1} +minContains = {0}: debe ser un entero no negativo en {1} +minContainsVsMaxContains = {0}: minContains debe ser menor o igual a maxContains en {1} +minItems = {0}: debe tener al menos {1} elementos, pero se encontraron {2} +minLength = {0}: debe tener al menos {1} caracteres +minProperties = {0}: debe tener al menos {1} propiedades +minimum = {0}: debe tener un valor m\u00ednimo de {1} +multipleOf = {0}: debe ser m\u00faltiplo de {1} +not = {0}: no debe ser v\u00e1lido para el esquema {1} +notAllowed = {0}: la propiedad ''{1}'' no est\u00e1 permitida, pero est\u00e1 en los datos +oneOf = {0}: debe ser v\u00e1lido para uno y solo un esquema, pero {1} son v\u00e1lidos +oneOf.indexes = {0}: debe ser v\u00e1lido para uno y solo un esquema, pero {1} son v\u00e1lidos con los \u00edndices ''{2}'' +pattern = {0}: no coincide con el patr\u00f3n regex {1} +patternProperties = {0}: tiene algunos errores con las 'propiedades del patr\u00f3n' +prefixItems = {0}: no se encuentra ning\u00fan elemento de validaci\u00f3n en este \u00edndice +properties = {0}: tiene un error con las 'propiedades' +propertyNames = {0}: el nombre ''{1}'' de la propiedad no es v\u00e1lido: {2} +readOnly = {0}: no puede cambiarse, ya que es un campo de solo lectura +required = {0}: no se encontr\u00f3 la propiedad requerida ''{1}'' +type = {0}: se encontraron {1}, se preve\u00edan {2} +unevaluatedItems = {0}: el \u00edndice ''{1}'' no est\u00e1 evaluado y el esquema no permite elementos que no hayan sido evaluados +unevaluatedProperties = {0}: la propiedad ''{1}'' no est\u00e1 evaluada y el esquema no permite propiedades que no hayan sido evaluadas +unionType = {0}: se encontraron {1}, se preve\u00edan {2} +uniqueItems = {0}: debe tener solo elementos \u00fanicos en la matriz +writeOnly = {0}: es un campo de solo lectura, no puede aparecer en los datos +contentEncoding = {0}: no coincide con la codificaci\u00f3n de contenido {1} +contentMediaType = {0}: no es un tipo de medios de contenido diff --git a/src/test/java/com/networknt/schema/LocaleTest.java b/src/test/java/com/networknt/schema/LocaleTest.java index 02f69cf95..31363b9ad 100644 --- a/src/test/java/com/networknt/schema/LocaleTest.java +++ b/src/test/java/com/networknt/schema/LocaleTest.java @@ -120,6 +120,7 @@ void encoding() { expected.put("cs","$: musí mít maximálně 5 znaků"); expected.put("da","$: må højst være på 5 tegn"); expected.put("de","$: darf höchstens 5 Zeichen lang sein"); + expected.put("es","$: debe tener como máximo 5 caracteres"); expected.put("fa","$: باید حداکثر 5 کاراکتر باشد"); expected.put("fi","$: saa olla enintään 5 merkkiä pitkä"); expected.put("fr","$: doit contenir au plus 5 caractères"); diff --git a/src/test/java/com/networknt/schema/i18n/LocalesTest.java b/src/test/java/com/networknt/schema/i18n/LocalesTest.java index d88f06a26..56a612afa 100644 --- a/src/test/java/com/networknt/schema/i18n/LocalesTest.java +++ b/src/test/java/com/networknt/schema/i18n/LocalesTest.java @@ -40,6 +40,12 @@ void shouldReturnHigherPriorityToo() { Locale result = Locales.findSupported("zh-CN;q=1.0,zh-TW;q=0.9"); assertEquals("zh-CN", result.toLanguageTag()); } + + @Test + void shouldReturnSpanish() { + Locale result = Locales.findSupported("es;q=1.0,zh-CN;q=0.9,zh-TW;q=0.9"); + assertEquals("es", result.toLanguageTag()); + } @Test void shouldReturnFound() {