Skip to content

Commit b3783c1

Browse files
authored
Merge pull request #91 from avaje/feature/Length
Add @Length as built-in validator
2 parents b72ca33 + 8253c85 commit b3783c1

23 files changed

+149
-20
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package example.avaje.length;
2+
3+
import io.avaje.validation.constraints.Length;
4+
import jakarta.validation.Valid;
5+
6+
@Valid
7+
public record ALength(
8+
@Length(min = 1, max = 3)
9+
String both,
10+
@Length(max = 5)
11+
String onlyMax,
12+
@Length(min = 2)
13+
String onlyMin,
14+
@Length(min = 2, max = 10, message = "Custom length message")
15+
String withMsg
16+
) {
17+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package example.avaje.length;
2+
3+
import example.avaje.ACustomer;
4+
import io.avaje.validation.ConstraintViolation;
5+
import io.avaje.validation.ConstraintViolationException;
6+
import io.avaje.validation.Validator;
7+
import org.junit.jupiter.api.Test;
8+
9+
import java.util.ArrayList;
10+
import java.util.Locale;
11+
12+
import static org.assertj.core.api.Assertions.assertThat;
13+
import static org.assertj.core.api.Assertions.fail;
14+
15+
class ALengthTest {
16+
17+
final Validator validator = Validator.builder().addLocales(Locale.GERMAN).build();
18+
19+
@Test
20+
void valid() {
21+
var cust = new ALength("ok", "ok", "ok", "ok");
22+
validator.validate(cust);
23+
}
24+
25+
@Test
26+
void blank() {
27+
var violation = one(new ALength("", "ok", "ok", "ok"));
28+
assertThat(violation.message()).isEqualTo("length must be between 1 and 3");
29+
}
30+
31+
@Test
32+
void blankDE() {
33+
var violation = one(new ALength("", "ok", "ok", "ok"), Locale.GERMAN);
34+
assertThat(violation.message()).isEqualTo("Länge muss zwischen 1 und 3 sein");
35+
}
36+
37+
@Test
38+
void lengthMax() {
39+
var violation = one(new ALength("TooLarge", "ok", "ok", "ok"));
40+
assertThat(violation.message()).isEqualTo("length must be between 1 and 3");
41+
}
42+
43+
@Test
44+
void lengthMaxDE() {
45+
var violation = one(new ALength("TooLarge", "ok", "ok", "ok"), Locale.GERMAN);
46+
assertThat(violation.message()).isEqualTo("Länge muss zwischen 1 und 3 sein");
47+
}
48+
49+
@Test
50+
void lengthMinMax() {
51+
var violation = one(new ACustomer("valid", "Other", "TooLarge"));
52+
assertThat(violation.message()).isEqualTo("size must be between 2 and 4");
53+
}
54+
55+
@Test
56+
void lengthCustomMessage() {
57+
var violation = one(new ALength("ok", "ok", "ok", ""));
58+
assertThat(violation.message()).isEqualTo("Custom length message");
59+
}
60+
61+
ConstraintViolation one(Object any) {
62+
return one(any, Locale.ENGLISH);
63+
}
64+
65+
ConstraintViolation one(Object any, Locale locale) {
66+
try {
67+
validator.validate(any, locale);
68+
fail("not expected");
69+
return null;
70+
} catch (ConstraintViolationException e) {
71+
var violations = new ArrayList<>(e.violations());
72+
assertThat(violations).hasSize(1);
73+
return violations.get(0);
74+
}
75+
}
76+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package io.avaje.validation.constraints;
2+
3+
import java.lang.annotation.*;
4+
5+
import static java.lang.annotation.ElementType.*;
6+
7+
/**
8+
* The annotated string length must be between the specified boundaries (included).
9+
*
10+
* <p>Supported types are:
11+
* <ul>
12+
* <li>{@code CharSequence} (length of character sequence is evaluated)
13+
* <li>{@code String} (length of character sequence is evaluated)
14+
* </ul>
15+
*/
16+
@Constraint
17+
@Target({METHOD, FIELD, ANNOTATION_TYPE, PARAMETER, TYPE_USE})
18+
@Retention(RetentionPolicy.RUNTIME)
19+
@Repeatable(Length.List.class)
20+
public @interface Length {
21+
22+
String message() default "{avaje.Length.message}";
23+
24+
Class<?>[] groups() default {};
25+
26+
int min() default 0;
27+
28+
int max() default Integer.MAX_VALUE;
29+
30+
@Target({ElementType.METHOD, ElementType.FIELD})
31+
@Retention(RetentionPolicy.RUNTIME)
32+
@Documented
33+
@interface List {
34+
Length[] value();
35+
}
36+
}

validator/src/main/java/io/avaje/validation/core/adapters/BasicAdapters.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ private BasicAdapters() {}
3030
case "NotBlank" -> new NotBlankAdapter(context.message(attributes), groups);
3131
case "NotEmpty" -> new NotEmptyAdapter(context.message(attributes), groups);
3232
case "Pattern" -> new PatternAdapter(context.message(attributes), groups, attributes);
33-
case "Size" -> new SizeAdapter(context.message(attributes), groups, attributes);
33+
case "Size", "Length" -> new SizeAdapter(context.message(attributes), groups, attributes);
3434
default -> null;
3535
};
3636

validator/src/main/resources/io/avaje/validation/Messages.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ avaje.ext.CreditCardNumber.message = invalid credit card number
2727
avaje.ext.Currency.message = invalid currency (must be one of {value})
2828
avaje.ext.EAN.message = invalid {type} barcode
2929
avaje.ext.ISBN.message = invalid ISBN
30-
avaje.ext.Length.message = length must be between {min} and {max}
30+
avaje.Length.message = length must be between {min} and {max}
3131
avaje.ext.CodePointLength.message = length must be between {min} and {max}
3232
avaje.ext.LuhnCheck.message = the check digit for {validatedValue} is invalid, Luhn Modulo 10 checksum failed
3333
avaje.ext.Mod10Check.message = the check digit for {validatedValue} is invalid, Modulo 10 checksum failed

validator/src/main/resources/io/avaje/validation/Messages_de.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ avaje.ext.CreditCardNumber.message = ung\u00fcltige Kreditkartennummer
2727
avaje.ext.Currency.message = ung\u00fcltige W\u00e4hrung (muss eine der folgenden sein: {value})
2828
avaje.ext.EAN.message = ung\u00fcltiger {type}-Barcode
2929
avaje.ext.ISBN.message = ung\u00fcltige ISBN
30-
avaje.ext.Length.message = L\u00e4nge muss zwischen {min} und {max} sein
30+
avaje.Length.message = L\u00e4nge muss zwischen {min} und {max} sein
3131
avaje.ext.CodePointLength.message = L\u00e4nge muss zwischen {min} und {max} sein
3232
avaje.ext.LuhnCheck.message = die Pr\u00fcfziffer f\u00fcr {validatedValue} ist ung\u00fcltig, Luhn Modulo 10-Kontrollsumme ist fehlgeschlagen
3333
avaje.ext.Mod10Check.message = die Pr\u00fcfziffer f\u00fcr {validatedValue} ist ung\u00fcltig, Modulo 10-Kontrollsumme ist fehlgeschlagen

validator/src/main/resources/io/avaje/validation/Messages_es.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = n\u00famero de tarjeta de cr\u00e9di
2525
avaje.ext.Currency.message = moneda no v\u00e1lida (debe ser una de {value})
2626
avaje.ext.EAN.message = c\u00f3digo de barras {type} no v\u00e1lido
2727
avaje.ext.ISBN.message = ISBN no v\u00e1lido
28-
avaje.ext.Length.message = la longitud debe estar entre {min} y {max}
28+
avaje.Length.message = la longitud debe estar entre {min} y {max}
2929
avaje.ext.CodePointLength.message = la longitud debe estar entre {min} y {max}
3030
avaje.ext.LuhnCheck.message = el d\u00edgito de comprobaci\u00f3n para ${validatedValue} no es v\u00e1lido, ha fallado la suma de comprobaci\u00f3n de Luhn Modulo 10
3131
avaje.ext.Mod10Check.message = el d\u00edgito de comprobaci\u00f3n para ${validatedValue} no es v\u00e1lido, ha fallado la suma de comprobaci\u00f3n de Modulo 10

validator/src/main/resources/io/avaje/validation/Messages_fa.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ avaje.Size.message = \u0633\u0627\u06CC\u0632 \u0628\u0627\u06CC\u062
2424
avaje.ext.CreditCardNumber.message = \u0634\u0645\u0627\u0631\u0647 \u06A9\u0627\u0631\u062A \u0627\u0639\u062A\u0628\u0627\u0631\u06CC \u062F\u0631\u0633\u062A \u0646\u0645\u06CC\u0628\u0627\u0634\u062F
2525
avaje.ext.Currency.message = \u0648\u0627\u062D\u062F \u067E\u0648\u0644 \u062F\u0631\u0633\u062A \u0646\u0645\u06CC\u0628\u0627\u0634\u062F (\u0628\u0627\u06CC\u062F \u06CC\u06A9\u06CC \u0627\u0632 {value} \u0628\u0627\u0634\u062F)
2626
avaje.ext.EAN.message = \u0645\u0642\u062F\u0627\u0631 \u0628\u0631\u0627\u06CC \u0628\u0627\u0631\u06A9\u062F {type} \u062F\u0631\u0633\u062A \u0646\u0645\u06CC\u0628\u0627\u0634\u062F
27-
avaje.ext.Length.message = \u0637\u0648\u0644 \u0628\u0627\u06CC\u062F \u0628\u06CC\u0646 {min} \u0648 {max} \u0628\u0627\u0634\u062F
27+
avaje.Length.message = \u0637\u0648\u0644 \u0628\u0627\u06CC\u062F \u0628\u06CC\u0646 {min} \u0648 {max} \u0628\u0627\u0634\u062F
2828
avaje.ext.CodePointLength.message = \u0637\u0648\u0644 \u0628\u0627\u06CC\u062F \u0628\u06CC\u0646 {min} \u0648 {max} \u0628\u0627\u0634\u062F
2929
avaje.ext.LuhnCheck.message = \u0645\u0642\u062F\u0627\u0631 ${validatedValue} \u0628\u0627 Luhn Modulo 10 \u0647\u0645\u062E\u0648\u0627\u0646\u06CC \u0646\u062F\u0627\u0631\u062F
3030
avaje.ext.Mod10Check.message = \u0645\u0642\u062F\u0627\u0631 ${validatedValue} \u0628\u0627 Modulo 10 \u0647\u0645\u062E\u0648\u0627\u0646\u06CC \u0646\u062F\u0627\u0631\u062F

validator/src/main/resources/io/avaje/validation/Messages_fr.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = num\u00e9ro de carte de cr\u00e9dit
2525
avaje.ext.Currency.message = devise non valide (il doit s'agir de l'une des valeurs suivantes : {value})
2626
avaje.ext.EAN.message = code-barres {type} non valide
2727
avaje.ext.ISBN.message = ISBN non valide
28-
avaje.ext.Length.message = la longueur doit \u00eatre comprise entre {min} et {max}
28+
avaje.Length.message = la longueur doit \u00eatre comprise entre {min} et {max}
2929
avaje.ext.CodePointLength.message = la longueur doit \u00eatre comprise entre {min} et {max}
3030
avaje.ext.LuhnCheck.message = la cl\u00e9 de contr\u00f4le pour ${validatedValue} n'est pas valide ; la somme de contr\u00f4le de l'algorithme de Luhn (modulo 10) a \u00e9chou\u00e9
3131
avaje.ext.Mod10Check.message = la cl\u00e9 de contr\u00f4le pour ${validatedValue} n'est pas valide ; la somme de contr\u00f4le de l'algorithme modulo 10 a \u00e9chou\u00e9

validator/src/main/resources/io/avaje/validation/Messages_hu.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = \u00e9rv\u00e9nytelen hitelk\u00e1rt
2525
avaje.ext.Currency.message = \u00e9rv\u00e9nytelen p\u00e9nznem (a k\u00f6vetkez\u0151k egyike lehet: {value})
2626
avaje.ext.EAN.message = \u00e9rv\u00e9nytelen {type} vonalk\u00f3d
2727
avaje.ext.ISBN.message = \u00e9rv\u00e9nytelen ISBN
28-
avaje.ext.Length.message = a hossznak a(z) {min} \u00e9s {max} \u00e9rt\u00e9kek k\u00f6z\u00f6tt kell lennie
28+
avaje.Length.message = a hossznak a(z) {min} \u00e9s {max} \u00e9rt\u00e9kek k\u00f6z\u00f6tt kell lennie
2929
avaje.ext.CodePointLength.message = a hossznak a(z) {min} \u00e9s {max} \u00e9rt\u00e9kek k\u00f6z\u00f6tt kell lennie
3030
avaje.ext.LuhnCheck.message = a(z) ${validatedValue} ellen\u0151rz\u0151 sz\u00e1mjegye \u00e9rv\u00e9nytelen, a Luhn Modulo 10 ellen\u0151rz\u0151\u00f6sszeg meghi\u00fasult
3131
avaje.ext.Mod10Check.message = a(z) ${validatedValue} ellen\u0151rz\u0151 sz\u00e1mjegye \u00e9rv\u00e9nytelen, a Modulo 10 ellen\u0151rz\u0151\u00f6sszeg meghi\u00fasult

validator/src/main/resources/io/avaje/validation/Messages_it.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = numero carta di credito non valido
2525
avaje.ext.Currency.message = valuta non valida (deve essere una di {value})
2626
avaje.ext.EAN.message = codicie a barre {type} non valido
2727
avaje.ext.ISBN.message = ISBN non valido
28-
avaje.ext.Length.message = la lunghezza deve essere compresa tra {min} e {max}
28+
avaje.Length.message = la lunghezza deve essere compresa tra {min} e {max}
2929
avaje.ext.CodePointLength.message = la lunghezza deve essere compresa tra {min} e {max}
3030
avaje.ext.LuhnCheck.message = la cifra di controllo per ${validatedValue} non \u00e8 valida, checksum Luhn Modulo 10 non riuscito
3131
avaje.ext.Mod10Check.message = la cifra di controllo per ${validatedValue} non \u00e8 valida, checksum Modulo 10 non riuscito

validator/src/main/resources/io/avaje/validation/Messages_ja.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = \u6b63\u3057\u304f\u306a\u3044\u30af
2525
avaje.ext.Currency.message = \u6b63\u3057\u304f\u306a\u3044\u901a\u8ca8\u5358\u4f4d\u3067\u3059 ({value} \u306e\u4e2d\u304b\u3089\u9078\u3093\u3067\u304f\u3060\u3055\u3044)
2626
avaje.ext.EAN.message = \u6b63\u3057\u304f\u306a\u3044 {type} \u30d0\u30fc\u30b3\u30fc\u30c9\u3067\u3059
2727
avaje.ext.ISBN.message = \u6b63\u3057\u304f\u306a\u3044 ISBN \u3067\u3059
28-
avaje.ext.Length.message = {min} \u304b\u3089 {max} \u306e\u9593\u306e\u9577\u3055\u306b\u3057\u3066\u304f\u3060\u3055\u3044
28+
avaje.Length.message = {min} \u304b\u3089 {max} \u306e\u9593\u306e\u9577\u3055\u306b\u3057\u3066\u304f\u3060\u3055\u3044
2929
avaje.ext.CodePointLength.message = {min} \u304b\u3089 {max} \u306e\u9593\u306e\u9577\u3055\u306b\u3057\u3066\u304f\u3060\u3055\u3044
3030
avaje.ext.LuhnCheck.message = ${validatedValue} \u306e\u30c1\u30a7\u30c3\u30af\u30c7\u30b8\u30c3\u30c8\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093 (Luhn \u30e2\u30c7\u30e5\u30e9\u30b910\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0)
3131
avaje.ext.Mod10Check.message = ${validatedValue} \u306e\u30c1\u30a7\u30c3\u30af\u30c7\u30b8\u30c3\u30c8\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093 (\u30e2\u30c7\u30e5\u30e9\u30b910)

validator/src/main/resources/io/avaje/validation/Messages_ko.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = \uc62c\ubc14\ub974\uc9c0 \uc54a\uc74
2525
avaje.ext.Currency.message = \uc62c\ubc14\ub974\uc9c0 \uc54a\uc740 \ud1b5\ud654\uc785\ub2c8\ub2e4({value} \uc911 \ud558\ub098\uc5ec\uc57c \ud568)
2626
avaje.ext.EAN.message = \uc62c\ubc14\ub974\uc9c0 \uc54a\uc740 {type} \ubc14\ucf54\ub4dc\uc785\ub2c8\ub2e4
2727
avaje.ext.ISBN.message = \uc62c\ubc14\ub974\uc9c0 \uc54a\uc740 ISBN\uc785\ub2c8\ub2e4
28-
avaje.ext.Length.message = \uae38\uc774\uac00 {min}\uc5d0\uc11c {max} \uc0ac\uc774\uc5ec\uc57c \ud569\ub2c8\ub2e4
28+
avaje.Length.message = \uae38\uc774\uac00 {min}\uc5d0\uc11c {max} \uc0ac\uc774\uc5ec\uc57c \ud569\ub2c8\ub2e4
2929
avaje.ext.CodePointLength.message = \uae38\uc774\uac00 {min}\uc5d0\uc11c {max} \uc0ac\uc774\uc5ec\uc57c \ud569\ub2c8\ub2e4
3030
avaje.ext.LuhnCheck.message = ${validatedValue}\uc758 \uccb4\ud06c \ub514\uc9c0\ud2b8\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. Luhn Modulo 10 \uccb4\ud06c\uc12c\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4
3131
avaje.ext.Mod10Check.message = ${validatedValue}\uc758 \uccb4\ud06c \ub514\uc9c0\ud2b8\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. Modulo 10 \uccb4\ud06c\uc12c\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4

validator/src/main/resources/io/avaje/validation/Messages_nl.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = creditcard nummer ongeldig
2525
avaje.ext.Currency.message = ongeldige valuta (toegestane waarden: {value})
2626
avaje.ext.EAN.message = ongeldige barcode
2727
avaje.ext.ISBN.message = ongeldig ISBN
28-
avaje.ext.Length.message = moet tussen {min} en {max} tekens lang zijn
28+
avaje.Length.message = moet tussen {min} en {max} tekens lang zijn
2929
avaje.ext.CodePointLength.message = moet tussen {min} en {max} tekens lang zijn
3030
avaje.ext.LuhnCheck.message = het controlecijfer voor ${validatedValue} is ongeldig, Luhn Modulo 10 checksum mislukt
3131
avaje.ext.Mod10Check.message = het controlecijfer voor ${validatedValue} is ongeldig, Modulo 10 checksum mislukt

validator/src/main/resources/io/avaje/validation/Messages_pl.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = niepoprawny numer karty kredytowej
2525
avaje.ext.Currency.message = niepoprawna waluta (musi by\u0107 jedn\u0105 z nast\u0119puj\u0105cych: {value})
2626
avaje.ext.EAN.message = niepoprawny kod paskowy {type}
2727
avaje.ext.ISBN.message = niepoprawny numer ISBN
28-
avaje.ext.Length.message = d\u0142ugo\u015b\u0107 musi wynosi\u0107 od {min} do {max}
28+
avaje.Length.message = d\u0142ugo\u015b\u0107 musi wynosi\u0107 od {min} do {max}
2929
avaje.ext.CodePointLength.message = d\u0142ugo\u015b\u0107 musi wynosi\u0107 od {min} do {max}
3030
avaje.ext.LuhnCheck.message = cyfra kontrolna dla warto\u015bci ${validatedValue} jest niepoprawna, sprawdzenie sumy kontrolnej za pomoc\u0105 algorytmu Luhn Modulo 10 nie powiod\u0142o si\u0119
3131
avaje.ext.Mod10Check.message = cyfra kontrolna dla warto\u015bci ${validatedValue} jest niepoprawna, sprawdzenie sumy kontrolnej za pomoc\u0105 algorytmu Modulo 10 nie powiod\u0142o si\u0119

validator/src/main/resources/io/avaje/validation/Messages_pt.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = n\u00famero do cart\u00e3o de cr\u00
2525
avaje.ext.Currency.message = moeda inv\u00e1lida (deve ser uma de {value})
2626
avaje.ext.EAN.message = c\u00f3digo de barras {type} inv\u00e1lido
2727
avaje.ext.ISBN.message = ISBN inv\u00e1lido
28-
avaje.ext.Length.message = o comprimento deve ser entre {min} e {max}
28+
avaje.Length.message = o comprimento deve ser entre {min} e {max}
2929
avaje.ext.CodePointLength.message = o comprimento deve ser entre {min} e {max}
3030
avaje.ext.LuhnCheck.message = o d\u00edgito de verifica\u00e7\u00e3o para ${validatedValue} \u00e9 inv\u00e1lido, soma de verifica\u00e7\u00e3o Luhn Modulo 10 com falha
3131
avaje.ext.Mod10Check.message = o d\u00edgito de verifica\u00e7\u00e3o para ${validatedValue} \u00e9 inv\u00e1lido, soma de verifica\u00e7\u00e3o Modulo 10 com falha

validator/src/main/resources/io/avaje/validation/Messages_ro.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ avaje.ext.CreditCardNumber.message = num\u0103r invalid de card de credit
2525
avaje.ext.Currency.message = moned\u0103 invalid\u0103 trebuie s\u0103 fie una din {value})
2626
avaje.ext.EAN.message = cod de bare {type} invalid
2727
avaje.ext.ISBN.message = ISBN invalid
28-
avaje.ext.Length.message = lungimea trebuie s\u0103 fie \u00eentre {min} \u015fi {max}
28+
avaje.Length.message = lungimea trebuie s\u0103 fie \u00eentre {min} \u015fi {max}
2929
avaje.ext.CodePointLength.message = lungimea trebuie s\u0103 fie \u00eentre {min} \u015fi {max}
3030
avaje.ext.LuhnCheck.message = cifra de verificare pentru ${validatedValue} este invalid\u0103, suma de control Luhn Modulo 10 a e\u015fuat
3131
avaje.ext.Mod10Check.message = cifra de verificare pentru ${validatedValue} este invalid\u0103, suma de control Modulo 10 a e\u015fuat

validator/src/main/resources/io/avaje/validation/Messages_sk.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ avaje.Size.message = ve\u013ekos\u0165 mus\u00ed by\u0165 medzi {min} a {
1717

1818
avaje.ext.CreditCardNumber.message = neplatn\u00e9 \u010d\u00edslo kreditnej karty
1919
avaje.ext.EAN.message = nespr\u00e1vny {type} \u010diarov\u00fd k\u00f3d
20-
avaje.ext.Length.message = d\u013a\u017eka mus\u00ed by\u0165 medzi {min} a {max}
20+
avaje.Length.message = d\u013a\u017eka mus\u00ed by\u0165 medzi {min} a {max}
2121
avaje.ext.CodePointLength.message = d\u013a\u017eka mus\u00ed by\u0165 medzi {min} a {max}
2222
avaje.ext.LuhnCheck.message = kontroln\u00e1 \u010d\u00edslica pre ${validatedValue} nie je spr\u00e1vna, kontroln\u00fd s\u00fa\u010det Luhn Modulo 10 zlyhal
2323
avaje.ext.Mod10Check.message = kontroln\u00e1 \u010d\u00edslica pre ${validatedValue} nie je spr\u00e1vna, kontroln\u00fd s\u00fa\u010det Modulo 10 zlyhal

validator/src/main/resources/io/avaje/validation/Messages_tr.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ avaje.Past.message = ge\u00E7mi\u015F bir tarih olmal\u0131
1515
avaje.Pattern.message = '{regexp}' ile e\u015Fle\u015Fmeli
1616
avaje.Size.message = boyut '{min}' ile '{max}' aras\u0131nda olmal\u0131
1717

18-
avaje.ext.Length.message = uzunluk '{min}' ile '{max}' aras\u0131nda olmal\u0131
18+
avaje.Length.message = uzunluk '{min}' ile '{max}' aras\u0131nda olmal\u0131
1919
avaje.ext.CodePointLength.message = uzunluk '{min}' ile '{max}' aras\u0131nda olmal\u0131
2020
avaje.ext.Range.message = {min} ve {max} aras\u0131nda olmal\u0131d\u0131r!

0 commit comments

Comments
 (0)