Skip to content

Spanish translations #1183

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/main/java/com/networknt/schema/i18n/Locales.java
Original file line number Diff line number Diff line change
Expand Up @@ -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" };

Expand Down
70 changes: 70 additions & 0 deletions src/main/resources/jsv-messages_es.properties
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions src/test/java/com/networknt/schema/LocaleTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
6 changes: 6 additions & 0 deletions src/test/java/com/networknt/schema/i18n/LocalesTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down