@oxog/vld 1.4.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/CHANGELOG.md +449 -333
  2. package/README.md +1171 -1130
  3. package/dist/chunks/bigint-ZKkWLdmi.js +1628 -0
  4. package/dist/chunks/bigint-ZKkWLdmi.js.map +1 -0
  5. package/dist/{coercion/string.js → chunks/date-7Iz2BGsL.js} +271 -5
  6. package/dist/chunks/date-7Iz2BGsL.js.map +1 -0
  7. package/dist/chunks/index-BoV-4S1F.js +894 -0
  8. package/dist/chunks/index-BoV-4S1F.js.map +1 -0
  9. package/dist/chunks/index-eWXdjyyy.js +426 -0
  10. package/dist/chunks/index-eWXdjyyy.js.map +1 -0
  11. package/dist/chunks/json-nIhyRPOU.js +1934 -0
  12. package/dist/chunks/json-nIhyRPOU.js.map +1 -0
  13. package/dist/{validators/unknown.js → chunks/unknown-CjSRcELI.js} +6 -3
  14. package/dist/chunks/unknown-CjSRcELI.js.map +1 -0
  15. package/dist/cjs/errors.cjs +387 -0
  16. package/dist/cjs/errors.cjs.map +1 -0
  17. package/dist/cjs/index.cjs +9815 -0
  18. package/dist/cjs/index.cjs.map +1 -0
  19. package/dist/cjs/locales/index.cjs +2877 -0
  20. package/dist/cjs/locales/index.cjs.map +1 -0
  21. package/dist/cjs/locales/lazy.cjs +3169 -0
  22. package/dist/cjs/locales/lazy.cjs.map +1 -0
  23. package/dist/cjs/mini.cjs +7161 -0
  24. package/dist/cjs/mini.cjs.map +1 -0
  25. package/dist/cli/bin.d.ts +8 -0
  26. package/dist/cli/bin.d.ts.map +1 -0
  27. package/dist/cli/commands/benchmark.d.ts +11 -0
  28. package/dist/cli/commands/benchmark.d.ts.map +1 -0
  29. package/dist/cli/commands/validate.d.ts +11 -0
  30. package/dist/cli/commands/validate.d.ts.map +1 -0
  31. package/dist/cli/index.d.ts +59 -0
  32. package/dist/cli/index.d.ts.map +1 -0
  33. package/dist/codecs/index.d.ts.map +1 -1
  34. package/dist/codecs/index.js +4 -256
  35. package/dist/codecs/index.js.map +1 -1
  36. package/dist/coercion/boolean.d.ts.map +1 -1
  37. package/dist/coercion/index.d.ts +11 -0
  38. package/dist/coercion/index.d.ts.map +1 -0
  39. package/dist/coercion/{bigint.js → index.js} +7 -4
  40. package/dist/coercion/index.js.map +1 -0
  41. package/dist/compat/emitter.d.ts +73 -0
  42. package/dist/compat/emitter.d.ts.map +1 -0
  43. package/dist/compat/emitter.js +181 -0
  44. package/dist/compat/emitter.js.map +1 -0
  45. package/dist/compat/index.d.ts +15 -0
  46. package/dist/compat/index.d.ts.map +1 -0
  47. package/dist/compat/result.d.ts +128 -0
  48. package/dist/compat/result.d.ts.map +1 -0
  49. package/dist/compat/result.js +171 -0
  50. package/dist/compat/result.js.map +1 -0
  51. package/dist/errors.d.ts +58 -1
  52. package/dist/errors.d.ts.map +1 -1
  53. package/dist/errors.js +106 -15
  54. package/dist/errors.js.map +1 -1
  55. package/dist/events.d.ts +140 -0
  56. package/dist/events.d.ts.map +1 -0
  57. package/dist/index.d.ts +13 -1
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +230 -103
  60. package/dist/index.js.map +1 -1
  61. package/dist/kernel.d.ts +29 -0
  62. package/dist/kernel.d.ts.map +1 -0
  63. package/dist/kernel.js +405 -0
  64. package/dist/kernel.js.map +1 -0
  65. package/dist/locales/af.js +4 -2
  66. package/dist/locales/af.js.map +1 -1
  67. package/dist/locales/ar.js +4 -2
  68. package/dist/locales/ar.js.map +1 -1
  69. package/dist/locales/bn.js +4 -2
  70. package/dist/locales/bn.js.map +1 -1
  71. package/dist/locales/da.js +4 -2
  72. package/dist/locales/da.js.map +1 -1
  73. package/dist/locales/de.js +4 -2
  74. package/dist/locales/de.js.map +1 -1
  75. package/dist/locales/en.js +4 -2
  76. package/dist/locales/en.js.map +1 -1
  77. package/dist/locales/es-MX.js +4 -2
  78. package/dist/locales/es-MX.js.map +1 -1
  79. package/dist/locales/es.js +4 -2
  80. package/dist/locales/es.js.map +1 -1
  81. package/dist/locales/fi.js +4 -2
  82. package/dist/locales/fi.js.map +1 -1
  83. package/dist/locales/fr.js +4 -2
  84. package/dist/locales/fr.js.map +1 -1
  85. package/dist/locales/hi.js +4 -2
  86. package/dist/locales/hi.js.map +1 -1
  87. package/dist/locales/id.js +4 -2
  88. package/dist/locales/id.js.map +1 -1
  89. package/dist/locales/index.js +3 -91
  90. package/dist/locales/index.js.map +1 -1
  91. package/dist/locales/it.js +4 -2
  92. package/dist/locales/it.js.map +1 -1
  93. package/dist/locales/ja.js +4 -2
  94. package/dist/locales/ja.js.map +1 -1
  95. package/dist/locales/ko.js +4 -2
  96. package/dist/locales/ko.js.map +1 -1
  97. package/dist/locales/lazy.d.ts +111 -0
  98. package/dist/locales/lazy.d.ts.map +1 -0
  99. package/dist/locales/lazy.js +220 -0
  100. package/dist/locales/lazy.js.map +1 -0
  101. package/dist/locales/nl.js +4 -2
  102. package/dist/locales/nl.js.map +1 -1
  103. package/dist/locales/no.js +4 -2
  104. package/dist/locales/no.js.map +1 -1
  105. package/dist/locales/pl.js +4 -2
  106. package/dist/locales/pl.js.map +1 -1
  107. package/dist/locales/pt-BR.js +4 -2
  108. package/dist/locales/pt-BR.js.map +1 -1
  109. package/dist/locales/pt.js +4 -2
  110. package/dist/locales/pt.js.map +1 -1
  111. package/dist/locales/ru.js +4 -2
  112. package/dist/locales/ru.js.map +1 -1
  113. package/dist/locales/sv.js +4 -2
  114. package/dist/locales/sv.js.map +1 -1
  115. package/dist/locales/sw.js +4 -2
  116. package/dist/locales/sw.js.map +1 -1
  117. package/dist/locales/th.js +4 -2
  118. package/dist/locales/th.js.map +1 -1
  119. package/dist/locales/tr.js +4 -2
  120. package/dist/locales/tr.js.map +1 -1
  121. package/dist/locales/vi.js +4 -2
  122. package/dist/locales/vi.js.map +1 -1
  123. package/dist/locales/zh.js +4 -2
  124. package/dist/locales/zh.js.map +1 -1
  125. package/dist/logger.d.ts +94 -0
  126. package/dist/logger.d.ts.map +1 -0
  127. package/dist/mini.d.ts +182 -0
  128. package/dist/mini.d.ts.map +1 -0
  129. package/dist/mini.js +132 -0
  130. package/dist/mini.js.map +1 -0
  131. package/dist/pigment.d.ts +124 -0
  132. package/dist/pigment.d.ts.map +1 -0
  133. package/dist/pigment.js +178 -0
  134. package/dist/pigment.js.map +1 -0
  135. package/dist/plugins/index.d.ts +8 -0
  136. package/dist/plugins/index.d.ts.map +1 -0
  137. package/dist/plugins/types.d.ts +186 -0
  138. package/dist/plugins/types.d.ts.map +1 -0
  139. package/dist/utils/codec-utils.d.ts.map +1 -1
  140. package/dist/utils/ip-validation.d.ts.map +1 -1
  141. package/dist/validators/base.d.ts +3 -0
  142. package/dist/validators/base.d.ts.map +1 -1
  143. package/dist/validators/index.js +5 -45
  144. package/dist/validators/index.js.map +1 -1
  145. package/dist/validators/object.d.ts.map +1 -1
  146. package/dist/validators/template-literal.d.ts.map +1 -1
  147. package/package.json +153 -79
  148. package/dist/coercion/bigint.js.map +0 -1
  149. package/dist/coercion/boolean.js +0 -67
  150. package/dist/coercion/boolean.js.map +0 -1
  151. package/dist/coercion/date.js +0 -52
  152. package/dist/coercion/date.js.map +0 -1
  153. package/dist/coercion/number.js +0 -160
  154. package/dist/coercion/number.js.map +0 -1
  155. package/dist/coercion/string.js.map +0 -1
  156. package/dist/locales/backup-en.js +0 -105
  157. package/dist/locales/backup-en.js.map +0 -1
  158. package/dist/locales/types.js +0 -2
  159. package/dist/locales/types.js.map +0 -1
  160. package/dist/utils/codec-utils.js +0 -223
  161. package/dist/utils/codec-utils.js.map +0 -1
  162. package/dist/utils/deep-merge.js +0 -76
  163. package/dist/utils/deep-merge.js.map +0 -1
  164. package/dist/utils/ip-validation.js +0 -78
  165. package/dist/utils/ip-validation.js.map +0 -1
  166. package/dist/utils/security.js +0 -61
  167. package/dist/utils/security.js.map +0 -1
  168. package/dist/validators/any.js +0 -25
  169. package/dist/validators/any.js.map +0 -1
  170. package/dist/validators/array.js +0 -190
  171. package/dist/validators/array.js.map +0 -1
  172. package/dist/validators/base.js +0 -491
  173. package/dist/validators/base.js.map +0 -1
  174. package/dist/validators/base64.js +0 -65
  175. package/dist/validators/base64.js.map +0 -1
  176. package/dist/validators/bigint.js +0 -142
  177. package/dist/validators/bigint.js.map +0 -1
  178. package/dist/validators/boolean.js +0 -114
  179. package/dist/validators/boolean.js.map +0 -1
  180. package/dist/validators/codec.js +0 -182
  181. package/dist/validators/codec.js.map +0 -1
  182. package/dist/validators/custom.js +0 -50
  183. package/dist/validators/custom.js.map +0 -1
  184. package/dist/validators/date.js +0 -227
  185. package/dist/validators/date.js.map +0 -1
  186. package/dist/validators/discriminated-union.js +0 -98
  187. package/dist/validators/discriminated-union.js.map +0 -1
  188. package/dist/validators/enum.js +0 -82
  189. package/dist/validators/enum.js.map +0 -1
  190. package/dist/validators/file.js +0 -114
  191. package/dist/validators/file.js.map +0 -1
  192. package/dist/validators/function.js +0 -45
  193. package/dist/validators/function.js.map +0 -1
  194. package/dist/validators/hex.js +0 -62
  195. package/dist/validators/hex.js.map +0 -1
  196. package/dist/validators/intersection.js +0 -64
  197. package/dist/validators/intersection.js.map +0 -1
  198. package/dist/validators/json.js +0 -64
  199. package/dist/validators/json.js.map +0 -1
  200. package/dist/validators/lazy.js +0 -42
  201. package/dist/validators/lazy.js.map +0 -1
  202. package/dist/validators/literal.js +0 -45
  203. package/dist/validators/literal.js.map +0 -1
  204. package/dist/validators/map.js +0 -54
  205. package/dist/validators/map.js.map +0 -1
  206. package/dist/validators/nan.js +0 -32
  207. package/dist/validators/nan.js.map +0 -1
  208. package/dist/validators/never.js +0 -29
  209. package/dist/validators/never.js.map +0 -1
  210. package/dist/validators/null.js +0 -31
  211. package/dist/validators/null.js.map +0 -1
  212. package/dist/validators/number.js +0 -225
  213. package/dist/validators/number.js.map +0 -1
  214. package/dist/validators/object.js +0 -458
  215. package/dist/validators/object.js.map +0 -1
  216. package/dist/validators/record.js +0 -128
  217. package/dist/validators/record.js.map +0 -1
  218. package/dist/validators/set.js +0 -51
  219. package/dist/validators/set.js.map +0 -1
  220. package/dist/validators/string-bool.js +0 -127
  221. package/dist/validators/string-bool.js.map +0 -1
  222. package/dist/validators/string-formats.js +0 -120
  223. package/dist/validators/string-formats.js.map +0 -1
  224. package/dist/validators/string.js +0 -253
  225. package/dist/validators/string.js.map +0 -1
  226. package/dist/validators/symbol.js +0 -42
  227. package/dist/validators/symbol.js.map +0 -1
  228. package/dist/validators/template-literal.js +0 -101
  229. package/dist/validators/template-literal.js.map +0 -1
  230. package/dist/validators/tuple.js +0 -55
  231. package/dist/validators/tuple.js.map +0 -1
  232. package/dist/validators/uint8array.js +0 -98
  233. package/dist/validators/uint8array.js.map +0 -1
  234. package/dist/validators/undefined.js +0 -31
  235. package/dist/validators/undefined.js.map +0 -1
  236. package/dist/validators/union.js +0 -126
  237. package/dist/validators/union.js.map +0 -1
  238. package/dist/validators/unknown.js.map +0 -1
  239. package/dist/validators/void.js +0 -35
  240. package/dist/validators/void.js.map +0 -1
  241. package/dist/validators/xor.js +0 -64
  242. package/dist/validators/xor.js.map +0 -1
@@ -0,0 +1,2877 @@
1
+ 'use strict';
2
+
3
+ const en = {
4
+ // String validation messages
5
+ invalidString: 'Invalid string',
6
+ stringMin: (min) => `String must be at least ${min} characters`,
7
+ stringMax: (max) => `String must be at most ${max} characters`,
8
+ stringLength: (length) => `String must be exactly ${length} characters`,
9
+ stringEmail: 'Invalid email address',
10
+ stringUrl: 'Invalid URL',
11
+ stringUuid: 'Invalid UUID',
12
+ stringRegex: 'Invalid format',
13
+ stringStartsWith: (prefix) => `String must start with "${prefix}"`,
14
+ stringEndsWith: (suffix) => `String must end with "${suffix}"`,
15
+ stringIncludes: (substring) => `String must include "${substring}"`,
16
+ stringIp: 'Invalid IP address',
17
+ stringIpv4: 'Invalid IPv4 address',
18
+ stringIpv6: 'Invalid IPv6 address',
19
+ stringEmpty: 'String must not be empty',
20
+ // Number validation messages
21
+ invalidNumber: 'Invalid number',
22
+ numberMin: (min) => `Number must be at least ${min}`,
23
+ numberMax: (max) => `Number must be at most ${max}`,
24
+ numberInt: 'Number must be an integer',
25
+ numberPositive: 'Number must be positive',
26
+ numberNegative: 'Number must be negative',
27
+ numberNonnegative: 'Number must be non-negative',
28
+ numberNonpositive: 'Number must be non-positive',
29
+ numberFinite: 'Number must be finite',
30
+ numberSafe: 'Number must be a safe integer',
31
+ numberMultipleOf: (value) => `Number must be a multiple of ${value}`,
32
+ // Boolean validation messages
33
+ invalidBoolean: 'Invalid boolean',
34
+ // Date validation messages
35
+ invalidDate: 'Invalid date',
36
+ dateMin: (date) => `Date must be after ${date.toISOString()}`,
37
+ dateMax: (date) => `Date must be before ${date.toISOString()}`,
38
+ // Object validation messages
39
+ invalidObject: 'Invalid object',
40
+ unexpectedKeys: (keys) => `Unexpected keys: ${keys.join(', ')}`,
41
+ // Array validation messages
42
+ invalidArray: 'Invalid array',
43
+ arrayMin: (min) => `Array must have at least ${min} items`,
44
+ arrayMax: (max) => `Array must have at most ${max} items`,
45
+ arrayLength: (length) => `Array must have exactly ${length} items`,
46
+ arrayEmpty: 'Array must not be empty',
47
+ arrayItem: (index, error) => `Invalid item at index ${index}: ${error}`,
48
+ // Object field validation
49
+ objectField: (field, error) => `Invalid field "${field}": ${error}`,
50
+ // Union validation messages
51
+ unionNoMatch: (errors) => `No union member matched: ${errors.join(', ')}`,
52
+ // Intersection validation messages
53
+ intersectionError: (error) => `Intersection validation failed: ${error}`,
54
+ // Literal validation messages
55
+ literalExpected: (expected, received) => `Expected ${expected}, got ${received}`,
56
+ // Enum validation messages
57
+ enumExpected: (values, received) => `Expected one of [${values.join(', ')}], got ${received}`,
58
+ // Special type validation messages
59
+ expectedUndefined: 'Expected undefined',
60
+ neverType: 'Never type cannot be parsed',
61
+ // New advanced type validation messages
62
+ invalidBigint: 'Invalid bigint',
63
+ invalidSymbol: 'Invalid symbol',
64
+ invalidTuple: 'Invalid tuple',
65
+ tupleLength: (expected, received) => `Tuple must have exactly ${expected} elements, got ${received}`,
66
+ invalidRecord: 'Invalid record',
67
+ invalidSet: 'Invalid set',
68
+ invalidMap: 'Invalid map',
69
+ // Transformation and refinement messages
70
+ transformError: (error) => `Transform failed: ${error}`,
71
+ refinementError: (error) => `Refinement failed: ${error}`,
72
+ customValidationError: (error) => `Custom validation failed: ${error}`,
73
+ // Coercion messages
74
+ coercionFailed: (type, value) => `Cannot coerce ${JSON.stringify(value)} to ${type}`,
75
+ // Codec messages
76
+ codecDecodeFailed: 'Failed to decode value',
77
+ codecEncodeFailed: 'Failed to encode value',
78
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
79
+ // Base64/Hex messages
80
+ invalidBase64: 'Invalid base64 string',
81
+ invalidHex: 'Invalid hexadecimal string',
82
+ // Uint8Array messages
83
+ expectedUint8Array: 'Expected Uint8Array',
84
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
85
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
86
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
87
+ // Generic type error messages
88
+ expectedString: 'Expected string',
89
+ stringExpected: (received, expected) => `Expected ${expected}, got ${received}`,
90
+ stringBoolExpected: (validValues, received) => `Invalid boolean string. Expected one of: ${validValues}, got "${received}"`,
91
+ invalidJson: 'Invalid JSON',
92
+ stringPatternInvalid: 'String does not match the required pattern',
93
+ // File validation messages
94
+ invalidFile: 'Expected a File object',
95
+ fileNotSupported: 'File API not supported in this environment',
96
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
97
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
98
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(', ')}`,
99
+ // Function validation messages
100
+ invalidFunction: 'Expected a function',
101
+ // CIDR validation messages
102
+ stringCidrv4: 'Invalid IPv4 CIDR block',
103
+ stringCidrv6: 'Invalid IPv6 CIDR block',
104
+ // Safe extend validation messages
105
+ safeExtendOverlap: (keys) => `Cannot override existing keys: ${keys.join(', ')}. Use extend() if you want to override.`
106
+ };
107
+
108
+ const tr = {
109
+ // String validation messages
110
+ invalidString: 'Geçersiz metin',
111
+ stringMin: (min) => `Metin en az ${min} karakter olmalı`,
112
+ stringMax: (max) => `Metin en fazla ${max} karakter olmalı`,
113
+ stringLength: (length) => `Metin tam olarak ${length} karakter olmalı`,
114
+ stringEmail: 'Geçersiz e-posta adresi',
115
+ stringUrl: 'Geçersiz URL',
116
+ stringUuid: 'Geçersiz UUID',
117
+ stringRegex: 'Geçersiz format',
118
+ stringStartsWith: (prefix) => `Metin "${prefix}" ile başlamalı`,
119
+ stringEndsWith: (suffix) => `Metin "${suffix}" ile bitmeli`,
120
+ stringIncludes: (substring) => `Metin "${substring}" içermeli`,
121
+ stringIp: 'Geçersiz IP adresi',
122
+ stringIpv4: 'Geçersiz IPv4 adresi',
123
+ stringIpv6: 'Geçersiz IPv6 adresi',
124
+ stringEmpty: 'Metin boş olmamalı',
125
+ // Number validation messages
126
+ invalidNumber: 'Geçersiz sayı',
127
+ numberMin: (min) => `Sayı en az ${min} olmalı`,
128
+ numberMax: (max) => `Sayı en fazla ${max} olmalı`,
129
+ numberInt: 'Sayı tam sayı olmalı',
130
+ numberPositive: 'Sayı pozitif olmalı',
131
+ numberNegative: 'Sayı negatif olmalı',
132
+ numberNonnegative: 'Sayı negatif olmamalı',
133
+ numberNonpositive: 'Sayı pozitif olmamalı',
134
+ numberFinite: 'Sayı sonlu olmalı',
135
+ numberSafe: 'Sayı güvenli tam sayı olmalı',
136
+ numberMultipleOf: (value) => `Sayı ${value}'nin katı olmalı`,
137
+ // Boolean validation messages
138
+ invalidBoolean: 'Geçersiz boolean',
139
+ // Date validation messages
140
+ invalidDate: 'Geçersiz tarih',
141
+ dateMin: (date) => `Tarih ${date.toISOString()} sonrasında olmalı`,
142
+ dateMax: (date) => `Tarih ${date.toISOString()} öncesinde olmalı`,
143
+ // Object validation messages
144
+ invalidObject: 'Geçersiz nesne',
145
+ unexpectedKeys: (keys) => `Beklenmeyen anahtarlar: ${keys.join(', ')}`,
146
+ // Array validation messages
147
+ invalidArray: 'Geçersiz dizi',
148
+ arrayMin: (min) => `Dizi en az ${min} eleman içermeli`,
149
+ arrayMax: (max) => `Dizi en fazla ${max} eleman içermeli`,
150
+ arrayLength: (length) => `Dizi tam olarak ${length} eleman içermeli`,
151
+ arrayEmpty: 'Dizi boş olmamalı',
152
+ arrayItem: (index, error) => `${index} indeksindeki eleman geçersiz: ${error}`,
153
+ // Object field validation
154
+ objectField: (field, error) => `"${field}" alanı geçersiz: ${error}`,
155
+ // Union validation messages
156
+ unionNoMatch: (errors) => `Hiçbir union üyesi eşleşmedi: ${errors.join(', ')}`,
157
+ // Intersection validation messages
158
+ intersectionError: (error) => `Intersection doğrulaması başarısız: ${error}`,
159
+ // Literal validation messages
160
+ literalExpected: (expected, received) => `${expected} beklendi, ${received} alındı`,
161
+ // Enum validation messages
162
+ enumExpected: (values, received) => `[${values.join(', ')}] değerlerinden biri beklendi, ${received} alındı`,
163
+ // Special type validation messages
164
+ expectedUndefined: 'Undefined beklendi',
165
+ neverType: 'Never tipi parse edilemez',
166
+ // New advanced type validation messages
167
+ invalidBigint: 'Geçersiz bigint',
168
+ invalidSymbol: 'Geçersiz symbol',
169
+ invalidTuple: 'Geçersiz tuple',
170
+ tupleLength: (expected, received) => `Tuple tam olarak ${expected} elemana sahip olmalı, ${received} aldı`,
171
+ invalidRecord: 'Geçersiz record',
172
+ invalidSet: 'Geçersiz set',
173
+ invalidMap: 'Geçersiz map',
174
+ // Transformation and refinement messages
175
+ transformError: (error) => `Dönüştürme başarısız: ${error}`,
176
+ refinementError: (error) => `Doğrulama başarısız: ${error}`,
177
+ customValidationError: (error) => `Özel doğrulama başarısız: ${error}`,
178
+ // Coercion messages
179
+ coercionFailed: (type, value) => `${JSON.stringify(value)} değeri ${type} tipine dönüştürülemez`,
180
+ // Codec messages
181
+ codecDecodeFailed: 'Failed to decode value',
182
+ codecEncodeFailed: 'Failed to encode value',
183
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
184
+ // Base64/Hex messages
185
+ invalidBase64: 'Invalid base64 string',
186
+ invalidHex: 'Invalid hexadecimal string',
187
+ // Uint8Array messages
188
+ expectedUint8Array: 'Expected Uint8Array',
189
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
190
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
191
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
192
+ // Generic type error messages
193
+ expectedString: 'Expected string',
194
+ stringExpected: (received, expected) => `Beklenen: ${expected}, alınan: ${received}`,
195
+ stringBoolExpected: (validValues, received) => `Geçersiz boolean string. Şunlardan biri olmalı: ${validValues}, alınan: "${received}"`,
196
+ invalidJson: 'Geçersiz JSON',
197
+ stringPatternInvalid: 'Dize gerekli kalıpla eşleşmiyor',
198
+ // File validation messages
199
+ invalidFile: 'Expected a File object',
200
+ fileNotSupported: 'File API not supported in this environment',
201
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
202
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
203
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
204
+ // Function validation messages
205
+ invalidFunction: 'Bir fonksiyon bekleniyor',
206
+ // CIDR validation messages
207
+ stringCidrv4: 'Geçersiz IPv4 CIDR bloğu',
208
+ stringCidrv6: 'Geçersiz IPv6 CIDR bloğu',
209
+ // Safe extend validation messages
210
+ safeExtendOverlap: (keys) => `Mevcut anahtarlar üzerine yazılamaz: ${keys.join(', ')}. Üzerine yazmak istiyorsanız extend() kullanın.`
211
+ };
212
+
213
+ const es = {
214
+ invalidString: 'Cadena inválida',
215
+ stringMin: (min) => `La cadena debe tener al menos ${min} caracteres`,
216
+ stringMax: (max) => `La cadena debe tener como máximo ${max} caracteres`,
217
+ stringLength: (length) => `La cadena debe tener exactamente ${length} caracteres`,
218
+ stringEmail: 'Dirección de correo inválida',
219
+ stringUrl: 'URL inválida',
220
+ stringUuid: 'UUID inválido',
221
+ stringRegex: 'Formato inválido',
222
+ stringStartsWith: (prefix) => `La cadena debe comenzar con "${prefix}"`,
223
+ stringEndsWith: (suffix) => `La cadena debe terminar con "${suffix}"`,
224
+ stringIncludes: (substring) => `La cadena debe incluir "${substring}"`,
225
+ stringIp: 'Dirección IP inválida',
226
+ stringIpv4: 'Dirección IPv4 inválida',
227
+ stringIpv6: 'Dirección IPv6 inválida',
228
+ stringEmpty: 'La cadena no debe estar vacía',
229
+ invalidNumber: 'Número inválido',
230
+ numberMin: (min) => `El número debe ser al menos ${min}`,
231
+ numberMax: (max) => `El número debe ser como máximo ${max}`,
232
+ numberInt: 'El número debe ser un entero',
233
+ numberPositive: 'El número debe ser positivo',
234
+ numberNegative: 'El número debe ser negativo',
235
+ numberNonnegative: 'El número debe ser no negativo',
236
+ numberNonpositive: 'El número debe ser no positivo',
237
+ numberFinite: 'El número debe ser finito',
238
+ numberSafe: 'El número debe ser un entero seguro',
239
+ numberMultipleOf: (value) => `El número debe ser múltiplo de ${value}`,
240
+ invalidBoolean: 'Boolean inválido',
241
+ invalidDate: 'Fecha inválida',
242
+ dateMin: (date) => `La fecha debe ser posterior a ${date.toISOString()}`,
243
+ dateMax: (date) => `La fecha debe ser anterior a ${date.toISOString()}`,
244
+ invalidObject: 'Objeto inválido',
245
+ unexpectedKeys: (keys) => `Claves inesperadas: ${keys.join(', ')}`,
246
+ invalidArray: 'Array inválido',
247
+ arrayMin: (min) => `El array debe tener al menos ${min} elementos`,
248
+ arrayMax: (max) => `El array debe tener como máximo ${max} elementos`,
249
+ arrayLength: (length) => `El array debe tener exactamente ${length} elementos`,
250
+ arrayEmpty: 'El array no debe estar vacío',
251
+ arrayItem: (index, error) => `Elemento inválido en índice ${index}: ${error}`,
252
+ objectField: (field, error) => `Campo inválido "${field}": ${error}`,
253
+ unionNoMatch: (errors) => `Ningún miembro de la unión coincidió: ${errors.join(', ')}`,
254
+ intersectionError: (error) => `Error de validación de intersección: ${error}`,
255
+ literalExpected: (expected, received) => `Se esperaba ${expected}, se recibió ${received}`,
256
+ enumExpected: (values, received) => `Se esperaba uno de [${values.join(', ')}], se recibió ${received}`,
257
+ expectedUndefined: 'Se esperaba undefined',
258
+ neverType: 'El tipo never no puede ser parseado',
259
+ // New advanced type validation messages
260
+ invalidBigint: 'Bigint inválido',
261
+ invalidSymbol: 'Símbolo inválido',
262
+ invalidTuple: 'Tupla inválida',
263
+ tupleLength: (expected, received) => `La tupla debe tener exactamente ${expected} elementos, se recibieron ${received}`,
264
+ invalidRecord: 'Registro inválido',
265
+ invalidSet: 'Set inválido',
266
+ invalidMap: 'Map inválido',
267
+ // Transformation and refinement messages
268
+ transformError: (error) => `Transformación fallida: ${error}`,
269
+ refinementError: (error) => `Refinamiento fallido: ${error}`,
270
+ customValidationError: (error) => `Validación personalizada falló: ${error}`,
271
+ // Coercion messages
272
+ coercionFailed: (type, value) => `No se puede coaccionar ${JSON.stringify(value)} a ${type}`,
273
+ // Codec messages
274
+ codecDecodeFailed: 'Failed to decode value',
275
+ codecEncodeFailed: 'Failed to encode value',
276
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
277
+ // Base64/Hex messages
278
+ invalidBase64: 'Invalid base64 string',
279
+ invalidHex: 'Invalid hexadecimal string',
280
+ // Uint8Array messages
281
+ expectedUint8Array: 'Expected Uint8Array',
282
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
283
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
284
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
285
+ // Generic type error messages
286
+ expectedString: 'Expected string',
287
+ stringExpected: (received, expected) => `Se esperaba ${expected}, se obtuvo ${received}`,
288
+ stringBoolExpected: (validValues, received) => `Cadena booleana no válida. Se esperaba uno de: ${validValues}, se obtuvo "${received}"`,
289
+ invalidJson: 'JSON no válido',
290
+ stringPatternInvalid: 'La cadena no coincide con el patrón requerido',
291
+ // File validation messages
292
+ invalidFile: 'Expected a File object',
293
+ fileNotSupported: 'File API not supported in this environment',
294
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
295
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
296
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
297
+ // Function validation messages
298
+ invalidFunction: 'Se esperaba una función',
299
+ // CIDR validation messages
300
+ stringCidrv4: 'Bloque CIDR IPv4 inválido',
301
+ stringCidrv6: 'Bloque CIDR IPv6 inválido',
302
+ // Safe extend validation messages
303
+ safeExtendOverlap: (keys) => `No se pueden sobrescribir las claves existentes: ${keys.join(', ')}. Use extend() si desea sobrescribir.`
304
+ };
305
+
306
+ const fr = {
307
+ invalidString: 'Chaîne invalide',
308
+ stringMin: (min) => `La chaîne doit contenir au moins ${min} caractères`,
309
+ stringMax: (max) => `La chaîne doit contenir au maximum ${max} caractères`,
310
+ stringLength: (length) => `La chaîne doit contenir exactement ${length} caractères`,
311
+ stringEmail: 'Adresse e-mail invalide',
312
+ stringUrl: 'URL invalide',
313
+ stringUuid: 'UUID invalide',
314
+ stringRegex: 'Format invalide',
315
+ stringStartsWith: (prefix) => `La chaîne doit commencer par "${prefix}"`,
316
+ stringEndsWith: (suffix) => `La chaîne doit se terminer par "${suffix}"`,
317
+ stringIncludes: (substring) => `La chaîne doit contenir "${substring}"`,
318
+ stringIp: 'Adresse IP invalide',
319
+ stringIpv4: 'Adresse IPv4 invalide',
320
+ stringIpv6: 'Adresse IPv6 invalide',
321
+ stringEmpty: 'La chaîne ne doit pas être vide',
322
+ invalidNumber: 'Nombre invalide',
323
+ numberMin: (min) => `Le nombre doit être d'au moins ${min}`,
324
+ numberMax: (max) => `Le nombre doit être d'au maximum ${max}`,
325
+ numberInt: 'Le nombre doit être un entier',
326
+ numberPositive: 'Le nombre doit être positif',
327
+ numberNegative: 'Le nombre doit être négatif',
328
+ numberNonnegative: 'Le nombre ne doit pas être négatif',
329
+ numberNonpositive: 'Le nombre ne doit pas être positif',
330
+ numberFinite: 'Le nombre doit être fini',
331
+ numberSafe: 'Le nombre doit être un entier sûr',
332
+ numberMultipleOf: (value) => `Le nombre doit être un multiple de ${value}`,
333
+ invalidBoolean: 'Boolean invalide',
334
+ invalidDate: 'Date invalide',
335
+ dateMin: (date) => `La date doit être postérieure à ${date.toISOString()}`,
336
+ dateMax: (date) => `La date doit être antérieure à ${date.toISOString()}`,
337
+ invalidObject: 'Objet invalide',
338
+ unexpectedKeys: (keys) => `Clés inattendues: ${keys.join(', ')}`,
339
+ invalidArray: 'Tableau invalide',
340
+ arrayMin: (min) => `Le tableau doit contenir au moins ${min} éléments`,
341
+ arrayMax: (max) => `Le tableau doit contenir au maximum ${max} éléments`,
342
+ arrayLength: (length) => `Le tableau doit contenir exactement ${length} éléments`,
343
+ arrayEmpty: 'Le tableau ne doit pas être vide',
344
+ arrayItem: (index, error) => `Élément invalide à l'index ${index}: ${error}`,
345
+ objectField: (field, error) => `Champ invalide "${field}": ${error}`,
346
+ unionNoMatch: (errors) => `Aucun membre de l'union n'a correspondu: ${errors.join(', ')}`,
347
+ intersectionError: (error) => `Échec de validation d'intersection: ${error}`,
348
+ literalExpected: (expected, received) => `Attendu ${expected}, reçu ${received}`,
349
+ enumExpected: (values, received) => `Attendu un de [${values.join(', ')}], reçu ${received}`,
350
+ expectedUndefined: 'Undefined attendu',
351
+ neverType: 'Le type never ne peut pas être analysé',
352
+ // New advanced type validation messages
353
+ invalidBigint: 'Bigint invalide',
354
+ invalidSymbol: 'Symbole invalide',
355
+ invalidTuple: 'Tuple invalide',
356
+ tupleLength: (expected, received) => `Le tuple doit contenir exactement ${expected} éléments, ${received} reçus`,
357
+ invalidRecord: 'Enregistrement invalide',
358
+ invalidSet: 'Set invalide',
359
+ invalidMap: 'Map invalide',
360
+ // Transformation and refinement messages
361
+ transformError: (error) => `Transformation échouée : ${error}`,
362
+ refinementError: (error) => `Raffinement échoué : ${error}`,
363
+ customValidationError: (error) => `Validation personnalisée échouée : ${error}`,
364
+ // Coercion messages
365
+ coercionFailed: (type, value) => `Impossible de convertir ${JSON.stringify(value)} en ${type}`,
366
+ // Codec messages
367
+ codecDecodeFailed: 'Failed to decode value',
368
+ codecEncodeFailed: 'Failed to encode value',
369
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
370
+ // Base64/Hex messages
371
+ invalidBase64: 'Invalid base64 string',
372
+ invalidHex: 'Invalid hexadecimal string',
373
+ // Uint8Array messages
374
+ expectedUint8Array: 'Expected Uint8Array',
375
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
376
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
377
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
378
+ // Generic type error messages
379
+ expectedString: 'Expected string',
380
+ stringExpected: (received, expected) => `Attendu: ${expected}, reçu: ${received}`,
381
+ stringBoolExpected: (validValues, received) => `Chaîne booléenne invalide. Attendu: l'un de ${validValues}, reçu: "${received}"`,
382
+ invalidJson: 'JSON invalide',
383
+ stringPatternInvalid: 'La chaîne ne correspond pas au modèle requis',
384
+ // File validation messages
385
+ invalidFile: 'Expected a File object',
386
+ fileNotSupported: 'File API not supported in this environment',
387
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
388
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
389
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
390
+ // Function validation messages
391
+ invalidFunction: 'Une fonction est attendue',
392
+ // CIDR validation messages
393
+ stringCidrv4: 'Bloc CIDR IPv4 invalide',
394
+ stringCidrv6: 'Bloc CIDR IPv6 invalide',
395
+ // Safe extend validation messages
396
+ safeExtendOverlap: (keys) => `Impossible de remplacer les clés existantes: ${keys.join(', ')}. Utilisez extend() pour remplacer.`
397
+ };
398
+
399
+ const de = {
400
+ // String validation messages
401
+ invalidString: 'Ungültiger String',
402
+ stringMin: (min) => `String muss mindestens ${min} Zeichen lang sein`,
403
+ stringMax: (max) => `String darf höchstens ${max} Zeichen lang sein`,
404
+ stringLength: (length) => `String muss genau ${length} Zeichen lang sein`,
405
+ stringEmail: 'Ungültige E-Mail-Adresse',
406
+ stringUrl: 'Ungültige URL',
407
+ stringUuid: 'Ungültige UUID',
408
+ stringRegex: 'Ungültiges Format',
409
+ stringStartsWith: (prefix) => `String muss mit "${prefix}" beginnen`,
410
+ stringEndsWith: (suffix) => `String muss mit "${suffix}" enden`,
411
+ stringIncludes: (substring) => `String muss "${substring}" enthalten`,
412
+ stringIp: 'Ungültige IP-Adresse',
413
+ stringIpv4: 'Ungültige IPv4-Adresse',
414
+ stringIpv6: 'Ungültige IPv6-Adresse',
415
+ stringEmpty: 'String darf nicht leer sein',
416
+ // Number validation messages
417
+ invalidNumber: 'Ungültige Nummer',
418
+ numberMin: (min) => `Nummer muss mindestens ${min} betragen`,
419
+ numberMax: (max) => `Nummer darf höchstens ${max} betragen`,
420
+ numberInt: 'Nummer muss eine ganze Zahl sein',
421
+ numberPositive: 'Nummer muss positiv sein',
422
+ numberNegative: 'Nummer muss negativ sein',
423
+ numberNonnegative: 'Nummer darf nicht negativ sein',
424
+ numberNonpositive: 'Nummer darf nicht positiv sein',
425
+ numberFinite: 'Nummer muss endlich sein',
426
+ numberSafe: 'Nummer muss eine sichere ganze Zahl sein',
427
+ numberMultipleOf: (value) => `Nummer muss ein Vielfaches von ${value} sein`,
428
+ // Boolean validation messages
429
+ invalidBoolean: 'Ungültiger Boolean-Wert',
430
+ // Date validation messages
431
+ invalidDate: 'Ungültiges Datum',
432
+ dateMin: (date) => `Datum muss nach ${date.toISOString()} liegen`,
433
+ dateMax: (date) => `Datum muss vor ${date.toISOString()} liegen`,
434
+ // Object validation messages
435
+ invalidObject: 'Ungültiges Objekt',
436
+ unexpectedKeys: (keys) => `Unerwartete Schlüssel: ${keys.join(', ')}`,
437
+ // Array validation messages
438
+ invalidArray: 'Ungültiges Array',
439
+ arrayMin: (min) => `Array muss mindestens ${min} Elemente haben`,
440
+ arrayMax: (max) => `Array darf höchstens ${max} Elemente haben`,
441
+ arrayLength: (length) => `Array muss genau ${length} Elemente haben`,
442
+ arrayEmpty: 'Array darf nicht leer sein',
443
+ arrayItem: (index, error) => `Ungültiges Element bei Index ${index}: ${error}`,
444
+ // Object field validation
445
+ objectField: (field, error) => `Ungültiges Feld "${field}": ${error}`,
446
+ // Union validation messages
447
+ unionNoMatch: (errors) => `Kein Union-Mitglied passte: ${errors.join(', ')}`,
448
+ // Intersection validation messages
449
+ intersectionError: (error) => `Intersection-Validierung fehlgeschlagen: ${error}`,
450
+ // Literal validation messages
451
+ literalExpected: (expected, received) => `Erwartet ${expected}, erhalten ${received}`,
452
+ // Enum validation messages
453
+ enumExpected: (values, received) => `Erwartet einer von [${values.join(', ')}], erhalten ${received}`,
454
+ // Special type validation messages
455
+ expectedUndefined: 'Undefined erwartet',
456
+ neverType: 'Never-Typ kann nicht geparst werden',
457
+ // New advanced type validation messages
458
+ invalidBigint: 'Ungültiger Bigint',
459
+ invalidSymbol: 'Ungültiges Symbol',
460
+ invalidTuple: 'Ungültiges Tupel',
461
+ tupleLength: (expected, received) => `Tupel muss genau ${expected} Elemente haben, ${received} erhalten`,
462
+ invalidRecord: 'Ungültiger Datensatz',
463
+ invalidSet: 'Ungültiges Set',
464
+ invalidMap: 'Ungültige Map',
465
+ // Transformation and refinement messages
466
+ transformError: (error) => `Transformation fehlgeschlagen: ${error}`,
467
+ refinementError: (error) => `Verfeinerung fehlgeschlagen: ${error}`,
468
+ customValidationError: (error) => `Benutzerdefinierte Validierung fehlgeschlagen: ${error}`,
469
+ // Coercion messages
470
+ coercionFailed: (type, value) => `Kann ${JSON.stringify(value)} nicht zu ${type} konvertieren`,
471
+ // Codec messages
472
+ codecDecodeFailed: 'Failed to decode value',
473
+ codecEncodeFailed: 'Failed to encode value',
474
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
475
+ // Base64/Hex messages
476
+ invalidBase64: 'Invalid base64 string',
477
+ invalidHex: 'Invalid hexadecimal string',
478
+ // Uint8Array messages
479
+ expectedUint8Array: 'Expected Uint8Array',
480
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
481
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
482
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
483
+ // Generic type error messages
484
+ expectedString: 'Expected string',
485
+ stringExpected: (received, expected) => `${expected} erwartet, ${received} erhalten`,
486
+ stringBoolExpected: (validValues, received) => `Ungültige Boolean-Zeichenkette. Eines von erwartet: ${validValues}, erhalten: "${received}"`,
487
+ invalidJson: 'Ungültiges JSON',
488
+ stringPatternInvalid: 'Zeichenfolge entspricht nicht dem erforderlichen Muster',
489
+ // File validation messages
490
+ invalidFile: 'Expected a File object',
491
+ fileNotSupported: 'File API not supported in this environment',
492
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
493
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
494
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
495
+ // Function validation messages
496
+ invalidFunction: 'Eine Funktion erwartet',
497
+ // CIDR validation messages
498
+ stringCidrv4: 'Ungültiger IPv4 CIDR-Block',
499
+ stringCidrv6: 'Ungültiger IPv6 CIDR-Block',
500
+ // Safe extend validation messages
501
+ safeExtendOverlap: (keys) => `Bestehende Schlüssel können nicht überschrieben werden: ${keys.join(', ')}. Verwenden Sie extend() zum Überschreiben.`
502
+ };
503
+
504
+ const it = {
505
+ // String validation messages
506
+ invalidString: 'Stringa non valida',
507
+ stringMin: (min) => `La stringa deve avere almeno ${min} caratteri`,
508
+ stringMax: (max) => `La stringa non può avere più di ${max} caratteri`,
509
+ stringLength: (length) => `La stringa deve avere esattamente ${length} caratteri`,
510
+ stringEmail: 'Indirizzo email non valido',
511
+ stringUrl: 'URL non valido',
512
+ stringUuid: 'UUID non valido',
513
+ stringRegex: 'Formato non valido',
514
+ stringStartsWith: (prefix) => `La stringa deve iniziare con "${prefix}"`,
515
+ stringEndsWith: (suffix) => `La stringa deve finire con "${suffix}"`,
516
+ stringIncludes: (substring) => `La stringa deve contenere "${substring}"`,
517
+ stringIp: 'Indirizzo IP non valido',
518
+ stringIpv4: 'Indirizzo IPv4 non valido',
519
+ stringIpv6: 'Indirizzo IPv6 non valido',
520
+ stringEmpty: 'La stringa non può essere vuota',
521
+ // Number validation messages
522
+ invalidNumber: 'Numero non valido',
523
+ numberMin: (min) => `Il numero deve essere almeno ${min}`,
524
+ numberMax: (max) => `Il numero non può essere maggiore di ${max}`,
525
+ numberInt: 'Il numero deve essere intero',
526
+ numberPositive: 'Il numero deve essere positivo',
527
+ numberNegative: 'Il numero deve essere negativo',
528
+ numberNonnegative: 'Il numero non può essere negativo',
529
+ numberNonpositive: 'Il numero non può essere positivo',
530
+ numberFinite: 'Il numero deve essere finito',
531
+ numberSafe: 'Il numero deve essere un intero sicuro',
532
+ numberMultipleOf: (value) => `Il numero deve essere multiplo di ${value}`,
533
+ // Boolean validation messages
534
+ invalidBoolean: 'Valore booleano non valido',
535
+ // Date validation messages
536
+ invalidDate: 'Data non valida',
537
+ dateMin: (date) => `La data deve essere dopo ${date.toISOString()}`,
538
+ dateMax: (date) => `La data deve essere prima di ${date.toISOString()}`,
539
+ // Object validation messages
540
+ invalidObject: 'Oggetto non valido',
541
+ unexpectedKeys: (keys) => `Chiavi impreviste: ${keys.join(', ')}`,
542
+ // Array validation messages
543
+ invalidArray: 'Array non valido',
544
+ arrayMin: (min) => `L'array deve avere almeno ${min} elementi`,
545
+ arrayMax: (max) => `L'array non può avere più di ${max} elementi`,
546
+ arrayLength: (length) => `L'array deve avere esattamente ${length} elementi`,
547
+ arrayEmpty: 'L\'array non può essere vuoto',
548
+ arrayItem: (index, error) => `Elemento non valido all'indice ${index}: ${error}`,
549
+ // Object field validation
550
+ objectField: (field, error) => `Campo non valido "${field}": ${error}`,
551
+ // Union validation messages
552
+ unionNoMatch: (errors) => `Nessun membro dell'unione corrisponde: ${errors.join(', ')}`,
553
+ // Intersection validation messages
554
+ intersectionError: (error) => `Validazione intersezione fallita: ${error}`,
555
+ // Literal validation messages
556
+ literalExpected: (expected, received) => `Previsto ${expected}, ricevuto ${received}`,
557
+ // Enum validation messages
558
+ enumExpected: (values, received) => `Previsto uno di [${values.join(', ')}], ricevuto ${received}`,
559
+ // Special type validation messages
560
+ expectedUndefined: 'Previsto undefined',
561
+ neverType: 'Il tipo never non può essere analizzato',
562
+ // New advanced type validation messages
563
+ invalidBigint: 'Bigint non valido',
564
+ invalidSymbol: 'Simbolo non valido',
565
+ invalidTuple: 'Tupla non valida',
566
+ tupleLength: (expected, received) => `La tupla deve avere esattamente ${expected} elementi, ricevuti ${received}`,
567
+ invalidRecord: 'Record non valido',
568
+ invalidSet: 'Set non valido',
569
+ invalidMap: 'Map non valida',
570
+ // Transformation and refinement messages
571
+ transformError: (error) => `Trasformazione fallita: ${error}`,
572
+ refinementError: (error) => `Raffinamento fallito: ${error}`,
573
+ customValidationError: (error) => `Validazione personalizzata fallita: ${error}`,
574
+ // Coercion messages
575
+ coercionFailed: (type, value) => `Impossibile convertire ${JSON.stringify(value)} in ${type}`,
576
+ // Codec messages
577
+ codecDecodeFailed: 'Failed to decode value',
578
+ codecEncodeFailed: 'Failed to encode value',
579
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
580
+ // Base64/Hex messages
581
+ invalidBase64: 'Invalid base64 string',
582
+ invalidHex: 'Invalid hexadecimal string',
583
+ // Uint8Array messages
584
+ expectedUint8Array: 'Expected Uint8Array',
585
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
586
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
587
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
588
+ // Generic type error messages
589
+ expectedString: 'Expected string',
590
+ stringExpected: (received, expected) => `Previsto ${expected}, ricevuto ${received}`,
591
+ stringBoolExpected: (validValues, received) => `Stringa booleana non valida. Previsto uno di: ${validValues}, ricevuto: "${received}"`,
592
+ invalidJson: 'JSON non valido',
593
+ stringPatternInvalid: 'La stringa non corrisponde al pattern richiesto',
594
+ // File validation messages
595
+ invalidFile: 'Expected a File object',
596
+ fileNotSupported: 'File API not supported in this environment',
597
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
598
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
599
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
600
+ // Function validation messages
601
+ invalidFunction: 'È prevista una funzione',
602
+ // CIDR validation messages
603
+ stringCidrv4: 'Blocco CIDR IPv4 non valido',
604
+ stringCidrv6: 'Blocco CIDR IPv6 non valido',
605
+ // Safe extend validation messages
606
+ safeExtendOverlap: (keys) => `Impossibile sovrascrivere chiavi esistenti: ${keys.join(', ')}. Usa extend() per sovrascrivere.`
607
+ };
608
+
609
+ const pt = {
610
+ // String validation messages
611
+ invalidString: 'String inválida',
612
+ stringMin: (min) => `String deve ter pelo menos ${min} caracteres`,
613
+ stringMax: (max) => `String não pode ter mais que ${max} caracteres`,
614
+ stringLength: (length) => `String deve ter exactamente ${length} caracteres`,
615
+ stringEmail: 'Endereço de email inválido',
616
+ stringUrl: 'URL inválido',
617
+ stringUuid: 'UUID inválido',
618
+ stringRegex: 'Formato inválido',
619
+ stringStartsWith: (prefix) => `String deve começar com "${prefix}"`,
620
+ stringEndsWith: (suffix) => `String deve terminar com "${suffix}"`,
621
+ stringIncludes: (substring) => `String deve conter "${substring}"`,
622
+ stringIp: 'Endereço IP inválido',
623
+ stringIpv4: 'Endereço IPv4 inválido',
624
+ stringIpv6: 'Endereço IPv6 inválido',
625
+ stringEmpty: 'String não pode estar vazia',
626
+ // Number validation messages
627
+ invalidNumber: 'Número inválido',
628
+ numberMin: (min) => `Número deve ser pelo menos ${min}`,
629
+ numberMax: (max) => `Número não pode ser maior que ${max}`,
630
+ numberInt: 'Número deve ser inteiro',
631
+ numberPositive: 'Número deve ser positivo',
632
+ numberNegative: 'Número deve ser negativo',
633
+ numberNonnegative: 'Número não pode ser negativo',
634
+ numberNonpositive: 'Número não pode ser positivo',
635
+ numberFinite: 'Número deve ser finito',
636
+ numberSafe: 'Número deve ser um inteiro seguro',
637
+ numberMultipleOf: (value) => `Número deve ser múltiplo de ${value}`,
638
+ // Boolean validation messages
639
+ invalidBoolean: 'Valor booleano inválido',
640
+ // Date validation messages
641
+ invalidDate: 'Data inválida',
642
+ dateMin: (date) => `Data deve ser após ${date.toISOString()}`,
643
+ dateMax: (date) => `Data deve ser antes de ${date.toISOString()}`,
644
+ // Object validation messages
645
+ invalidObject: 'Objecto inválido',
646
+ unexpectedKeys: (keys) => `Chaves inesperadas: ${keys.join(', ')}`,
647
+ // Array validation messages
648
+ invalidArray: 'Array inválido',
649
+ arrayMin: (min) => `Array deve ter pelo menos ${min} elementos`,
650
+ arrayMax: (max) => `Array não pode ter mais que ${max} elementos`,
651
+ arrayLength: (length) => `Array deve ter exactamente ${length} elementos`,
652
+ arrayEmpty: 'Array não pode estar vazio',
653
+ arrayItem: (index, error) => `Item inválido no índice ${index}: ${error}`,
654
+ // Object field validation
655
+ objectField: (field, error) => `Campo inválido "${field}": ${error}`,
656
+ // Union validation messages
657
+ unionNoMatch: (errors) => `Nenhum membro da união correspondeu: ${errors.join(', ')}`,
658
+ // Intersection validation messages
659
+ intersectionError: (error) => `Validação de intersecção falhou: ${error}`,
660
+ // Literal validation messages
661
+ literalExpected: (expected, received) => `Esperado ${expected}, recebido ${received}`,
662
+ // Enum validation messages
663
+ enumExpected: (values, received) => `Esperado um de [${values.join(', ')}], recebido ${received}`,
664
+ // Special type validation messages
665
+ expectedUndefined: 'Esperado undefined',
666
+ neverType: 'Tipo never não pode ser analisado',
667
+ // New advanced type validation messages
668
+ invalidBigint: 'Bigint inválido',
669
+ invalidSymbol: 'Símbolo inválido',
670
+ invalidTuple: 'Tupla inválida',
671
+ tupleLength: (expected, received) => `Tupla deve ter exactamente ${expected} elementos, recebidos ${received}`,
672
+ invalidRecord: 'Registo inválido',
673
+ invalidSet: 'Set inválido',
674
+ invalidMap: 'Map inválido',
675
+ // Transformation and refinement messages
676
+ transformError: (error) => `Transformação falhou: ${error}`,
677
+ refinementError: (error) => `Refinamento falhou: ${error}`,
678
+ customValidationError: (error) => `Validação personalizada falhou: ${error}`,
679
+ // Coercion messages
680
+ coercionFailed: (type, value) => `Não é possível converter ${JSON.stringify(value)} para ${type}`,
681
+ // Codec messages
682
+ codecDecodeFailed: 'Failed to decode value',
683
+ codecEncodeFailed: 'Failed to encode value',
684
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
685
+ // Base64/Hex messages
686
+ invalidBase64: 'Invalid base64 string',
687
+ invalidHex: 'Invalid hexadecimal string',
688
+ // Uint8Array messages
689
+ expectedUint8Array: 'Expected Uint8Array',
690
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
691
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
692
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
693
+ // Generic type error messages
694
+ expectedString: 'Expected string',
695
+ stringExpected: (received, expected) => `Esperado ${expected}, recebido ${received}`,
696
+ stringBoolExpected: (validValues, received) => `String boolean inválida. Esperado um de: ${validValues}, recebido: "${received}"`,
697
+ invalidJson: 'JSON inválido',
698
+ stringPatternInvalid: 'A string não corresponde ao padrão necessário',
699
+ // File validation messages
700
+ invalidFile: 'Expected a File object',
701
+ fileNotSupported: 'File API not supported in this environment',
702
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
703
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
704
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
705
+ // Function validation messages
706
+ invalidFunction: 'Uma função é esperada',
707
+ // CIDR validation messages
708
+ stringCidrv4: 'Bloco CIDR IPv4 inválido',
709
+ stringCidrv6: 'Bloco CIDR IPv6 inválido',
710
+ // Safe extend validation messages
711
+ safeExtendOverlap: (keys) => `Não é possível substituir chaves existentes: ${keys.join(', ')}. Use extend() se quiser substituir.`
712
+ };
713
+
714
+ const ru = {
715
+ // String validation messages
716
+ invalidString: 'Некорректная строка',
717
+ stringMin: (min) => `Строка должна содержать не менее ${min} символов`,
718
+ stringMax: (max) => `Строка не может содержать более ${max} символов`,
719
+ stringLength: (length) => `Строка должна содержать ровно ${length} символов`,
720
+ stringEmail: 'Некорректный email адрес',
721
+ stringUrl: 'Некорректный URL',
722
+ stringUuid: 'Некорректный UUID',
723
+ stringRegex: 'Некорректный формат',
724
+ stringStartsWith: (prefix) => `Строка должна начинаться с "${prefix}"`,
725
+ stringEndsWith: (suffix) => `Строка должна заканчиваться на "${suffix}"`,
726
+ stringIncludes: (substring) => `Строка должна содержать "${substring}"`,
727
+ stringIp: 'Некорректный IP адрес',
728
+ stringIpv4: 'Некорректный IPv4 адрес',
729
+ stringIpv6: 'Некорректный IPv6 адрес',
730
+ stringEmpty: 'Строка не может быть пустой',
731
+ // Number validation messages
732
+ invalidNumber: 'Некорректное число',
733
+ numberMin: (min) => `Число должно быть не менее ${min}`,
734
+ numberMax: (max) => `Число не может быть больше ${max}`,
735
+ numberInt: 'Число должно быть целым',
736
+ numberPositive: 'Число должно быть положительным',
737
+ numberNegative: 'Число должно быть отрицательным',
738
+ numberNonnegative: 'Число не может быть отрицательным',
739
+ numberNonpositive: 'Число не может быть положительным',
740
+ numberFinite: 'Число должно быть конечным',
741
+ numberSafe: 'Число должно быть безопасным целым',
742
+ numberMultipleOf: (value) => `Число должно быть кратно ${value}`,
743
+ // Boolean validation messages
744
+ invalidBoolean: 'Некорректный boolean',
745
+ // Date validation messages
746
+ invalidDate: 'Некорректная дата',
747
+ dateMin: (date) => `Дата должна быть после ${date.toISOString()}`,
748
+ dateMax: (date) => `Дата должна быть до ${date.toISOString()}`,
749
+ // Object validation messages
750
+ invalidObject: 'Некорректный объект',
751
+ unexpectedKeys: (keys) => `Неожиданные ключи: ${keys.join(', ')}`,
752
+ // Array validation messages
753
+ invalidArray: 'Некорректный массив',
754
+ arrayMin: (min) => `Массив должен содержать не менее ${min} элементов`,
755
+ arrayMax: (max) => `Массив не может содержать более ${max} элементов`,
756
+ arrayLength: (length) => `Массив должен содержать ровно ${length} элементов`,
757
+ arrayEmpty: 'Массив не может быть пустым',
758
+ arrayItem: (index, error) => `Некорректный элемент по индексу ${index}: ${error}`,
759
+ // Object field validation
760
+ objectField: (field, error) => `Некорректное поле "${field}": ${error}`,
761
+ // Union validation messages
762
+ unionNoMatch: (errors) => `Ни один член объединения не подошёл: ${errors.join(', ')}`,
763
+ // Intersection validation messages
764
+ intersectionError: (error) => `Не удалось выполнить валидацию пересечения: ${error}`,
765
+ // Literal validation messages
766
+ literalExpected: (expected, received) => `Ожидалось ${expected}, получено ${received}`,
767
+ // Enum validation messages
768
+ enumExpected: (values, received) => `Ожидалось одно из [${values.join(', ')}], получено ${received}`,
769
+ // Special type validation messages
770
+ expectedUndefined: 'Ожидалось undefined',
771
+ neverType: 'Тип never не может быть разобран',
772
+ // New advanced type validation messages
773
+ invalidBigint: 'Некорректный bigint',
774
+ invalidSymbol: 'Некорректный символ',
775
+ invalidTuple: 'Некорректный кортеж',
776
+ tupleLength: (expected, received) => `Кортеж должен содержать ровно ${expected} элементов, получено ${received}`,
777
+ invalidRecord: 'Некорректная запись',
778
+ invalidSet: 'Некорректный set',
779
+ invalidMap: 'Некорректная map',
780
+ // Transformation and refinement messages
781
+ transformError: (error) => `Преобразование не удалось: ${error}`,
782
+ refinementError: (error) => `Уточнение не удалось: ${error}`,
783
+ customValidationError: (error) => `Пользовательская проверка не удалась: ${error}`,
784
+ // Coercion messages
785
+ coercionFailed: (type, value) => `Невозможно привести ${JSON.stringify(value)} к типу ${type}`,
786
+ // Codec messages
787
+ codecDecodeFailed: 'Failed to decode value',
788
+ codecEncodeFailed: 'Failed to encode value',
789
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
790
+ // Base64/Hex messages
791
+ invalidBase64: 'Invalid base64 string',
792
+ invalidHex: 'Invalid hexadecimal string',
793
+ // Uint8Array messages
794
+ expectedUint8Array: 'Expected Uint8Array',
795
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
796
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
797
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
798
+ // Generic type error messages
799
+ expectedString: 'Expected string',
800
+ stringExpected: (received, expected) => `Ожидалось ${expected}, получено ${received}`,
801
+ stringBoolExpected: (validValues, received) => `Некорректная boolean строка. Ожидалось одно из: ${validValues}, получено: "${received}"`,
802
+ invalidJson: 'Недопустимый JSON',
803
+ stringPatternInvalid: 'Строка не соответствует требуемому шаблону',
804
+ // File validation messages
805
+ invalidFile: 'Expected a File object',
806
+ fileNotSupported: 'File API not supported in this environment',
807
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
808
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
809
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
810
+ // Function validation messages
811
+ invalidFunction: 'Ожидалась функция',
812
+ // CIDR validation messages
813
+ stringCidrv4: 'Некорректный IPv4 CIDR блок',
814
+ stringCidrv6: 'Некорректный IPv6 CIDR блок',
815
+ // Safe extend validation messages
816
+ safeExtendOverlap: (keys) => `Невозможно переопределить существующие ключи: ${keys.join(', ')}. Используйте extend() для переопределения.`
817
+ };
818
+
819
+ const ja = {
820
+ // String validation messages
821
+ invalidString: '無効な文字列',
822
+ stringMin: (min) => `文字列は${min}文字以上である必要があります`,
823
+ stringMax: (max) => `文字列は${max}文字以下である必要があります`,
824
+ stringLength: (length) => `文字列はちょうど${length}文字である必要があります`,
825
+ stringEmail: '無効なメールアドレス',
826
+ stringUrl: '無効なURL',
827
+ stringUuid: '無効なUUID',
828
+ stringRegex: '無効なフォーマット',
829
+ stringStartsWith: (prefix) => `文字列は「${prefix}」で始まる必要があります`,
830
+ stringEndsWith: (suffix) => `文字列は「${suffix}」で終わる必要があります`,
831
+ stringIncludes: (substring) => `文字列は「${substring}」を含む必要があります`,
832
+ stringIp: '無効なIPアドレス',
833
+ stringIpv4: '無効なIPv4アドレス',
834
+ stringIpv6: '無効なIPv6アドレス',
835
+ stringEmpty: '文字列は空にできません',
836
+ // Number validation messages
837
+ invalidNumber: '無効な数値',
838
+ numberMin: (min) => `数値は${min}以上である必要があります`,
839
+ numberMax: (max) => `数値は${max}以下である必要があります`,
840
+ numberInt: '数値は整数である必要があります',
841
+ numberPositive: '数値は正の値である必要があります',
842
+ numberNegative: '数値は負の値である必要があります',
843
+ numberNonnegative: '数値は負の値にできません',
844
+ numberNonpositive: '数値は正の値にできません',
845
+ numberFinite: '数値は有限である必要があります',
846
+ numberSafe: '数値は安全な整数である必要があります',
847
+ numberMultipleOf: (value) => `数値は${value}の倍数である必要があります`,
848
+ // Boolean validation messages
849
+ invalidBoolean: '無効なブール値',
850
+ // Date validation messages
851
+ invalidDate: '無効な日付',
852
+ dateMin: (date) => `日付は${date.toISOString()}より後である必要があります`,
853
+ dateMax: (date) => `日付は${date.toISOString()}より前である必要があります`,
854
+ // Object validation messages
855
+ invalidObject: '無効なオブジェクト',
856
+ unexpectedKeys: (keys) => `予期しないキー: ${keys.join(', ')}`,
857
+ // Array validation messages
858
+ invalidArray: '無効な配列',
859
+ arrayMin: (min) => `配列は${min}個以上の要素が必要です`,
860
+ arrayMax: (max) => `配列は${max}個以下の要素でなければなりません`,
861
+ arrayLength: (length) => `配列はちょうど${length}個の要素が必要です`,
862
+ arrayEmpty: '配列は空にできません',
863
+ arrayItem: (index, error) => `インデックス${index}の無効な要素: ${error}`,
864
+ // Object field validation
865
+ objectField: (field, error) => `無効なフィールド「${field}」: ${error}`,
866
+ // Union validation messages
867
+ unionNoMatch: (errors) => `どのユニオンメンバーもマッチしませんでした: ${errors.join(', ')}`,
868
+ // Intersection validation messages
869
+ intersectionError: (error) => `交差検証に失敗しました: ${error}`,
870
+ // Literal validation messages
871
+ literalExpected: (expected, received) => `${expected}が期待されましたが、${received}を受け取りました`,
872
+ // Enum validation messages
873
+ enumExpected: (values, received) => `[${values.join(', ')}]のいずれかが期待されましたが、${received}を受け取りました`,
874
+ // Special type validation messages
875
+ expectedUndefined: 'undefinedが期待されました',
876
+ neverType: 'neverタイプは解析できません',
877
+ // New advanced type validation messages
878
+ invalidBigint: '無効なbigint',
879
+ invalidSymbol: '無効なシンボル',
880
+ invalidTuple: '無効なタプル',
881
+ tupleLength: (expected, received) => `タプルはちょうど${expected}個の要素が必要ですが、${received}個を受け取りました`,
882
+ invalidRecord: '無効なレコード',
883
+ invalidSet: '無効なSet',
884
+ invalidMap: '無効なMap',
885
+ // Transformation and refinement messages
886
+ transformError: (error) => `変換に失敗しました: ${error}`,
887
+ refinementError: (error) => `リファインメントに失敗しました: ${error}`,
888
+ customValidationError: (error) => `カスタム検証が失敗しました: ${error}`,
889
+ // Coercion messages
890
+ coercionFailed: (type, value) => `${JSON.stringify(value)}を${type}に変換できません`,
891
+ // Codec messages
892
+ codecDecodeFailed: 'Failed to decode value',
893
+ codecEncodeFailed: 'Failed to encode value',
894
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
895
+ // Base64/Hex messages
896
+ invalidBase64: 'Invalid base64 string',
897
+ invalidHex: 'Invalid hexadecimal string',
898
+ // Uint8Array messages
899
+ expectedUint8Array: 'Expected Uint8Array',
900
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
901
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
902
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
903
+ // Generic type error messages
904
+ expectedString: 'Expected string',
905
+ stringExpected: (received, expected) => `${expected}が期待されましたが、${received}を受け取りました`,
906
+ stringBoolExpected: (validValues, received) => `無効なブール文字列です。次のいずれかである必要があります: ${validValues}、受け取りました: "${received}"`,
907
+ invalidJson: '無効なJSON',
908
+ stringPatternInvalid: '文字列が必要なパターンと一致しません',
909
+ // File validation messages
910
+ invalidFile: 'Expected a File object',
911
+ fileNotSupported: 'File API not supported in this environment',
912
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
913
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
914
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
915
+ // Function validation messages
916
+ invalidFunction: '関数が期待されました',
917
+ // CIDR validation messages
918
+ stringCidrv4: '無効なIPv4 CIDRブロック',
919
+ stringCidrv6: '無効なIPv6 CIDRブロック',
920
+ // Safe extend validation messages
921
+ safeExtendOverlap: (keys) => `既存のキーを上書きできません: ${keys.join(', ')}。上書きしたい場合はextend()を使用してください。`
922
+ };
923
+
924
+ const ko = {
925
+ // String validation messages
926
+ invalidString: '유효하지 않은 문자열',
927
+ stringMin: (min) => `문자열은 최소 ${min}자여야 합니다`,
928
+ stringMax: (max) => `문자열은 최대 ${max}자여야 합니다`,
929
+ stringLength: (length) => `문자열은 정확히 ${length}자여야 합니다`,
930
+ stringEmail: '유효하지 않은 이메일 주소',
931
+ stringUrl: '유효하지 않은 URL',
932
+ stringUuid: '유효하지 않은 UUID',
933
+ stringRegex: '유효하지 않은 형식',
934
+ stringStartsWith: (prefix) => `문자열은 "${prefix}"로 시작해야 합니다`,
935
+ stringEndsWith: (suffix) => `문자열은 "${suffix}"로 끝나야 합니다`,
936
+ stringIncludes: (substring) => `문자열은 "${substring}"을 포함해야 합니다`,
937
+ stringIp: '유효하지 않은 IP 주소',
938
+ stringIpv4: '유효하지 않은 IPv4 주소',
939
+ stringIpv6: '유효하지 않은 IPv6 주소',
940
+ stringEmpty: '문자열은 비어있을 수 없습니다',
941
+ // Number validation messages
942
+ invalidNumber: '유효하지 않은 숫자',
943
+ numberMin: (min) => `숫자는 최소 ${min}이어야 합니다`,
944
+ numberMax: (max) => `숫자는 최대 ${max}이어야 합니다`,
945
+ numberInt: '숫자는 정수여야 합니다',
946
+ numberPositive: '숫자는 양수여야 합니다',
947
+ numberNegative: '숫자는 음수여야 합니다',
948
+ numberNonnegative: '숫자는 음수일 수 없습니다',
949
+ numberNonpositive: '숫자는 양수일 수 없습니다',
950
+ numberFinite: '숫자는 유한해야 합니다',
951
+ numberSafe: '숫자는 안전한 정수여야 합니다',
952
+ numberMultipleOf: (value) => `숫자는 ${value}의 배수여야 합니다`,
953
+ // Boolean validation messages
954
+ invalidBoolean: '유효하지 않은 불린 값',
955
+ // Date validation messages
956
+ invalidDate: '유효하지 않은 날짜',
957
+ dateMin: (date) => `날짜는 ${date.toISOString()} 이후여야 합니다`,
958
+ dateMax: (date) => `날짜는 ${date.toISOString()} 이전이어야 합니다`,
959
+ // Object validation messages
960
+ invalidObject: '유효하지 않은 객체',
961
+ unexpectedKeys: (keys) => `예상치 못한 키: ${keys.join(', ')}`,
962
+ // Array validation messages
963
+ invalidArray: '유효하지 않은 배열',
964
+ arrayMin: (min) => `배열은 최소 ${min}개의 요소가 있어야 합니다`,
965
+ arrayMax: (max) => `배열은 최대 ${max}개의 요소가 있어야 합니다`,
966
+ arrayLength: (length) => `배열은 정확히 ${length}개의 요소가 있어야 합니다`,
967
+ arrayEmpty: '배열은 비어있을 수 없습니다',
968
+ arrayItem: (index, error) => `인덱스 ${index}의 유효하지 않은 요소: ${error}`,
969
+ // Object field validation
970
+ objectField: (field, error) => `유효하지 않은 필드 "${field}": ${error}`,
971
+ // Union validation messages
972
+ unionNoMatch: (errors) => `어떤 유니온 멤버도 일치하지 않았습니다: ${errors.join(', ')}`,
973
+ // Intersection validation messages
974
+ intersectionError: (error) => `교집합 검증에 실패했습니다: ${error}`,
975
+ // Literal validation messages
976
+ literalExpected: (expected, received) => `${expected}가 예상되었지만 ${received}를 받았습니다`,
977
+ // Enum validation messages
978
+ enumExpected: (values, received) => `[${values.join(', ')}] 중 하나가 예상되었지만 ${received}를 받았습니다`,
979
+ // Special type validation messages
980
+ expectedUndefined: 'undefined가 예상되었습니다',
981
+ neverType: 'never 타입은 파싱할 수 없습니다',
982
+ // New advanced type validation messages
983
+ invalidBigint: '유효하지 않은 bigint',
984
+ invalidSymbol: '유효하지 않은 심볼',
985
+ invalidTuple: '유효하지 않은 튜플',
986
+ tupleLength: (expected, received) => `튜플은 정확히 ${expected}개의 요소가 있어야 하지만 ${received}개를 받았습니다`,
987
+ invalidRecord: '유효하지 않은 레코드',
988
+ invalidSet: '유효하지 않은 Set',
989
+ invalidMap: '유효하지 않은 Map',
990
+ // Transformation and refinement messages
991
+ transformError: (error) => `변환 실패: ${error}`,
992
+ refinementError: (error) => `정제 실패: ${error}`,
993
+ customValidationError: (error) => `사용자 정의 유효성 검사 실패: ${error}`,
994
+ // Coercion messages
995
+ coercionFailed: (type, value) => `${JSON.stringify(value)}를 ${type}로 강제 변환할 수 없습니다`,
996
+ // Codec messages
997
+ codecDecodeFailed: 'Failed to decode value',
998
+ codecEncodeFailed: 'Failed to encode value',
999
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1000
+ // Base64/Hex messages
1001
+ invalidBase64: 'Invalid base64 string',
1002
+ invalidHex: 'Invalid hexadecimal string',
1003
+ // Uint8Array messages
1004
+ expectedUint8Array: 'Expected Uint8Array',
1005
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1006
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1007
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1008
+ // Generic type error messages
1009
+ expectedString: 'Expected string',
1010
+ stringExpected: (received, expected) => `${expected}가 예상되었지만 ${received}를 받았습니다`,
1011
+ stringBoolExpected: (validValues, received) => `잘못된 불린 문자열입니다. 다음 중 하나여야 합니다: ${validValues}, 받은 값: "${received}"`,
1012
+ invalidJson: '잘못된 JSON',
1013
+ stringPatternInvalid: '문자열이 필요한 패턴과 일치하지 않습니다',
1014
+ // File validation messages
1015
+ invalidFile: 'Expected a File object',
1016
+ fileNotSupported: 'File API not supported in this environment',
1017
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1018
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1019
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1020
+ // Function validation messages
1021
+ invalidFunction: '함수가 예상되었습니다',
1022
+ // CIDR validation messages
1023
+ stringCidrv4: '유효하지 않은 IPv4 CIDR 블록',
1024
+ stringCidrv6: '유효하지 않은 IPv6 CIDR 블록',
1025
+ // Safe extend validation messages
1026
+ safeExtendOverlap: (keys) => `기존 키를 덮어쓸 수 없습니다: ${keys.join(', ')}. 덮어쓰려면 extend()를 사용하세요.`
1027
+ };
1028
+
1029
+ const zh = {
1030
+ // String validation messages
1031
+ invalidString: '无效字符串',
1032
+ stringMin: (min) => `字符串必须至少${min}个字符`,
1033
+ stringMax: (max) => `字符串不能超过${max}个字符`,
1034
+ stringLength: (length) => `字符串必须正好${length}个字符`,
1035
+ stringEmail: '无效邮箱地址',
1036
+ stringUrl: '无效URL',
1037
+ stringUuid: '无效UUID',
1038
+ stringRegex: '无效格式',
1039
+ stringStartsWith: (prefix) => `字符串必须以"${prefix}"开头`,
1040
+ stringEndsWith: (suffix) => `字符串必须以"${suffix}"结尾`,
1041
+ stringIncludes: (substring) => `字符串必须包含"${substring}"`,
1042
+ stringIp: '无效IP地址',
1043
+ stringIpv4: '无效IPv4地址',
1044
+ stringIpv6: '无效IPv6地址',
1045
+ stringEmpty: '字符串不能为空',
1046
+ // Number validation messages
1047
+ invalidNumber: '无效数字',
1048
+ numberMin: (min) => `数字必须至少为${min}`,
1049
+ numberMax: (max) => `数字不能大于${max}`,
1050
+ numberInt: '数字必须是整数',
1051
+ numberPositive: '数字必须是正数',
1052
+ numberNegative: '数字必须是负数',
1053
+ numberNonnegative: '数字不能是负数',
1054
+ numberNonpositive: '数字不能是正数',
1055
+ numberFinite: '数字必须是有限的',
1056
+ numberSafe: '数字必须是安全整数',
1057
+ numberMultipleOf: (value) => `数字必须是${value}的倍数`,
1058
+ // Boolean validation messages
1059
+ invalidBoolean: '无效布尔值',
1060
+ // Date validation messages
1061
+ invalidDate: '无效日期',
1062
+ dateMin: (date) => `日期必须在${date.toISOString()}之后`,
1063
+ dateMax: (date) => `日期必须在${date.toISOString()}之前`,
1064
+ // Object validation messages
1065
+ invalidObject: '无效对象',
1066
+ unexpectedKeys: (keys) => `意外的键: ${keys.join(', ')}`,
1067
+ // Array validation messages
1068
+ invalidArray: '无效数组',
1069
+ arrayMin: (min) => `数组必须至少有${min}个元素`,
1070
+ arrayMax: (max) => `数组不能超过${max}个元素`,
1071
+ arrayLength: (length) => `数组必须正好有${length}个元素`,
1072
+ arrayEmpty: '数组不能为空',
1073
+ arrayItem: (index, error) => `索引${index}处的无效元素: ${error}`,
1074
+ // Object field validation
1075
+ objectField: (field, error) => `无效字段"${field}": ${error}`,
1076
+ // Union validation messages
1077
+ unionNoMatch: (errors) => `没有匹配的联合成员: ${errors.join(', ')}`,
1078
+ // Intersection validation messages
1079
+ intersectionError: (error) => `交集验证失败: ${error}`,
1080
+ // Literal validation messages
1081
+ literalExpected: (expected, received) => `期望${expected},得到${received}`,
1082
+ // Enum validation messages
1083
+ enumExpected: (values, received) => `期望[${values.join(', ')}]中的一个,得到${received}`,
1084
+ // Special type validation messages
1085
+ expectedUndefined: '期望undefined',
1086
+ neverType: 'never类型无法解析',
1087
+ // New advanced type validation messages
1088
+ invalidBigint: '无效bigint',
1089
+ invalidSymbol: '无效符号',
1090
+ invalidTuple: '无效元组',
1091
+ tupleLength: (expected, received) => `元组必须正好有${expected}个元素,得到${received}个`,
1092
+ invalidRecord: '无效记录',
1093
+ invalidSet: '无效Set',
1094
+ invalidMap: '无效Map',
1095
+ // Transformation and refinement messages
1096
+ transformError: (error) => `转换失败: ${error}`,
1097
+ refinementError: (error) => `细化失败: ${error}`,
1098
+ customValidationError: (error) => `自定义验证失败: ${error}`,
1099
+ // Coercion messages
1100
+ coercionFailed: (type, value) => `无法将${JSON.stringify(value)}强制转换为${type}`,
1101
+ // Codec messages
1102
+ codecDecodeFailed: 'Failed to decode value',
1103
+ codecEncodeFailed: 'Failed to encode value',
1104
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1105
+ // Base64/Hex messages
1106
+ invalidBase64: 'Invalid base64 string',
1107
+ invalidHex: 'Invalid hexadecimal string',
1108
+ // Uint8Array messages
1109
+ expectedUint8Array: 'Expected Uint8Array',
1110
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1111
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1112
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1113
+ // Generic type error messages
1114
+ expectedString: 'Expected string',
1115
+ stringExpected: (received, expected) => `期望${expected},得到${received}`,
1116
+ stringBoolExpected: (validValues, received) => `无效的布尔字符串。期望以下之一: ${validValues},得到: "${received}"`,
1117
+ invalidJson: '无效的JSON',
1118
+ stringPatternInvalid: '字符串与所需模式不匹配',
1119
+ // File validation messages
1120
+ invalidFile: 'Expected a File object',
1121
+ fileNotSupported: 'File API not supported in this environment',
1122
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1123
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1124
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1125
+ // Function validation messages
1126
+ invalidFunction: '期望一个函数',
1127
+ // CIDR validation messages
1128
+ stringCidrv4: '无效的IPv4 CIDR块',
1129
+ stringCidrv6: '无效的IPv6 CIDR块',
1130
+ // Safe extend validation messages
1131
+ safeExtendOverlap: (keys) => `无法覆盖现有键: ${keys.join(', ')}。如果要覆盖请使用extend()。`
1132
+ };
1133
+
1134
+ const ar = {
1135
+ // String validation messages
1136
+ invalidString: 'نص غير صحيح',
1137
+ stringMin: (min) => `يجب أن يحتوي النص على ${min} حرف على الأقل`,
1138
+ stringMax: (max) => `لا يمكن أن يحتوي النص على أكثر من ${max} حرف`,
1139
+ stringLength: (length) => `يجب أن يحتوي النص على ${length} حرف بالضبط`,
1140
+ stringEmail: 'عنوان بريد إلكتروني غير صحيح',
1141
+ stringUrl: 'رابط غير صحيح',
1142
+ stringUuid: 'UUID غير صحيح',
1143
+ stringRegex: 'تنسيق غير صحيح',
1144
+ stringStartsWith: (prefix) => `يجب أن يبدأ النص بـ "${prefix}"`,
1145
+ stringEndsWith: (suffix) => `يجب أن ينتهي النص بـ "${suffix}"`,
1146
+ stringIncludes: (substring) => `يجب أن يحتوي النص على "${substring}"`,
1147
+ stringIp: 'عنوان IP غير صحيح',
1148
+ stringIpv4: 'عنوان IPv4 غير صحيح',
1149
+ stringIpv6: 'عنوان IPv6 غير صحيح',
1150
+ stringEmpty: 'لا يمكن أن يكون النص فارغاً',
1151
+ // Number validation messages
1152
+ invalidNumber: 'رقم غير صحيح',
1153
+ numberMin: (min) => `يجب أن يكون الرقم ${min} على الأقل`,
1154
+ numberMax: (max) => `لا يمكن أن يكون الرقم أكبر من ${max}`,
1155
+ numberInt: 'يجب أن يكون الرقم صحيحاً',
1156
+ numberPositive: 'يجب أن يكون الرقم موجباً',
1157
+ numberNegative: 'يجب أن يكون الرقم سالباً',
1158
+ numberNonnegative: 'لا يمكن أن يكون الرقم سالباً',
1159
+ numberNonpositive: 'لا يمكن أن يكون الرقم موجباً',
1160
+ numberFinite: 'يجب أن يكون الرقم محدوداً',
1161
+ numberSafe: 'يجب أن يكون الرقم صحيحاً آمناً',
1162
+ numberMultipleOf: (value) => `يجب أن يكون الرقم مضاعفاً لـ ${value}`,
1163
+ // Boolean validation messages
1164
+ invalidBoolean: 'قيمة منطقية غير صحيحة',
1165
+ // Date validation messages
1166
+ invalidDate: 'تاريخ غير صحيح',
1167
+ dateMin: (date) => `يجب أن يكون التاريخ بعد ${date.toISOString()}`,
1168
+ dateMax: (date) => `يجب أن يكون التاريخ قبل ${date.toISOString()}`,
1169
+ // Object validation messages
1170
+ invalidObject: 'كائن غير صحيح',
1171
+ unexpectedKeys: (keys) => `مفاتيح غير متوقعة: ${keys.join(', ')}`,
1172
+ // Array validation messages
1173
+ invalidArray: 'مصفوفة غير صحيحة',
1174
+ arrayMin: (min) => `يجب أن تحتوي المصفوفة على ${min} عنصر على الأقل`,
1175
+ arrayMax: (max) => `لا يمكن أن تحتوي المصفوفة على أكثر من ${max} عنصر`,
1176
+ arrayLength: (length) => `يجب أن تحتوي المصفوفة على ${length} عنصر بالضبط`,
1177
+ arrayEmpty: 'لا يمكن أن تكون المصفوفة فارغة',
1178
+ arrayItem: (index, error) => `عنصر غير صحيح في الفهرس ${index}: ${error}`,
1179
+ // Object field validation
1180
+ objectField: (field, error) => `حقل غير صحيح "${field}": ${error}`,
1181
+ // Union validation messages
1182
+ unionNoMatch: (errors) => `لا يوجد عضو اتحاد مطابق: ${errors.join(', ')}`,
1183
+ // Intersection validation messages
1184
+ intersectionError: (error) => `فشل في التحقق من التقاطع: ${error}`,
1185
+ // Literal validation messages
1186
+ literalExpected: (expected, received) => `متوقع ${expected}، تم استلام ${received}`,
1187
+ // Enum validation messages
1188
+ enumExpected: (values, received) => `متوقع واحد من [${values.join(', ')}]، تم استلام ${received}`,
1189
+ // Special type validation messages
1190
+ expectedUndefined: 'متوقع undefined',
1191
+ neverType: 'لا يمكن تحليل نوع never',
1192
+ // New advanced type validation messages
1193
+ invalidBigint: 'bigint غير صحيح',
1194
+ invalidSymbol: 'رمز غير صحيح',
1195
+ invalidTuple: 'صف غير صحيح',
1196
+ tupleLength: (expected, received) => `يجب أن يحتوي الصف على ${expected} عنصر بالضبط، تم استلام ${received}`,
1197
+ invalidRecord: 'سجل غير صحيح',
1198
+ invalidSet: 'Set غير صحيح',
1199
+ invalidMap: 'Map غير صحيح',
1200
+ // Transformation and refinement messages
1201
+ transformError: (error) => `فشل التحويل: ${error}`,
1202
+ refinementError: (error) => `فشل التنقيح: ${error}`,
1203
+ customValidationError: (error) => `فشل في التحقق المخصص: ${error}`,
1204
+ // Coercion messages
1205
+ coercionFailed: (type, value) => `لا يمكن إكراه ${JSON.stringify(value)} إلى ${type}`,
1206
+ // Codec messages
1207
+ codecDecodeFailed: 'Failed to decode value',
1208
+ codecEncodeFailed: 'Failed to encode value',
1209
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1210
+ // Base64/Hex messages
1211
+ invalidBase64: 'Invalid base64 string',
1212
+ invalidHex: 'Invalid hexadecimal string',
1213
+ // Uint8Array messages
1214
+ expectedUint8Array: 'Expected Uint8Array',
1215
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1216
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1217
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1218
+ // Generic type error messages
1219
+ expectedString: 'Expected string',
1220
+ stringExpected: (received, expected) => `متوقع ${expected}، تم استلام ${received}`,
1221
+ stringBoolExpected: (validValues, received) => `سلسلة منطقية غير صحيحة. متوقع واحد من: ${validValues}، تم استلام: "${received}"`,
1222
+ invalidJson: 'JSON غير صالح',
1223
+ stringPatternInvalid: 'السلسلة لا تطابق النمط المطلوب',
1224
+ // File validation messages
1225
+ invalidFile: 'Expected a File object',
1226
+ fileNotSupported: 'File API not supported in this environment',
1227
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1228
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1229
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1230
+ // Function validation messages
1231
+ invalidFunction: 'دالة متوقعة',
1232
+ // CIDR validation messages
1233
+ stringCidrv4: 'كتلة CIDR IPv4 غير صالحة',
1234
+ stringCidrv6: 'كتلة CIDR IPv6 غير صالحة',
1235
+ // Safe extend validation messages
1236
+ safeExtendOverlap: (keys) => `لا يمكن استبدال المفاتيح الموجودة: ${keys.join(', ')}. استخدم extend() للاستبدال.`
1237
+ };
1238
+
1239
+ const hi = {
1240
+ // String validation messages
1241
+ invalidString: 'अमान्य स्ट्रिंग',
1242
+ stringMin: (min) => `स्ट्रिंग में कम से कम ${min} अक्षर होने चाहिए`,
1243
+ stringMax: (max) => `स्ट्रिंग में ${max} से अधिक अक्षर नहीं हो सकते`,
1244
+ stringLength: (length) => `स्ट्रिंग में ठीक ${length} अक्षर होने चाहिए`,
1245
+ stringEmail: 'अमान्य ईमेल पता',
1246
+ stringUrl: 'अमान्य URL',
1247
+ stringUuid: 'अमान्य UUID',
1248
+ stringRegex: 'अमान्य प्रारूप',
1249
+ stringStartsWith: (prefix) => `स्ट्रिंग "${prefix}" से शुरू होनी चाहिए`,
1250
+ stringEndsWith: (suffix) => `स्ट्रिंग "${suffix}" से समाप्त होनी चाहिए`,
1251
+ stringIncludes: (substring) => `स्ट्रिंग में "${substring}" होना चाहिए`,
1252
+ stringIp: 'अमान्य IP पता',
1253
+ stringIpv4: 'अमान्य IPv4 पता',
1254
+ stringIpv6: 'अमान्य IPv6 पता',
1255
+ stringEmpty: 'स्ट्रिंग खाली नहीं हो सकती',
1256
+ // Number validation messages
1257
+ invalidNumber: 'अमान्य संख्या',
1258
+ numberMin: (min) => `संख्या कम से कम ${min} होनी चाहिए`,
1259
+ numberMax: (max) => `संख्या ${max} से अधिक नहीं हो सकती`,
1260
+ numberInt: 'संख्या पूर्णांक होनी चाहिए',
1261
+ numberPositive: 'संख्या सकारात्मक होनी चाहिए',
1262
+ numberNegative: 'संख्या नकारात्मक होनी चाहिए',
1263
+ numberNonnegative: 'संख्या नकारात्मक नहीं हो सकती',
1264
+ numberNonpositive: 'संख्या सकारात्मक नहीं हो सकती',
1265
+ numberFinite: 'संख्या परिमित होनी चाहिए',
1266
+ numberSafe: 'संख्या सुरक्षित पूर्णांक होनी चाहिए',
1267
+ numberMultipleOf: (value) => `संख्या ${value} का गुणज होनी चाहिए`,
1268
+ // Boolean validation messages
1269
+ invalidBoolean: 'अमान्य बूलियन मान',
1270
+ // Date validation messages
1271
+ invalidDate: 'अमान्य तिथि',
1272
+ dateMin: (date) => `तिथि ${date.toISOString()} के बाद होनी चाहिए`,
1273
+ dateMax: (date) => `तिथि ${date.toISOString()} से पहले होनी चाहिए`,
1274
+ // Object validation messages
1275
+ invalidObject: 'अमान्य ऑब्जेक्ट',
1276
+ unexpectedKeys: (keys) => `अनपेक्षित कुंजियां: ${keys.join(', ')}`,
1277
+ // Array validation messages
1278
+ invalidArray: 'अमान्य सरणी',
1279
+ arrayMin: (min) => `सरणी में कम से कम ${min} तत्व होने चाहिए`,
1280
+ arrayMax: (max) => `सरणी में ${max} से अधिक तत्व नहीं हो सकते`,
1281
+ arrayLength: (length) => `सरणी में ठीक ${length} तत्व होने चाहिए`,
1282
+ arrayEmpty: 'सरणी खाली नहीं हो सकती',
1283
+ arrayItem: (index, error) => `सूचकांक ${index} पर अमान्य तत्व: ${error}`,
1284
+ // Object field validation
1285
+ objectField: (field, error) => `अमान्य फ़ील्ड "${field}": ${error}`,
1286
+ // Union validation messages
1287
+ unionNoMatch: (errors) => `कोई यूनियन सदस्य मेल नहीं खाया: ${errors.join(', ')}`,
1288
+ // Intersection validation messages
1289
+ intersectionError: (error) => `प्रतिच्छेदन सत्यापन विफल: ${error}`,
1290
+ // Literal validation messages
1291
+ literalExpected: (expected, received) => `अपेक्षित ${expected}, प्राप्त ${received}`,
1292
+ // Enum validation messages
1293
+ enumExpected: (values, received) => `[${values.join(', ')}] में से एक अपेक्षित, प्राप्त ${received}`,
1294
+ // Special type validation messages
1295
+ expectedUndefined: 'undefined अपेक्षित',
1296
+ neverType: 'never प्रकार का विश्लेषण नहीं किया जा सकता',
1297
+ // New advanced type validation messages
1298
+ invalidBigint: 'अमान्य bigint',
1299
+ invalidSymbol: 'अमान्य प्रतीक',
1300
+ invalidTuple: 'अमान्य ट्यूपल',
1301
+ tupleLength: (expected, received) => `ट्यूपल में ठीक ${expected} तत्व होने चाहिए, ${received} प्राप्त हुए`,
1302
+ invalidRecord: 'अमान्य रिकॉर्ड',
1303
+ invalidSet: 'अमान्य Set',
1304
+ invalidMap: 'अमान्य Map',
1305
+ // Transformation and refinement messages
1306
+ transformError: (error) => `रूपांतरण विफल: ${error}`,
1307
+ refinementError: (error) => `शुद्धीकरण विफल: ${error}`,
1308
+ customValidationError: (error) => `कस्टम सत्यापन विफल: ${error}`,
1309
+ // Coercion messages
1310
+ coercionFailed: (type, value) => `${JSON.stringify(value)} को ${type} में परिवर्तित नहीं किया जा सकता`,
1311
+ // Codec messages
1312
+ codecDecodeFailed: 'Failed to decode value',
1313
+ codecEncodeFailed: 'Failed to encode value',
1314
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1315
+ // Base64/Hex messages
1316
+ invalidBase64: 'Invalid base64 string',
1317
+ invalidHex: 'Invalid hexadecimal string',
1318
+ // Uint8Array messages
1319
+ expectedUint8Array: 'Expected Uint8Array',
1320
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1321
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1322
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1323
+ // Generic type error messages
1324
+ expectedString: 'Expected string',
1325
+ stringExpected: (received, expected) => `अपेक्षित ${expected}, प्राप्त ${received}`,
1326
+ stringBoolExpected: (validValues, received) => `अमान्य बूलियन स्ट्रिंग। निम्नलिखित में से एक अपेक्षित: ${validValues}, प्राप्त: "${received}"`,
1327
+ invalidJson: 'अमान्य JSON',
1328
+ stringPatternInvalid: 'स्ट्रिंग आवश्यक पैटर्न से मेल नहीं खाती',
1329
+ // File validation messages
1330
+ invalidFile: 'Expected a File object',
1331
+ fileNotSupported: 'File API not supported in this environment',
1332
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1333
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1334
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1335
+ // Function validation messages
1336
+ invalidFunction: 'एक फ़ंक्शन अपेक्षित है',
1337
+ // CIDR validation messages
1338
+ stringCidrv4: 'अमान्य IPv4 CIDR ब्लॉक',
1339
+ stringCidrv6: 'अमान्य IPv6 CIDR ब्लॉक',
1340
+ // Safe extend validation messages
1341
+ safeExtendOverlap: (keys) => `मौजूदा कुंजियों को ओवरराइड नहीं कर सकते: ${keys.join(', ')}। ओवरराइड करने के लिए extend() का उपयोग करें।`
1342
+ };
1343
+
1344
+ const nl = {
1345
+ // String validation messages
1346
+ invalidString: 'Ongeldige string',
1347
+ stringMin: (min) => `String moet ten minste ${min} tekens lang zijn`,
1348
+ stringMax: (max) => `String mag niet meer dan ${max} tekens lang zijn`,
1349
+ stringLength: (length) => `String moet precies ${length} tekens lang zijn`,
1350
+ stringEmail: 'Ongeldig e-mailadres',
1351
+ stringUrl: 'Ongeldige URL',
1352
+ stringUuid: 'Ongeldige UUID',
1353
+ stringRegex: 'Ongeldig formaat',
1354
+ stringStartsWith: (prefix) => `String moet beginnen met "${prefix}"`,
1355
+ stringEndsWith: (suffix) => `String moet eindigen met "${suffix}"`,
1356
+ stringIncludes: (substring) => `String moet "${substring}" bevatten`,
1357
+ stringIp: 'Ongeldig IP-adres',
1358
+ stringIpv4: 'Ongeldig IPv4-adres',
1359
+ stringIpv6: 'Ongeldig IPv6-adres',
1360
+ stringEmpty: 'String mag niet leeg zijn',
1361
+ // Number validation messages
1362
+ invalidNumber: 'Ongeldig getal',
1363
+ numberMin: (min) => `Getal moet ten minste ${min} zijn`,
1364
+ numberMax: (max) => `Getal mag niet meer dan ${max} zijn`,
1365
+ numberInt: 'Getal moet een geheel getal zijn',
1366
+ numberPositive: 'Getal moet positief zijn',
1367
+ numberNegative: 'Getal moet negatief zijn',
1368
+ numberNonnegative: 'Getal mag niet negatief zijn',
1369
+ numberNonpositive: 'Getal mag niet positief zijn',
1370
+ numberFinite: 'Getal moet eindig zijn',
1371
+ numberSafe: 'Getal moet een veilig geheel getal zijn',
1372
+ numberMultipleOf: (value) => `Getal moet een veelvoud van ${value} zijn`,
1373
+ // Boolean validation messages
1374
+ invalidBoolean: 'Ongeldige boolean waarde',
1375
+ // Date validation messages
1376
+ invalidDate: 'Ongeldige datum',
1377
+ dateMin: (date) => `Datum moet na ${date.toISOString()} zijn`,
1378
+ dateMax: (date) => `Datum moet voor ${date.toISOString()} zijn`,
1379
+ // Object validation messages
1380
+ invalidObject: 'Ongeldig object',
1381
+ unexpectedKeys: (keys) => `Onverwachte sleutels: ${keys.join(', ')}`,
1382
+ // Array validation messages
1383
+ invalidArray: 'Ongeldige array',
1384
+ arrayMin: (min) => `Array moet ten minste ${min} elementen hebben`,
1385
+ arrayMax: (max) => `Array mag niet meer dan ${max} elementen hebben`,
1386
+ arrayLength: (length) => `Array moet precies ${length} elementen hebben`,
1387
+ arrayEmpty: 'Array mag niet leeg zijn',
1388
+ arrayItem: (index, error) => `Ongeldig element op index ${index}: ${error}`,
1389
+ // Object field validation
1390
+ objectField: (field, error) => `Ongeldig veld "${field}": ${error}`,
1391
+ // Union validation messages
1392
+ unionNoMatch: (errors) => `Geen union lid kwam overeen: ${errors.join(', ')}`,
1393
+ // Intersection validation messages
1394
+ intersectionError: (error) => `Intersection validatie mislukt: ${error}`,
1395
+ // Literal validation messages
1396
+ literalExpected: (expected, received) => `Verwacht ${expected}, ontvangen ${received}`,
1397
+ // Enum validation messages
1398
+ enumExpected: (values, received) => `Verwacht een van [${values.join(', ')}], ontvangen ${received}`,
1399
+ // Special type validation messages
1400
+ expectedUndefined: 'Verwacht undefined',
1401
+ neverType: 'Never type kan niet worden geparseerd',
1402
+ // New advanced type validation messages
1403
+ invalidBigint: 'Ongeldige bigint',
1404
+ invalidSymbol: 'Ongeldig symbool',
1405
+ invalidTuple: 'Ongeldige tuple',
1406
+ tupleLength: (expected, received) => `Tuple moet precies ${expected} elementen hebben, ontvangen ${received}`,
1407
+ invalidRecord: 'Ongeldig record',
1408
+ invalidSet: 'Ongeldige set',
1409
+ invalidMap: 'Ongeldige map',
1410
+ // Transformation and refinement messages
1411
+ transformError: (error) => `Transformatie mislukt: ${error}`,
1412
+ refinementError: (error) => `Verfijning mislukt: ${error}`,
1413
+ customValidationError: (error) => `Aangepaste validatie mislukt: ${error}`,
1414
+ // Coercion messages
1415
+ coercionFailed: (type, value) => `Kan ${JSON.stringify(value)} niet omzetten naar ${type}`,
1416
+ // Codec messages
1417
+ codecDecodeFailed: 'Failed to decode value',
1418
+ codecEncodeFailed: 'Failed to encode value',
1419
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1420
+ // Base64/Hex messages
1421
+ invalidBase64: 'Invalid base64 string',
1422
+ invalidHex: 'Invalid hexadecimal string',
1423
+ // Uint8Array messages
1424
+ expectedUint8Array: 'Expected Uint8Array',
1425
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1426
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1427
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1428
+ // Generic type error messages
1429
+ expectedString: 'Expected string',
1430
+ stringExpected: (received, expected) => `Verwacht ${expected}, ontvangen ${received}`,
1431
+ stringBoolExpected: (validValues, received) => `Ongeldige boolean string. Een van de volgende verwacht: ${validValues}, ontvangen: "${received}"`,
1432
+ invalidJson: 'Ongeldige JSON',
1433
+ stringPatternInvalid: 'Tekenreeks komt niet overeen met het vereiste patroon',
1434
+ // File validation messages
1435
+ invalidFile: 'Expected a File object',
1436
+ fileNotSupported: 'File API not supported in this environment',
1437
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1438
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1439
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1440
+ // Function validation messages
1441
+ invalidFunction: 'Een functie verwacht',
1442
+ // CIDR validation messages
1443
+ stringCidrv4: 'Ongeldig IPv4 CIDR-blok',
1444
+ stringCidrv6: 'Ongeldig IPv6 CIDR-blok',
1445
+ // Safe extend validation messages
1446
+ safeExtendOverlap: (keys) => `Kan bestaande sleutels niet overschrijven: ${keys.join(', ')}. Gebruik extend() als je wilt overschrijven.`
1447
+ };
1448
+
1449
+ const pl = {
1450
+ // String validation messages
1451
+ invalidString: 'Nieprawidłowy ciąg znaków',
1452
+ stringMin: (min) => `Ciąg znaków musi mieć co najmniej ${min} znaków`,
1453
+ stringMax: (max) => `Ciąg znaków nie może mieć więcej niż ${max} znaków`,
1454
+ stringLength: (length) => `Ciąg znaków musi mieć dokładnie ${length} znaków`,
1455
+ stringEmail: 'Nieprawidłowy adres email',
1456
+ stringUrl: 'Nieprawidłowy URL',
1457
+ stringUuid: 'Nieprawidłowy UUID',
1458
+ stringRegex: 'Nieprawidłowy format',
1459
+ stringStartsWith: (prefix) => `Ciąg znaków musi zaczynać się od "${prefix}"`,
1460
+ stringEndsWith: (suffix) => `Ciąg znaków musi kończyć się na "${suffix}"`,
1461
+ stringIncludes: (substring) => `Ciąg znaków musi zawierać "${substring}"`,
1462
+ stringIp: 'Nieprawidłowy adres IP',
1463
+ stringIpv4: 'Nieprawidłowy adres IPv4',
1464
+ stringIpv6: 'Nieprawidłowy adres IPv6',
1465
+ stringEmpty: 'Ciąg znaków nie może być pusty',
1466
+ // Number validation messages
1467
+ invalidNumber: 'Nieprawidłowa liczba',
1468
+ numberMin: (min) => `Liczba musi być co najmniej ${min}`,
1469
+ numberMax: (max) => `Liczba nie może być większa niż ${max}`,
1470
+ numberInt: 'Liczba musi być liczbą całkowitą',
1471
+ numberPositive: 'Liczba musi być dodatnia',
1472
+ numberNegative: 'Liczba musi być ujemna',
1473
+ numberNonnegative: 'Liczba nie może być ujemna',
1474
+ numberNonpositive: 'Liczba nie może być dodatnia',
1475
+ numberFinite: 'Liczba musi być skończona',
1476
+ numberSafe: 'Liczba musi być bezpieczną liczbą całkowitą',
1477
+ numberMultipleOf: (value) => `Liczba musi być wielokrotnością ${value}`,
1478
+ // Boolean validation messages
1479
+ invalidBoolean: 'Nieprawidłowa wartość boolean',
1480
+ // Date validation messages
1481
+ invalidDate: 'Nieprawidłowa data',
1482
+ dateMin: (date) => `Data musi być po ${date.toISOString()}`,
1483
+ dateMax: (date) => `Data musi być przed ${date.toISOString()}`,
1484
+ // Object validation messages
1485
+ invalidObject: 'Nieprawidłowy obiekt',
1486
+ unexpectedKeys: (keys) => `Nieoczekiwane klucze: ${keys.join(', ')}`,
1487
+ // Array validation messages
1488
+ invalidArray: 'Nieprawidłowa tablica',
1489
+ arrayMin: (min) => `Tablica musi mieć co najmniej ${min} elementów`,
1490
+ arrayMax: (max) => `Tablica nie może mieć więcej niż ${max} elementów`,
1491
+ arrayLength: (length) => `Tablica musi mieć dokładnie ${length} elementów`,
1492
+ arrayEmpty: 'Tablica nie może być pusta',
1493
+ arrayItem: (index, error) => `Nieprawidłowy element na indeksie ${index}: ${error}`,
1494
+ // Object field validation
1495
+ objectField: (field, error) => `Nieprawidłowe pole "${field}": ${error}`,
1496
+ // Union validation messages
1497
+ unionNoMatch: (errors) => `Żaden członek unii nie pasował: ${errors.join(', ')}`,
1498
+ // Intersection validation messages
1499
+ intersectionError: (error) => `Walidacja przecięcia nie powiodła się: ${error}`,
1500
+ // Literal validation messages
1501
+ literalExpected: (expected, received) => `Oczekiwano ${expected}, otrzymano ${received}`,
1502
+ // Enum validation messages
1503
+ enumExpected: (values, received) => `Oczekiwano jednego z [${values.join(', ')}], otrzymano ${received}`,
1504
+ // Special type validation messages
1505
+ expectedUndefined: 'Oczekiwano undefined',
1506
+ neverType: 'Typ never nie może być przeanalizowany',
1507
+ // New advanced type validation messages
1508
+ invalidBigint: 'Nieprawidłowy bigint',
1509
+ invalidSymbol: 'Nieprawidłowy symbol',
1510
+ invalidTuple: 'Nieprawidłowa krotka',
1511
+ tupleLength: (expected, received) => `Krotka musi mieć dokładnie ${expected} elementów, otrzymano ${received}`,
1512
+ invalidRecord: 'Nieprawidłowy rekord',
1513
+ invalidSet: 'Nieprawidłowy Set',
1514
+ invalidMap: 'Nieprawidłowa Map',
1515
+ // Transformation and refinement messages
1516
+ transformError: (error) => `Transformacja nie powiodła się: ${error}`,
1517
+ refinementError: (error) => `Rafinacja nie powiodła się: ${error}`,
1518
+ customValidationError: (error) => `Niestandardowa walidacja nie powiodła się: ${error}`,
1519
+ // Coercion messages
1520
+ coercionFailed: (type, value) => `Nie można przekształcić ${JSON.stringify(value)} na ${type}`,
1521
+ // Codec messages
1522
+ codecDecodeFailed: 'Failed to decode value',
1523
+ codecEncodeFailed: 'Failed to encode value',
1524
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1525
+ // Base64/Hex messages
1526
+ invalidBase64: 'Invalid base64 string',
1527
+ invalidHex: 'Invalid hexadecimal string',
1528
+ // Uint8Array messages
1529
+ expectedUint8Array: 'Expected Uint8Array',
1530
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1531
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1532
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1533
+ // Generic type error messages
1534
+ expectedString: 'Expected string',
1535
+ stringExpected: (received, expected) => `Oczekiwano ${expected}, otrzymano ${received}`,
1536
+ stringBoolExpected: (validValues, received) => `Nieprawidłowy ciąg znaków boolean. Oczekiwano jednego z: ${validValues}, otrzymano: "${received}"`,
1537
+ invalidJson: 'Nieprawidłowy JSON',
1538
+ stringPatternInvalid: 'Ciąg znaków nie pasuje do wymaganego wzorca',
1539
+ // File validation messages
1540
+ invalidFile: 'Expected a File object',
1541
+ fileNotSupported: 'File API not supported in this environment',
1542
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1543
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1544
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1545
+ // Function validation messages
1546
+ invalidFunction: 'Oczekiwano funkcji',
1547
+ // CIDR validation messages
1548
+ stringCidrv4: 'Nieprawidłowy blok CIDR IPv4',
1549
+ stringCidrv6: 'Nieprawidłowy blok CIDR IPv6',
1550
+ // Safe extend validation messages
1551
+ safeExtendOverlap: (keys) => `Nie można nadpisać istniejących kluczy: ${keys.join(', ')}. Użyj extend() aby nadpisać.`
1552
+ };
1553
+
1554
+ const da = {
1555
+ // String validation messages
1556
+ invalidString: 'Ugyldig streng',
1557
+ stringMin: (min) => `Streng skal være mindst ${min} tegn lang`,
1558
+ stringMax: (max) => `Streng må højst være ${max} tegn lang`,
1559
+ stringLength: (length) => `Streng skal være præcis ${length} tegn lang`,
1560
+ stringEmail: 'Ugyldig e-mailadresse',
1561
+ stringUrl: 'Ugyldig URL',
1562
+ stringUuid: 'Ugyldig UUID',
1563
+ stringRegex: 'Ugyldigt format',
1564
+ stringStartsWith: (prefix) => `Streng skal starte med "${prefix}"`,
1565
+ stringEndsWith: (suffix) => `Streng skal slutte med "${suffix}"`,
1566
+ stringIncludes: (substring) => `Streng skal indeholde "${substring}"`,
1567
+ stringIp: 'Ugyldig IP-adresse',
1568
+ stringIpv4: 'Ugyldig IPv4-adresse',
1569
+ stringIpv6: 'Ugyldig IPv6-adresse',
1570
+ stringEmpty: 'Streng må ikke være tom',
1571
+ // Number validation messages
1572
+ invalidNumber: 'Ugyldigt tal',
1573
+ numberMin: (min) => `Tal skal være mindst ${min}`,
1574
+ numberMax: (max) => `Tal må højst være ${max}`,
1575
+ numberInt: 'Tal skal være et heltal',
1576
+ numberPositive: 'Tal skal være positivt',
1577
+ numberNegative: 'Tal skal være negativt',
1578
+ numberNonnegative: 'Tal må ikke være negativt',
1579
+ numberNonpositive: 'Tal må ikke være positivt',
1580
+ numberFinite: 'Tal skal være endeligt',
1581
+ numberSafe: 'Tal skal være et sikkert heltal',
1582
+ numberMultipleOf: (value) => `Tal skal være et multiplum af ${value}`,
1583
+ // Boolean validation messages
1584
+ invalidBoolean: 'Ugyldig boolean-værdi',
1585
+ // Date validation messages
1586
+ invalidDate: 'Ugyldig dato',
1587
+ dateMin: (date) => `Dato skal være efter ${date.toISOString()}`,
1588
+ dateMax: (date) => `Dato skal være før ${date.toISOString()}`,
1589
+ // Object validation messages
1590
+ invalidObject: 'Ugyldigt objekt',
1591
+ unexpectedKeys: (keys) => `Uventede nøgler: ${keys.join(', ')}`,
1592
+ // Array validation messages
1593
+ invalidArray: 'Ugyldigt array',
1594
+ arrayMin: (min) => `Array skal have mindst ${min} elementer`,
1595
+ arrayMax: (max) => `Array må højst have ${max} elementer`,
1596
+ arrayLength: (length) => `Array skal have præcis ${length} elementer`,
1597
+ arrayEmpty: 'Array må ikke være tomt',
1598
+ arrayItem: (index, error) => `Ugyldigt element ved indeks ${index}: ${error}`,
1599
+ // Object field validation
1600
+ objectField: (field, error) => `Ugyldigt felt "${field}": ${error}`,
1601
+ // Union validation messages
1602
+ unionNoMatch: (errors) => `Intet union-medlem matchede: ${errors.join(', ')}`,
1603
+ // Intersection validation messages
1604
+ intersectionError: (error) => `Intersection validering fejlede: ${error}`,
1605
+ // Literal validation messages
1606
+ literalExpected: (expected, received) => `Forventede ${expected}, fik ${received}`,
1607
+ // Enum validation messages
1608
+ enumExpected: (values, received) => `Forventede en af [${values.join(', ')}], fik ${received}`,
1609
+ // Special type validation messages
1610
+ expectedUndefined: 'Forventede undefined',
1611
+ neverType: 'Never-type kan ikke parses',
1612
+ // New advanced type validation messages
1613
+ invalidBigint: 'Ugyldig bigint',
1614
+ invalidSymbol: 'Ugyldigt symbol',
1615
+ invalidTuple: 'Ugyldig tupel',
1616
+ tupleLength: (expected, received) => `Tupel skal have præcis ${expected} elementer, fik ${received}`,
1617
+ invalidRecord: 'Ugyldig post',
1618
+ invalidSet: 'Ugyldigt Set',
1619
+ invalidMap: 'Ugyldig Map',
1620
+ // Transformation and refinement messages
1621
+ transformError: (error) => `Transformation fejlede: ${error}`,
1622
+ refinementError: (error) => `Forfinelse fejlede: ${error}`,
1623
+ customValidationError: (error) => `Brugerdefineret validering mislykkedes: ${error}`,
1624
+ // Coercion messages
1625
+ coercionFailed: (type, value) => `Kan ikke konvertere ${JSON.stringify(value)} til ${type}`,
1626
+ // Codec messages
1627
+ codecDecodeFailed: 'Failed to decode value',
1628
+ codecEncodeFailed: 'Failed to encode value',
1629
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1630
+ // Base64/Hex messages
1631
+ invalidBase64: 'Invalid base64 string',
1632
+ invalidHex: 'Invalid hexadecimal string',
1633
+ // Uint8Array messages
1634
+ expectedUint8Array: 'Expected Uint8Array',
1635
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1636
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1637
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1638
+ // Generic type error messages
1639
+ expectedString: 'Expected string',
1640
+ stringExpected: (received, expected) => `Forventede ${expected}, fik ${received}`,
1641
+ stringBoolExpected: (validValues, received) => `Ugyldig boolean streng. En af følgende forventet: ${validValues}, fik: "${received}"`,
1642
+ invalidJson: 'Ugyldig JSON',
1643
+ stringPatternInvalid: 'Streng matcher ikke det krævede mønster',
1644
+ // File validation messages
1645
+ invalidFile: 'Expected a File object',
1646
+ fileNotSupported: 'File API not supported in this environment',
1647
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1648
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1649
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1650
+ // Function validation messages
1651
+ invalidFunction: 'En funktion forventes',
1652
+ // CIDR validation messages
1653
+ stringCidrv4: 'Ugyldig IPv4 CIDR-blok',
1654
+ stringCidrv6: 'Ugyldig IPv6 CIDR-blok',
1655
+ // Safe extend validation messages
1656
+ safeExtendOverlap: (keys) => `Kan ikke overskrive eksisterende nøgler: ${keys.join(', ')}. Brug extend() for at overskrive.`
1657
+ };
1658
+
1659
+ const sv = {
1660
+ // String validation messages
1661
+ invalidString: 'Ogiltig sträng',
1662
+ stringMin: (min) => `Sträng måste vara minst ${min} tecken lång`,
1663
+ stringMax: (max) => `Sträng får vara högst ${max} tecken lång`,
1664
+ stringLength: (length) => `Sträng måste vara exakt ${length} tecken lång`,
1665
+ stringEmail: 'Ogiltig e-postadress',
1666
+ stringUrl: 'Ogiltig URL',
1667
+ stringUuid: 'Ogiltig UUID',
1668
+ stringRegex: 'Ogiltigt format',
1669
+ stringStartsWith: (prefix) => `Sträng måste börja med "${prefix}"`,
1670
+ stringEndsWith: (suffix) => `Sträng måste sluta med "${suffix}"`,
1671
+ stringIncludes: (substring) => `Sträng måste innehålla "${substring}"`,
1672
+ stringIp: 'Ogiltig IP-adress',
1673
+ stringIpv4: 'Ogiltig IPv4-adress',
1674
+ stringIpv6: 'Ogiltig IPv6-adress',
1675
+ stringEmpty: 'Sträng får inte vara tom',
1676
+ // Number validation messages
1677
+ invalidNumber: 'Ogiltigt nummer',
1678
+ numberMin: (min) => `Nummer måste vara minst ${min}`,
1679
+ numberMax: (max) => `Nummer får vara högst ${max}`,
1680
+ numberInt: 'Nummer måste vara ett heltal',
1681
+ numberPositive: 'Nummer måste vara positivt',
1682
+ numberNegative: 'Nummer måste vara negativt',
1683
+ numberNonnegative: 'Nummer får inte vara negativt',
1684
+ numberNonpositive: 'Nummer får inte vara positivt',
1685
+ numberFinite: 'Nummer måste vara ändligt',
1686
+ numberSafe: 'Nummer måste vara ett säkert heltal',
1687
+ numberMultipleOf: (value) => `Nummer måste vara en multipel av ${value}`,
1688
+ // Boolean validation messages
1689
+ invalidBoolean: 'Ogiltigt boolean-värde',
1690
+ // Date validation messages
1691
+ invalidDate: 'Ogiltigt datum',
1692
+ dateMin: (date) => `Datum måste vara efter ${date.toISOString()}`,
1693
+ dateMax: (date) => `Datum måste vara före ${date.toISOString()}`,
1694
+ // Object validation messages
1695
+ invalidObject: 'Ogiltigt objekt',
1696
+ unexpectedKeys: (keys) => `Oväntade nycklar: ${keys.join(', ')}`,
1697
+ // Array validation messages
1698
+ invalidArray: 'Ogiltig array',
1699
+ arrayMin: (min) => `Array måste ha minst ${min} element`,
1700
+ arrayMax: (max) => `Array får ha högst ${max} element`,
1701
+ arrayLength: (length) => `Array måste ha exakt ${length} element`,
1702
+ arrayEmpty: 'Array får inte vara tom',
1703
+ arrayItem: (index, error) => `Ogiltigt element vid index ${index}: ${error}`,
1704
+ // Object field validation
1705
+ objectField: (field, error) => `Ogiltigt fält "${field}": ${error}`,
1706
+ // Union validation messages
1707
+ unionNoMatch: (errors) => `Ingen union-medlem matchade: ${errors.join(', ')}`,
1708
+ // Intersection validation messages
1709
+ intersectionError: (error) => `Intersection validering misslyckades: ${error}`,
1710
+ // Literal validation messages
1711
+ literalExpected: (expected, received) => `Förväntade ${expected}, fick ${received}`,
1712
+ // Enum validation messages
1713
+ enumExpected: (values, received) => `Förväntade en av [${values.join(', ')}], fick ${received}`,
1714
+ // Special type validation messages
1715
+ expectedUndefined: 'Förväntade undefined',
1716
+ neverType: 'Never-typ kan inte parsas',
1717
+ // New advanced type validation messages
1718
+ invalidBigint: 'Ogiltig bigint',
1719
+ invalidSymbol: 'Ogiltig symbol',
1720
+ invalidTuple: 'Ogiltig tupel',
1721
+ tupleLength: (expected, received) => `Tupel måste ha exakt ${expected} element, fick ${received}`,
1722
+ invalidRecord: 'Ogiltig post',
1723
+ invalidSet: 'Ogiltig Set',
1724
+ invalidMap: 'Ogiltig Map',
1725
+ // Transformation and refinement messages
1726
+ transformError: (error) => `Transformation misslyckades: ${error}`,
1727
+ refinementError: (error) => `Förfining misslyckades: ${error}`,
1728
+ customValidationError: (error) => `Anpassad validering misslyckades: ${error}`,
1729
+ // Coercion messages
1730
+ coercionFailed: (type, value) => `Kan inte konvertera ${JSON.stringify(value)} till ${type}`,
1731
+ // Codec messages
1732
+ codecDecodeFailed: 'Failed to decode value',
1733
+ codecEncodeFailed: 'Failed to encode value',
1734
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1735
+ // Base64/Hex messages
1736
+ invalidBase64: 'Invalid base64 string',
1737
+ invalidHex: 'Invalid hexadecimal string',
1738
+ // Uint8Array messages
1739
+ expectedUint8Array: 'Expected Uint8Array',
1740
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1741
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1742
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1743
+ // Generic type error messages
1744
+ expectedString: 'Expected string',
1745
+ stringExpected: (received, expected) => `Förväntade ${expected}, fick ${received}`,
1746
+ stringBoolExpected: (validValues, received) => `Ogiltig boolean sträng. En av följande förväntad: ${validValues}, fick: "${received}"`,
1747
+ invalidJson: 'Ogiltig JSON',
1748
+ stringPatternInvalid: 'Strängen matchar inte det krävda mönstret',
1749
+ // File validation messages
1750
+ invalidFile: 'Expected a File object',
1751
+ fileNotSupported: 'File API not supported in this environment',
1752
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1753
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1754
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1755
+ // Function validation messages
1756
+ invalidFunction: 'En funktion förväntas',
1757
+ // CIDR validation messages
1758
+ stringCidrv4: 'Ogiltigt IPv4 CIDR-block',
1759
+ stringCidrv6: 'Ogiltigt IPv6 CIDR-block',
1760
+ // Safe extend validation messages
1761
+ safeExtendOverlap: (keys) => `Kan inte skriva över befintliga nycklar: ${keys.join(', ')}. Använd extend() för att skriva över.`
1762
+ };
1763
+
1764
+ const no = {
1765
+ // String validation messages
1766
+ invalidString: 'Ugyldig streng',
1767
+ stringMin: (min) => `Streng må være minst ${min} tegn lang`,
1768
+ stringMax: (max) => `Streng kan være maks ${max} tegn lang`,
1769
+ stringLength: (length) => `Streng må være nøyaktig ${length} tegn lang`,
1770
+ stringEmail: 'Ugyldig e-postadresse',
1771
+ stringUrl: 'Ugyldig URL',
1772
+ stringUuid: 'Ugyldig UUID',
1773
+ stringRegex: 'Ugyldig format',
1774
+ stringStartsWith: (prefix) => `Streng må starte med "${prefix}"`,
1775
+ stringEndsWith: (suffix) => `Streng må slutte med "${suffix}"`,
1776
+ stringIncludes: (substring) => `Streng må inneholde "${substring}"`,
1777
+ stringIp: 'Ugyldig IP-adresse',
1778
+ stringIpv4: 'Ugyldig IPv4-adresse',
1779
+ stringIpv6: 'Ugyldig IPv6-adresse',
1780
+ stringEmpty: 'Streng kan ikke være tom',
1781
+ // Number validation messages
1782
+ invalidNumber: 'Ugyldig tall',
1783
+ numberMin: (min) => `Tall må være minst ${min}`,
1784
+ numberMax: (max) => `Tall kan være maks ${max}`,
1785
+ numberInt: 'Tall må være et heltall',
1786
+ numberPositive: 'Tall må være positivt',
1787
+ numberNegative: 'Tall må være negativt',
1788
+ numberNonnegative: 'Tall kan ikke være negativt',
1789
+ numberNonpositive: 'Tall kan ikke være positivt',
1790
+ numberFinite: 'Tall må være endelig',
1791
+ numberSafe: 'Tall må være et trygt heltall',
1792
+ numberMultipleOf: (value) => `Tall må være et multiplum av ${value}`,
1793
+ // Boolean validation messages
1794
+ invalidBoolean: 'Ugyldig boolean-verdi',
1795
+ // Date validation messages
1796
+ invalidDate: 'Ugyldig dato',
1797
+ dateMin: (date) => `Dato må være etter ${date.toISOString()}`,
1798
+ dateMax: (date) => `Dato må være før ${date.toISOString()}`,
1799
+ // Object validation messages
1800
+ invalidObject: 'Ugyldig objekt',
1801
+ unexpectedKeys: (keys) => `Uventede nøkler: ${keys.join(', ')}`,
1802
+ // Array validation messages
1803
+ invalidArray: 'Ugyldig array',
1804
+ arrayMin: (min) => `Array må ha minst ${min} elementer`,
1805
+ arrayMax: (max) => `Array kan ha maks ${max} elementer`,
1806
+ arrayLength: (length) => `Array må ha nøyaktig ${length} elementer`,
1807
+ arrayEmpty: 'Array kan ikke være tom',
1808
+ arrayItem: (index, error) => `Ugyldig element ved indeks ${index}: ${error}`,
1809
+ // Object field validation
1810
+ objectField: (field, error) => `Ugyldig felt "${field}": ${error}`,
1811
+ // Union validation messages
1812
+ unionNoMatch: (errors) => `Ingen union-medlem passet: ${errors.join(', ')}`,
1813
+ // Intersection validation messages
1814
+ intersectionError: (error) => `Intersection validering feilet: ${error}`,
1815
+ // Literal validation messages
1816
+ literalExpected: (expected, received) => `Forventet ${expected}, fikk ${received}`,
1817
+ // Enum validation messages
1818
+ enumExpected: (values, received) => `Forventet en av [${values.join(', ')}], fikk ${received}`,
1819
+ // Special type validation messages
1820
+ expectedUndefined: 'Forventet undefined',
1821
+ neverType: 'Never-type kan ikke parses',
1822
+ // New advanced type validation messages
1823
+ invalidBigint: 'Ugyldig bigint',
1824
+ invalidSymbol: 'Ugyldig symbol',
1825
+ invalidTuple: 'Ugyldig tuppel',
1826
+ tupleLength: (expected, received) => `Tuppel må ha nøyaktig ${expected} elementer, fikk ${received}`,
1827
+ invalidRecord: 'Ugyldig post',
1828
+ invalidSet: 'Ugyldig Set',
1829
+ invalidMap: 'Ugyldig Map',
1830
+ // Transformation and refinement messages
1831
+ transformError: (error) => `Transformasjon mislyktes: ${error}`,
1832
+ refinementError: (error) => `Foredling mislyktes: ${error}`,
1833
+ customValidationError: (error) => `Tilpasset validering mislyktes: ${error}`,
1834
+ // Coercion messages
1835
+ coercionFailed: (type, value) => `Kan ikke konvertere ${JSON.stringify(value)} til ${type}`,
1836
+ // Codec messages
1837
+ codecDecodeFailed: 'Failed to decode value',
1838
+ codecEncodeFailed: 'Failed to encode value',
1839
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1840
+ // Base64/Hex messages
1841
+ invalidBase64: 'Invalid base64 string',
1842
+ invalidHex: 'Invalid hexadecimal string',
1843
+ // Uint8Array messages
1844
+ expectedUint8Array: 'Expected Uint8Array',
1845
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1846
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1847
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1848
+ // Generic type error messages
1849
+ expectedString: 'Expected string',
1850
+ stringExpected: (received, expected) => `Forventet ${expected}, fikk ${received}`,
1851
+ stringBoolExpected: (validValues, received) => `Ugyldig boolean streng. En av følgende forventet: ${validValues}, fikk: "${received}"`,
1852
+ invalidJson: 'Ugyldig JSON',
1853
+ stringPatternInvalid: 'Strengen samsvarer ikke med det nødvendige mønsteret',
1854
+ // File validation messages
1855
+ invalidFile: 'Expected a File object',
1856
+ fileNotSupported: 'File API not supported in this environment',
1857
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1858
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1859
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1860
+ // Function validation messages
1861
+ invalidFunction: 'En funksjon forventes',
1862
+ // CIDR validation messages
1863
+ stringCidrv4: 'Ugyldig IPv4 CIDR-blokk',
1864
+ stringCidrv6: 'Ugyldig IPv6 CIDR-blokk',
1865
+ // Safe extend validation messages
1866
+ safeExtendOverlap: (keys) => `Kan ikke overskrive eksisterende nøkler: ${keys.join(', ')}. Bruk extend() for å overskrive.`
1867
+ };
1868
+
1869
+ const fi = {
1870
+ // String validation messages
1871
+ invalidString: 'Virheellinen merkkijono',
1872
+ stringMin: (min) => `Merkkijonon tulee olla vähintään ${min} merkkiä pitkä`,
1873
+ stringMax: (max) => `Merkkijono saa olla enintään ${max} merkkiä pitkä`,
1874
+ stringLength: (length) => `Merkkijonon tulee olla täsmälleen ${length} merkkiä pitkä`,
1875
+ stringEmail: 'Virheellinen sähköpostiosoite',
1876
+ stringUrl: 'Virheellinen URL',
1877
+ stringUuid: 'Virheellinen UUID',
1878
+ stringRegex: 'Virheellinen muoto',
1879
+ stringStartsWith: (prefix) => `Merkkijonon tulee alkaa merkeillä "${prefix}"`,
1880
+ stringEndsWith: (suffix) => `Merkkijonon tulee päättyä merkkeihin "${suffix}"`,
1881
+ stringIncludes: (substring) => `Merkkijonon tulee sisältää "${substring}"`,
1882
+ stringIp: 'Virheellinen IP-osoite',
1883
+ stringIpv4: 'Virheellinen IPv4-osoite',
1884
+ stringIpv6: 'Virheellinen IPv6-osoite',
1885
+ stringEmpty: 'Merkkijono ei saa olla tyhjä',
1886
+ // Number validation messages
1887
+ invalidNumber: 'Virheellinen luku',
1888
+ numberMin: (min) => `Luvun tulee olla vähintään ${min}`,
1889
+ numberMax: (max) => `Luku saa olla enintään ${max}`,
1890
+ numberInt: 'Luvun tulee olla kokonaisluku',
1891
+ numberPositive: 'Luvun tulee olla positiivinen',
1892
+ numberNegative: 'Luvun tulee olla negatiivinen',
1893
+ numberNonnegative: 'Luku ei saa olla negatiivinen',
1894
+ numberNonpositive: 'Luku ei saa olla positiivinen',
1895
+ numberFinite: 'Luvun tulee olla äärellinen',
1896
+ numberSafe: 'Luvun tulee olla turvallinen kokonaisluku',
1897
+ numberMultipleOf: (value) => `Luvun tulee olla ${value}:n kerrannainen`,
1898
+ // Boolean validation messages
1899
+ invalidBoolean: 'Virheellinen totuusarvo',
1900
+ // Date validation messages
1901
+ invalidDate: 'Virheellinen päivämäärä',
1902
+ dateMin: (date) => `Päivämäärän tulee olla ${date.toISOString()} jälkeen`,
1903
+ dateMax: (date) => `Päivämäärän tulee olla ennen ${date.toISOString()}`,
1904
+ // Object validation messages
1905
+ invalidObject: 'Virheellinen objekti',
1906
+ unexpectedKeys: (keys) => `Odottamattomat avaimet: ${keys.join(', ')}`,
1907
+ // Array validation messages
1908
+ invalidArray: 'Virheellinen taulukko',
1909
+ arrayMin: (min) => `Taulukossa tulee olla vähintään ${min} alkiota`,
1910
+ arrayMax: (max) => `Taulukossa saa olla enintään ${max} alkiota`,
1911
+ arrayLength: (length) => `Taulukossa tulee olla täsmälleen ${length} alkiota`,
1912
+ arrayEmpty: 'Taulukko ei saa olla tyhjä',
1913
+ arrayItem: (index, error) => `Virheellinen alkio indeksissä ${index}: ${error}`,
1914
+ // Object field validation
1915
+ objectField: (field, error) => `Virheellinen kenttä "${field}": ${error}`,
1916
+ // Union validation messages
1917
+ unionNoMatch: (errors) => `Mikään union-jäsen ei täsmännyt: ${errors.join(', ')}`,
1918
+ // Intersection validation messages
1919
+ intersectionError: (error) => `Intersection validointi epäonnistui: ${error}`,
1920
+ // Literal validation messages
1921
+ literalExpected: (expected, received) => `Odotettiin ${expected}, saatiin ${received}`,
1922
+ // Enum validation messages
1923
+ enumExpected: (values, received) => `Odotettiin yhtä arvoista [${values.join(', ')}], saatiin ${received}`,
1924
+ // Special type validation messages
1925
+ expectedUndefined: 'Odotettiin undefined',
1926
+ neverType: 'Never-tyyppiä ei voida jäsentää',
1927
+ // New advanced type validation messages
1928
+ invalidBigint: 'Virheellinen bigint',
1929
+ invalidSymbol: 'Virheellinen symboli',
1930
+ invalidTuple: 'Virheellinen monikko',
1931
+ tupleLength: (expected, received) => `Monikossa tulee olla täsmälleen ${expected} alkiota, saatiin ${received}`,
1932
+ invalidRecord: 'Virheellinen tietue',
1933
+ invalidSet: 'Virheellinen Set',
1934
+ invalidMap: 'Virheellinen Map',
1935
+ // Transformation and refinement messages
1936
+ transformError: (error) => `Muunnos epäonnistui: ${error}`,
1937
+ refinementError: (error) => `Hiominen epäonnistui: ${error}`,
1938
+ customValidationError: (error) => `Mukautettu validointi epäonnistui: ${error}`,
1939
+ // Coercion messages
1940
+ coercionFailed: (type, value) => `Arvoa ${JSON.stringify(value)} ei voida pakottaa tyyppiin ${type}`,
1941
+ // Codec messages
1942
+ codecDecodeFailed: 'Failed to decode value',
1943
+ codecEncodeFailed: 'Failed to encode value',
1944
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
1945
+ // Base64/Hex messages
1946
+ invalidBase64: 'Invalid base64 string',
1947
+ invalidHex: 'Invalid hexadecimal string',
1948
+ // Uint8Array messages
1949
+ expectedUint8Array: 'Expected Uint8Array',
1950
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
1951
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
1952
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
1953
+ // Generic type error messages
1954
+ expectedString: 'Expected string',
1955
+ stringExpected: (received, expected) => `Odotettiin ${expected}, saatiin ${received}`,
1956
+ stringBoolExpected: (validValues, received) => `Virheellinen boolean-merkkijono. Yksi seuraavista odotettu: ${validValues}, saatiin: "${received}"`,
1957
+ invalidJson: 'Virheellinen JSON',
1958
+ stringPatternInvalid: 'Merkkijono ei vastaa vaadittua kuviota',
1959
+ // File validation messages
1960
+ invalidFile: 'Expected a File object',
1961
+ fileNotSupported: 'File API not supported in this environment',
1962
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
1963
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
1964
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
1965
+ // Function validation messages
1966
+ invalidFunction: 'Funktiota odotetaan',
1967
+ // CIDR validation messages
1968
+ stringCidrv4: 'Virheellinen IPv4 CIDR-lohko',
1969
+ stringCidrv6: 'Virheellinen IPv6 CIDR-lohko',
1970
+ // Safe extend validation messages
1971
+ safeExtendOverlap: (keys) => `Olemassa olevia avaimia ei voi ylikirjoittaa: ${keys.join(', ')}. Käytä extend() ylikirjoittamiseen.`
1972
+ };
1973
+
1974
+ const th = {
1975
+ // String validation messages
1976
+ invalidString: 'ข้อความไม่ถูกต้อง',
1977
+ stringMin: (min) => `ข้อความต้องมีความยาวอย่างน้อย ${min} ตัวอักษร`,
1978
+ stringMax: (max) => `ข้อความต้องมีความยาวไม่เกิน ${max} ตัวอักษร`,
1979
+ stringLength: (length) => `ข้อความต้องมีความยาวเท่ากับ ${length} ตัวอักษร`,
1980
+ stringEmail: 'อีเมลไม่ถูกต้อง',
1981
+ stringUrl: 'URL ไม่ถูกต้อง',
1982
+ stringUuid: 'UUID ไม่ถูกต้อง',
1983
+ stringRegex: 'รูปแบบไม่ถูกต้อง',
1984
+ stringStartsWith: (prefix) => `ข้อความต้องเริ่มต้นด้วย "${prefix}"`,
1985
+ stringEndsWith: (suffix) => `ข้อความต้องลงท้ายด้วย "${suffix}"`,
1986
+ stringIncludes: (substring) => `ข้อความต้องมี "${substring}"`,
1987
+ stringIp: 'IP address ไม่ถูกต้อง',
1988
+ stringIpv4: 'IPv4 address ไม่ถูกต้อง',
1989
+ stringIpv6: 'IPv6 address ไม่ถูกต้อง',
1990
+ stringEmpty: 'ข้อความไม่สามารถเป็นค่าว่างได้',
1991
+ // Number validation messages
1992
+ invalidNumber: 'ตัวเลขไม่ถูกต้อง',
1993
+ numberMin: (min) => `ตัวเลขต้องมีค่าอย่างน้อย ${min}`,
1994
+ numberMax: (max) => `ตัวเลขต้องมีค่าไม่เกิน ${max}`,
1995
+ numberInt: 'ตัวเลขต้องเป็นจำนวนเต็ม',
1996
+ numberPositive: 'ตัวเลขต้องเป็นค่าบวก',
1997
+ numberNegative: 'ตัวเลขต้องเป็นค่าลบ',
1998
+ numberNonnegative: 'ตัวเลขไม่สามารถเป็นค่าลบได้',
1999
+ numberNonpositive: 'ตัวเลขไม่สามารถเป็นค่าบวกได้',
2000
+ numberFinite: 'ตัวเลขต้องเป็นค่าจำกัด',
2001
+ numberSafe: 'ตัวเลขต้องเป็นจำนวนเต็มที่ปลอดภัย',
2002
+ numberMultipleOf: (value) => `ตัวเลขต้องเป็นหลายเท่าของ ${value}`,
2003
+ // Boolean validation messages
2004
+ invalidBoolean: 'ค่า Boolean ไม่ถูกต้อง',
2005
+ // Date validation messages
2006
+ invalidDate: 'วันที่ไม่ถูกต้อง',
2007
+ dateMin: (date) => `วันที่ต้องหลังจาก ${date.toISOString()}`,
2008
+ dateMax: (date) => `วันที่ต้องก่อน ${date.toISOString()}`,
2009
+ // Object validation messages
2010
+ invalidObject: 'Object ไม่ถูกต้อง',
2011
+ unexpectedKeys: (keys) => `Key ที่ไม่คาดหวัง: ${keys.join(', ')}`,
2012
+ // Array validation messages
2013
+ invalidArray: 'Array ไม่ถูกต้อง',
2014
+ arrayMin: (min) => `Array ต้องมีสมาชิกอย่างน้อย ${min} ตัว`,
2015
+ arrayMax: (max) => `Array ต้องมีสมาชิกไม่เกิน ${max} ตัว`,
2016
+ arrayLength: (length) => `Array ต้องมีสมาชิกเท่ากับ ${length} ตัว`,
2017
+ arrayEmpty: 'Array ไม่สามารถเป็นค่าว่างได้',
2018
+ arrayItem: (index, error) => `สมาชิกที่ตำแหน่ง ${index} ไม่ถูกต้อง: ${error}`,
2019
+ // Object field validation
2020
+ objectField: (field, error) => `ฟิลด์ "${field}" ไม่ถูกต้อง: ${error}`,
2021
+ // Union validation messages
2022
+ unionNoMatch: (errors) => `ไม่มี union member ที่ตรงกัน: ${errors.join(', ')}`,
2023
+ // Intersection validation messages
2024
+ intersectionError: (error) => `การตรวจสอบ intersection ล้มเหลว: ${error}`,
2025
+ // Literal validation messages
2026
+ literalExpected: (expected, received) => `คาดหวัง ${expected}, ได้รับ ${received}`,
2027
+ // Enum validation messages
2028
+ enumExpected: (values, received) => `คาดหวังค่าใดค่าหนึ่งจาก [${values.join(', ')}], ได้รับ ${received}`,
2029
+ // Special type validation messages
2030
+ expectedUndefined: 'คาดหวัง undefined',
2031
+ neverType: 'ไม่สามารถ parse ประเภท never ได้',
2032
+ // New advanced type validation messages
2033
+ invalidBigint: 'bigint ไม่ถูกต้อง',
2034
+ invalidSymbol: 'symbol ไม่ถูกต้อง',
2035
+ invalidTuple: 'tuple ไม่ถูกต้อง',
2036
+ tupleLength: (expected, received) => `tuple ต้องมีสมาชิกเท่ากับ ${expected} ตัว, ได้รับ ${received} ตัว`,
2037
+ invalidRecord: 'record ไม่ถูกต้อง',
2038
+ invalidSet: 'Set ไม่ถูกต้อง',
2039
+ invalidMap: 'Map ไม่ถูกต้อง',
2040
+ // Transformation and refinement messages
2041
+ transformError: (error) => `การแปลงล้มเหลว: ${error}`,
2042
+ refinementError: (error) => `การปรับแต่งล้มเหลว: ${error}`,
2043
+ customValidationError: (error) => `การตรวจสอบแบบกำหนดเองล้มเหลว: ${error}`,
2044
+ // Coercion messages
2045
+ coercionFailed: (type, value) => `ไม่สามารถแปลง ${JSON.stringify(value)} เป็น ${type} ได้`,
2046
+ // Codec messages
2047
+ codecDecodeFailed: 'Failed to decode value',
2048
+ codecEncodeFailed: 'Failed to encode value',
2049
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
2050
+ // Base64/Hex messages
2051
+ invalidBase64: 'Invalid base64 string',
2052
+ invalidHex: 'Invalid hexadecimal string',
2053
+ // Uint8Array messages
2054
+ expectedUint8Array: 'Expected Uint8Array',
2055
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
2056
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
2057
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
2058
+ // Generic type error messages
2059
+ expectedString: 'Expected string',
2060
+ stringExpected: (received, expected) => `คาดหวัง ${expected}, ได้รับ ${received}`,
2061
+ stringBoolExpected: (validValues, received) => `สตริงบูลีนไม่ถูกต้อง คาดว่าจะเป็นหนึ่งในนั้น: ${validValues}, ได้รับ: "${received}"`,
2062
+ invalidJson: 'JSON ไม่ถูกต้อง',
2063
+ stringPatternInvalid: 'สตริงไม่ตรงกับรูปแบบที่จำเป็น',
2064
+ // File validation messages
2065
+ invalidFile: 'Expected a File object',
2066
+ fileNotSupported: 'File API not supported in this environment',
2067
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
2068
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
2069
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
2070
+ // Function validation messages
2071
+ invalidFunction: 'คาดหวังฟังก์ชัน',
2072
+ // CIDR validation messages
2073
+ stringCidrv4: 'บล็อก CIDR IPv4 ไม่ถูกต้อง',
2074
+ stringCidrv6: 'บล็อก CIDR IPv6 ไม่ถูกต้อง',
2075
+ // Safe extend validation messages
2076
+ safeExtendOverlap: (keys) => `ไม่สามารถเขียนทับคีย์ที่มีอยู่: ${keys.join(', ')}. ใช้ extend() เพื่อเขียนทับ`
2077
+ };
2078
+
2079
+ const vi = {
2080
+ // String validation messages
2081
+ invalidString: 'Chuỗi không hợp lệ',
2082
+ stringMin: (min) => `Chuỗi phải có ít nhất ${min} ký tự`,
2083
+ stringMax: (max) => `Chuỗi không được quá ${max} ký tự`,
2084
+ stringLength: (length) => `Chuỗi phải có chính xác ${length} ký tự`,
2085
+ stringEmail: 'Địa chỉ email không hợp lệ',
2086
+ stringUrl: 'URL không hợp lệ',
2087
+ stringUuid: 'UUID không hợp lệ',
2088
+ stringRegex: 'Định dạng không hợp lệ',
2089
+ stringStartsWith: (prefix) => `Chuỗi phải bắt đầu bằng "${prefix}"`,
2090
+ stringEndsWith: (suffix) => `Chuỗi phải kết thúc bằng "${suffix}"`,
2091
+ stringIncludes: (substring) => `Chuỗi phải chứa "${substring}"`,
2092
+ stringIp: 'Địa chỉ IP không hợp lệ',
2093
+ stringIpv4: 'Địa chỉ IPv4 không hợp lệ',
2094
+ stringIpv6: 'Địa chỉ IPv6 không hợp lệ',
2095
+ stringEmpty: 'Chuỗi không được để trống',
2096
+ // Number validation messages
2097
+ invalidNumber: 'Số không hợp lệ',
2098
+ numberMin: (min) => `Số phải ít nhất là ${min}`,
2099
+ numberMax: (max) => `Số không được vượt quá ${max}`,
2100
+ numberInt: 'Số phải là số nguyên',
2101
+ numberPositive: 'Số phải là số dương',
2102
+ numberNegative: 'Số phải là số âm',
2103
+ numberNonnegative: 'Số không được là số âm',
2104
+ numberNonpositive: 'Số không được là số dương',
2105
+ numberFinite: 'Số phải là số hữu hạn',
2106
+ numberSafe: 'Số phải là số nguyên an toàn',
2107
+ numberMultipleOf: (value) => `Số phải là bội số của ${value}`,
2108
+ // Boolean validation messages
2109
+ invalidBoolean: 'Giá trị boolean không hợp lệ',
2110
+ // Date validation messages
2111
+ invalidDate: 'Ngày không hợp lệ',
2112
+ dateMin: (date) => `Ngày phải sau ${date.toISOString()}`,
2113
+ dateMax: (date) => `Ngày phải trước ${date.toISOString()}`,
2114
+ // Object validation messages
2115
+ invalidObject: 'Đối tượng không hợp lệ',
2116
+ unexpectedKeys: (keys) => `Khóa không mong muốn: ${keys.join(', ')}`,
2117
+ // Array validation messages
2118
+ invalidArray: 'Mảng không hợp lệ',
2119
+ arrayMin: (min) => `Mảng phải có ít nhất ${min} phần tử`,
2120
+ arrayMax: (max) => `Mảng không được quá ${max} phần tử`,
2121
+ arrayLength: (length) => `Mảng phải có chính xác ${length} phần tử`,
2122
+ arrayEmpty: 'Mảng không được để trống',
2123
+ arrayItem: (index, error) => `Phần tử không hợp lệ tại vị trí ${index}: ${error}`,
2124
+ // Object field validation
2125
+ objectField: (field, error) => `Trường "${field}" không hợp lệ: ${error}`,
2126
+ // Union validation messages
2127
+ unionNoMatch: (errors) => `Không có thành viên union nào khớp: ${errors.join(', ')}`,
2128
+ // Intersection validation messages
2129
+ intersectionError: (error) => `Xác thực intersection thất bại: ${error}`,
2130
+ // Literal validation messages
2131
+ literalExpected: (expected, received) => `Mong đợi ${expected}, nhận được ${received}`,
2132
+ // Enum validation messages
2133
+ enumExpected: (values, received) => `Mong đợi một trong [${values.join(', ')}], nhận được ${received}`,
2134
+ // Special type validation messages
2135
+ expectedUndefined: 'Mong đợi undefined',
2136
+ neverType: 'Không thể phân tích kiểu never',
2137
+ // New advanced type validation messages
2138
+ invalidBigint: 'Bigint không hợp lệ',
2139
+ invalidSymbol: 'Ký hiệu không hợp lệ',
2140
+ invalidTuple: 'Tuple không hợp lệ',
2141
+ tupleLength: (expected, received) => `Tuple phải có chính xác ${expected} phần tử, nhận được ${received}`,
2142
+ invalidRecord: 'Record không hợp lệ',
2143
+ invalidSet: 'Set không hợp lệ',
2144
+ invalidMap: 'Map không hợp lệ',
2145
+ // Transformation and refinement messages
2146
+ transformError: (error) => `Biến đổi thất bại: ${error}`,
2147
+ refinementError: (error) => `Tinh chế thất bại: ${error}`,
2148
+ customValidationError: (error) => `Xác thực tùy chỉnh thất bại: ${error}`,
2149
+ // Coercion messages
2150
+ coercionFailed: (type, value) => `Không thể ép kiểu ${JSON.stringify(value)} thành ${type}`,
2151
+ // Codec messages
2152
+ codecDecodeFailed: 'Failed to decode value',
2153
+ codecEncodeFailed: 'Failed to encode value',
2154
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
2155
+ // Base64/Hex messages
2156
+ invalidBase64: 'Invalid base64 string',
2157
+ invalidHex: 'Invalid hexadecimal string',
2158
+ // Uint8Array messages
2159
+ expectedUint8Array: 'Expected Uint8Array',
2160
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
2161
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
2162
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
2163
+ // Generic type error messages
2164
+ expectedString: 'Expected string',
2165
+ stringExpected: (received, expected) => `Mong đợi ${expected}, nhận được ${received}`,
2166
+ stringBoolExpected: (validValues, received) => `Chuỗi boolean không hợp lệ. Mong đợi một trong các: ${validValues}, nhận được: "${received}"`,
2167
+ invalidJson: 'JSON không hợp lệ',
2168
+ stringPatternInvalid: 'Chuỗi không khớp với mẫu bắt buộc',
2169
+ // File validation messages
2170
+ invalidFile: 'Expected a File object',
2171
+ fileNotSupported: 'File API not supported in this environment',
2172
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
2173
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
2174
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
2175
+ // Function validation messages
2176
+ invalidFunction: 'Mong đợi một hàm',
2177
+ // CIDR validation messages
2178
+ stringCidrv4: 'Khối CIDR IPv4 không hợp lệ',
2179
+ stringCidrv6: 'Khối CIDR IPv6 không hợp lệ',
2180
+ // Safe extend validation messages
2181
+ safeExtendOverlap: (keys) => `Không thể ghi đè các khóa hiện có: ${keys.join(', ')}. Sử dụng extend() để ghi đè.`
2182
+ };
2183
+
2184
+ const id = {
2185
+ // String validation messages
2186
+ invalidString: 'String tidak valid',
2187
+ stringMin: (min) => `String harus memiliki minimal ${min} karakter`,
2188
+ stringMax: (max) => `String tidak boleh lebih dari ${max} karakter`,
2189
+ stringLength: (length) => `String harus memiliki tepat ${length} karakter`,
2190
+ stringEmail: 'Alamat email tidak valid',
2191
+ stringUrl: 'URL tidak valid',
2192
+ stringUuid: 'UUID tidak valid',
2193
+ stringRegex: 'Format tidak valid',
2194
+ stringStartsWith: (prefix) => `String harus diawali dengan "${prefix}"`,
2195
+ stringEndsWith: (suffix) => `String harus diakhiri dengan "${suffix}"`,
2196
+ stringIncludes: (substring) => `String harus mengandung "${substring}"`,
2197
+ stringIp: 'Alamat IP tidak valid',
2198
+ stringIpv4: 'Alamat IPv4 tidak valid',
2199
+ stringIpv6: 'Alamat IPv6 tidak valid',
2200
+ stringEmpty: 'String tidak boleh kosong',
2201
+ // Number validation messages
2202
+ invalidNumber: 'Angka tidak valid',
2203
+ numberMin: (min) => `Angka harus minimal ${min}`,
2204
+ numberMax: (max) => `Angka tidak boleh lebih dari ${max}`,
2205
+ numberInt: 'Angka harus berupa bilangan bulat',
2206
+ numberPositive: 'Angka harus positif',
2207
+ numberNegative: 'Angka harus negatif',
2208
+ numberNonnegative: 'Angka tidak boleh negatif',
2209
+ numberNonpositive: 'Angka tidak boleh positif',
2210
+ numberFinite: 'Angka harus terhingga',
2211
+ numberSafe: 'Angka harus berupa bilangan bulat yang aman',
2212
+ numberMultipleOf: (value) => `Angka harus kelipatan dari ${value}`,
2213
+ // Boolean validation messages
2214
+ invalidBoolean: 'Nilai boolean tidak valid',
2215
+ // Date validation messages
2216
+ invalidDate: 'Tanggal tidak valid',
2217
+ dateMin: (date) => `Tanggal harus setelah ${date.toISOString()}`,
2218
+ dateMax: (date) => `Tanggal harus sebelum ${date.toISOString()}`,
2219
+ // Object validation messages
2220
+ invalidObject: 'Object tidak valid',
2221
+ unexpectedKeys: (keys) => `Kunci yang tidak diharapkan: ${keys.join(', ')}`,
2222
+ // Array validation messages
2223
+ invalidArray: 'Array tidak valid',
2224
+ arrayMin: (min) => `Array harus memiliki minimal ${min} elemen`,
2225
+ arrayMax: (max) => `Array tidak boleh lebih dari ${max} elemen`,
2226
+ arrayLength: (length) => `Array harus memiliki tepat ${length} elemen`,
2227
+ arrayEmpty: 'Array tidak boleh kosong',
2228
+ arrayItem: (index, error) => `Elemen tidak valid pada indeks ${index}: ${error}`,
2229
+ // Object field validation
2230
+ objectField: (field, error) => `Field "${field}" tidak valid: ${error}`,
2231
+ // Union validation messages
2232
+ unionNoMatch: (errors) => `Tidak ada anggota union yang cocok: ${errors.join(', ')}`,
2233
+ // Intersection validation messages
2234
+ intersectionError: (error) => `Validasi intersection gagal: ${error}`,
2235
+ // Literal validation messages
2236
+ literalExpected: (expected, received) => `Diharapkan ${expected}, diterima ${received}`,
2237
+ // Enum validation messages
2238
+ enumExpected: (values, received) => `Diharapkan salah satu dari [${values.join(', ')}], diterima ${received}`,
2239
+ // Special type validation messages
2240
+ expectedUndefined: 'Diharapkan undefined',
2241
+ neverType: 'Tipe never tidak dapat diparse',
2242
+ // New advanced type validation messages
2243
+ invalidBigint: 'Bigint tidak valid',
2244
+ invalidSymbol: 'Simbol tidak valid',
2245
+ invalidTuple: 'Tuple tidak valid',
2246
+ tupleLength: (expected, received) => `Tuple harus memiliki tepat ${expected} elemen, diterima ${received}`,
2247
+ invalidRecord: 'Record tidak valid',
2248
+ invalidSet: 'Set tidak valid',
2249
+ invalidMap: 'Map tidak valid',
2250
+ // Transformation and refinement messages
2251
+ transformError: (error) => `Transformasi gagal: ${error}`,
2252
+ refinementError: (error) => `Penyempurnaan gagal: ${error}`,
2253
+ customValidationError: (error) => `Validasi kustom gagal: ${error}`,
2254
+ // Coercion messages
2255
+ coercionFailed: (type, value) => `Tidak dapat memaksa ${JSON.stringify(value)} menjadi ${type}`,
2256
+ // Codec messages
2257
+ codecDecodeFailed: 'Failed to decode value',
2258
+ codecEncodeFailed: 'Failed to encode value',
2259
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
2260
+ // Base64/Hex messages
2261
+ invalidBase64: 'Invalid base64 string',
2262
+ invalidHex: 'Invalid hexadecimal string',
2263
+ // Uint8Array messages
2264
+ expectedUint8Array: 'Expected Uint8Array',
2265
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
2266
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
2267
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
2268
+ // Generic type error messages
2269
+ expectedString: 'Expected string',
2270
+ stringExpected: (received, expected) => `Diharapkan ${expected}, diterima ${received}`,
2271
+ stringBoolExpected: (validValues, received) => `String boolean tidak valid. Salah satu dari berikut diharapkan: ${validValues}, diterima: "${received}"`,
2272
+ invalidJson: 'JSON tidak valid',
2273
+ stringPatternInvalid: 'String tidak cocok dengan pola yang diperlukan',
2274
+ // File validation messages
2275
+ invalidFile: 'Expected a File object',
2276
+ fileNotSupported: 'File API not supported in this environment',
2277
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
2278
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
2279
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
2280
+ // Function validation messages
2281
+ invalidFunction: 'Fungsi diharapkan',
2282
+ // CIDR validation messages
2283
+ stringCidrv4: 'Blok CIDR IPv4 tidak valid',
2284
+ stringCidrv6: 'Blok CIDR IPv6 tidak valid',
2285
+ // Safe extend validation messages
2286
+ safeExtendOverlap: (keys) => `Tidak dapat menimpa kunci yang sudah ada: ${keys.join(', ')}. Gunakan extend() untuk menimpa.`
2287
+ };
2288
+
2289
+ const bn = {
2290
+ // String validation messages
2291
+ invalidString: 'অবৈধ স্ট্রিং',
2292
+ stringMin: (min) => `স্ট্রিং কমপক্ষে ${min} অক্ষরের হতে হবে`,
2293
+ stringMax: (max) => `স্ট্রিং সর্বোচ্চ ${max} অক্ষরের হতে পারে`,
2294
+ stringLength: (length) => `স্ট্রিং ঠিক ${length} অক্ষরের হতে হবে`,
2295
+ stringEmail: 'অবৈধ ইমেইল ঠিকানা',
2296
+ stringUrl: 'অবৈধ URL',
2297
+ stringUuid: 'অবৈধ UUID',
2298
+ stringRegex: 'অবৈধ ফরম্যাট',
2299
+ stringStartsWith: (prefix) => `স্ট্রিং "${prefix}" দিয়ে শুরু হতে হবে`,
2300
+ stringEndsWith: (suffix) => `স্ট্রিং "${suffix}" দিয়ে শেষ হতে হবে`,
2301
+ stringIncludes: (substring) => `স্ট্রিং-এ "${substring}" থাকতে হবে`,
2302
+ stringIp: 'অবৈধ IP ঠিকানা',
2303
+ stringIpv4: 'অবৈধ IPv4 ঠিকানা',
2304
+ stringIpv6: 'অবৈধ IPv6 ঠিকানা',
2305
+ stringEmpty: 'স্ট্রিং খালি হতে পারবে না',
2306
+ // Number validation messages
2307
+ invalidNumber: 'অবৈধ সংখ্যা',
2308
+ numberMin: (min) => `সংখ্যা কমপক্ষে ${min} হতে হবে`,
2309
+ numberMax: (max) => `সংখ্যা সর্বোচ্চ ${max} হতে পারে`,
2310
+ numberInt: 'সংখ্যাটি একটি পূর্ণসংখ্যা হতে হবে',
2311
+ numberPositive: 'সংখ্যাটি ধনাত্মক হতে হবে',
2312
+ numberNegative: 'সংখ্যাটি ঋণাত্মক হতে হবে',
2313
+ numberNonnegative: 'সংখ্যাটি ঋণাত্মক হতে পারবে না',
2314
+ numberNonpositive: 'সংখ্যাটি ধনাত্মক হতে পারবে না',
2315
+ numberFinite: 'সংখ্যাটি সসীম হতে হবে',
2316
+ numberSafe: 'সংখ্যাটি একটি নিরাপদ পূর্ণসংখ্যা হতে হবে',
2317
+ numberMultipleOf: (value) => `সংখ্যাটি ${value} এর গুণিতক হতে হবে`,
2318
+ // Boolean validation messages
2319
+ invalidBoolean: 'অবৈধ বুলিয়ান মান',
2320
+ // Date validation messages
2321
+ invalidDate: 'অবৈধ তারিখ',
2322
+ dateMin: (date) => `তারিখ ${date.toISOString()} এর পরে হতে হবে`,
2323
+ dateMax: (date) => `তারিখ ${date.toISOString()} এর আগে হতে হবে`,
2324
+ // Object validation messages
2325
+ invalidObject: 'অবৈধ অবজেক্ট',
2326
+ unexpectedKeys: (keys) => `অপ্রত্যাশিত কী: ${keys.join(', ')}`,
2327
+ // Array validation messages
2328
+ invalidArray: 'অবৈধ অ্যারে',
2329
+ arrayMin: (min) => `অ্যারে-তে কমপক্ষে ${min}টি উপাদান থাকতে হবে`,
2330
+ arrayMax: (max) => `অ্যারে-তে সর্বোচ্চ ${max}টি উপাদান থাকতে পারে`,
2331
+ arrayLength: (length) => `অ্যারে-তে ঠিক ${length}টি উপাদান থাকতে হবে`,
2332
+ arrayEmpty: 'অ্যারে খালি হতে পারবে না',
2333
+ arrayItem: (index, error) => `${index} ইনডেক্সে অবৈধ উপাদান: ${error}`,
2334
+ // Object field validation
2335
+ objectField: (field, error) => `অবৈধ ফিল্ড "${field}": ${error}`,
2336
+ // Union validation messages
2337
+ unionNoMatch: (errors) => `কোন ইউনিয়ন সদস্য মিলেনি: ${errors.join(', ')}`,
2338
+ // Intersection validation messages
2339
+ intersectionError: (error) => `ইন্টারসেকশন যাচাই ব্যর্থ: ${error}`,
2340
+ // Literal validation messages
2341
+ literalExpected: (expected, received) => `প্রত্যাশিত ${expected}, পেয়েছি ${received}`,
2342
+ // Enum validation messages
2343
+ enumExpected: (values, received) => `[${values.join(', ')}] এর মধ্যে একটি প্রত্যাশিত, পেয়েছি ${received}`,
2344
+ // Special type validation messages
2345
+ expectedUndefined: 'undefined প্রত্যাশিত',
2346
+ neverType: 'Never টাইপ পার্স করা যায় না',
2347
+ // New advanced type validation messages
2348
+ invalidBigint: 'অবৈধ bigint',
2349
+ invalidSymbol: 'অবৈধ সিম্বল',
2350
+ invalidTuple: 'অবৈধ টুপল',
2351
+ tupleLength: (expected, received) => `টুপলে ঠিক ${expected}টি উপাদান থাকতে হবে, পেয়েছি ${received}`,
2352
+ invalidRecord: 'অবৈধ রেকর্ড',
2353
+ invalidSet: 'অবৈধ Set',
2354
+ invalidMap: 'অবৈধ Map',
2355
+ // Transformation and refinement messages
2356
+ transformError: (error) => `রূপান্তর ব্যর্থ: ${error}`,
2357
+ refinementError: (error) => `পরিমার্জনা ব্যর্থ: ${error}`,
2358
+ customValidationError: (error) => `কাস্টম যাচাইকরণ ব্যর্থ: ${error}`,
2359
+ // Coercion messages
2360
+ coercionFailed: (type, value) => `${JSON.stringify(value)} কে ${type} এ রূপান্তর করা যায়নি`,
2361
+ // Codec messages
2362
+ codecDecodeFailed: 'Failed to decode value',
2363
+ codecEncodeFailed: 'Failed to encode value',
2364
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
2365
+ // Base64/Hex messages
2366
+ invalidBase64: 'Invalid base64 string',
2367
+ invalidHex: 'Invalid hexadecimal string',
2368
+ // Uint8Array messages
2369
+ expectedUint8Array: 'Expected Uint8Array',
2370
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
2371
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
2372
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
2373
+ // Generic type error messages
2374
+ expectedString: 'Expected string',
2375
+ stringExpected: (received, expected) => `প্রত্যাশিত ${expected}, পেয়েছি ${received}`,
2376
+ stringBoolExpected: (validValues, received) => `অবৈধ বুলিয়ান স্ট্রিং। নিম্নলিখিতগুলির একটি প্রত্যাশিত: ${validValues}, পেয়েছি: "${received}"`,
2377
+ invalidJson: 'অবৈধ JSON',
2378
+ stringPatternInvalid: 'স্ট্রিংটি প্রয়োজনীয় প্যাটার্নের সাথে মেলে না',
2379
+ // File validation messages
2380
+ invalidFile: 'Expected a File object',
2381
+ fileNotSupported: 'File API not supported in this environment',
2382
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
2383
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
2384
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
2385
+ // Function validation messages
2386
+ invalidFunction: 'একটি ফাংশন প্রত্যাশিত',
2387
+ // CIDR validation messages
2388
+ stringCidrv4: 'অবৈধ IPv4 CIDR ব্লক',
2389
+ stringCidrv6: 'অবৈধ IPv6 CIDR ব্লক',
2390
+ // Safe extend validation messages
2391
+ safeExtendOverlap: (keys) => `বিদ্যমান কীগুলি ওভাররাইড করা যায় না: ${keys.join(', ')}। ওভাররাইড করতে extend() ব্যবহার করুন।`
2392
+ };
2393
+
2394
+ const sw = {
2395
+ // String validation messages
2396
+ invalidString: 'Mfuatano usio sahihi',
2397
+ stringMin: (min) => `Mfuatano lazima uwe na angalau vibambo ${min}`,
2398
+ stringMax: (max) => `Mfuatano hauwezi kuwa na zaidi ya vibambo ${max}`,
2399
+ stringLength: (length) => `Mfuatano lazima uwe na vibambo ${length} haswa`,
2400
+ stringEmail: 'Anwani ya barua pepe si sahihi',
2401
+ stringUrl: 'URL si sahihi',
2402
+ stringUuid: 'UUID si sahihi',
2403
+ stringRegex: 'Muundo usio sahihi',
2404
+ stringStartsWith: (prefix) => `Mfuatano lazima uanze na "${prefix}"`,
2405
+ stringEndsWith: (suffix) => `Mfuatano lazima umalize na "${suffix}"`,
2406
+ stringIncludes: (substring) => `Mfuatano lazima ujumuishe "${substring}"`,
2407
+ stringIp: 'Anwani ya IP si sahihi',
2408
+ stringIpv4: 'Anwani ya IPv4 si sahihi',
2409
+ stringIpv6: 'Anwani ya IPv6 si sahihi',
2410
+ stringEmpty: 'Mfuatano hauwezi kuwa tupu',
2411
+ // Number validation messages
2412
+ invalidNumber: 'Nambari si sahihi',
2413
+ numberMin: (min) => `Nambari lazima iwe angalau ${min}`,
2414
+ numberMax: (max) => `Nambari haiwezi kuwa zaidi ya ${max}`,
2415
+ numberInt: 'Nambari lazima iwe nzima',
2416
+ numberPositive: 'Nambari lazima iwe chanya',
2417
+ numberNegative: 'Nambari lazima iwe hasi',
2418
+ numberNonnegative: 'Nambari haiwezi kuwa hasi',
2419
+ numberNonpositive: 'Nambari haiwezi kuwa chanya',
2420
+ numberFinite: 'Nambari lazima iwe ya mwisho',
2421
+ numberSafe: 'Nambari lazima iwe nzima salama',
2422
+ numberMultipleOf: (value) => `Nambari lazima iwe mzidadi wa ${value}`,
2423
+ // Boolean validation messages
2424
+ invalidBoolean: 'Thamani ya boolean si sahihi',
2425
+ // Date validation messages
2426
+ invalidDate: 'Tarehe si sahihi',
2427
+ dateMin: (date) => `Tarehe lazima iwe baada ya ${date.toISOString()}`,
2428
+ dateMax: (date) => `Tarehe lazima iwe kabla ya ${date.toISOString()}`,
2429
+ // Object validation messages
2430
+ invalidObject: 'Kitu si sahihi',
2431
+ unexpectedKeys: (keys) => `Funguo zisizotarajiwa: ${keys.join(', ')}`,
2432
+ // Array validation messages
2433
+ invalidArray: 'Safu si sahihi',
2434
+ arrayMin: (min) => `Safu lazima iwe na angalau vipengele ${min}`,
2435
+ arrayMax: (max) => `Safu haiwezi kuwa na zaidi ya vipengele ${max}`,
2436
+ arrayLength: (length) => `Safu lazima iwe na vipengele ${length} haswa`,
2437
+ arrayEmpty: 'Safu haiwezi kuwa tupu',
2438
+ arrayItem: (index, error) => `Kipengele kisicho sahihi kwenye uhurizo ${index}: ${error}`,
2439
+ // Object field validation
2440
+ objectField: (field, error) => `Uwanda "${field}" usio sahihi: ${error}`,
2441
+ // Union validation messages
2442
+ unionNoMatch: (errors) => `Hakuna mwanachama wa umoja aliyelingana: ${errors.join(', ')}`,
2443
+ // Intersection validation messages
2444
+ intersectionError: (error) => `Uthibitisho wa intersection umeshindwa: ${error}`,
2445
+ // Literal validation messages
2446
+ literalExpected: (expected, received) => `Ilitegemewa ${expected}, ilipokewa ${received}`,
2447
+ // Enum validation messages
2448
+ enumExpected: (values, received) => `Ilitegemewa moja ya [${values.join(', ')}], ilipokewa ${received}`,
2449
+ // Special type validation messages
2450
+ expectedUndefined: 'Ilitegemewa undefined',
2451
+ neverType: 'Aina ya never haiwezi kuchakatwa',
2452
+ // New advanced type validation messages
2453
+ invalidBigint: 'Bigint si sahihi',
2454
+ invalidSymbol: 'Ishara si sahihi',
2455
+ invalidTuple: 'Jozi si sahihi',
2456
+ tupleLength: (expected, received) => `Jozi lazima iwe na vipengele ${expected} haswa, ilipokewa ${received}`,
2457
+ invalidRecord: 'Rekodi si sahihi',
2458
+ invalidSet: 'Set si sahihi',
2459
+ invalidMap: 'Ramani si sahihi',
2460
+ // Transformation and refinement messages
2461
+ transformError: (error) => `Mageuzi yameshindwa: ${error}`,
2462
+ refinementError: (error) => `Uboresha umeshindwa: ${error}`,
2463
+ customValidationError: (error) => `Uthibitisho wa kawaida umeshindwa: ${error}`,
2464
+ // Coercion messages
2465
+ coercionFailed: (type, value) => `Haiwezi kulazimisha ${JSON.stringify(value)} kuwa ${type}`,
2466
+ // Codec messages
2467
+ codecDecodeFailed: 'Failed to decode value',
2468
+ codecEncodeFailed: 'Failed to encode value',
2469
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
2470
+ // Base64/Hex messages
2471
+ invalidBase64: 'Invalid base64 string',
2472
+ invalidHex: 'Invalid hexadecimal string',
2473
+ // Uint8Array messages
2474
+ expectedUint8Array: 'Expected Uint8Array',
2475
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
2476
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
2477
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
2478
+ // Generic type error messages
2479
+ expectedString: 'Expected string',
2480
+ stringExpected: (received, expected) => `Ilitegemewa ${expected}, ilipokewa ${received}`,
2481
+ stringBoolExpected: (validValues, received) => `Mfuatano wa boolean usio sahihi. Moja ya zifuatazo ilitegemewa: ${validValues}, ilipokewa: "${received}"`,
2482
+ invalidJson: 'JSON si sahihi',
2483
+ stringPatternInvalid: 'Mfuatano haufanani na mfano uliohitajika',
2484
+ // File validation messages
2485
+ invalidFile: 'Expected a File object',
2486
+ fileNotSupported: 'File API not supported in this environment',
2487
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
2488
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
2489
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
2490
+ // Function validation messages
2491
+ invalidFunction: 'Kazi inatarajiwa',
2492
+ // CIDR validation messages
2493
+ stringCidrv4: 'Kizuizi cha CIDR IPv4 si sahihi',
2494
+ stringCidrv6: 'Kizuizi cha CIDR IPv6 si sahihi',
2495
+ // Safe extend validation messages
2496
+ safeExtendOverlap: (keys) => `Haiwezi kuandika juu ya funguo zilizo tayari: ${keys.join(', ')}. Tumia extend() kuandika juu.`
2497
+ };
2498
+
2499
+ const af = {
2500
+ // String validation messages
2501
+ invalidString: 'Ongeldige string',
2502
+ stringMin: (min) => `String moet ten minste ${min} karakters lank wees`,
2503
+ stringMax: (max) => `String mag hoogstens ${max} karakters lank wees`,
2504
+ stringLength: (length) => `String moet presies ${length} karakters lank wees`,
2505
+ stringEmail: 'Ongeldige e-pos adres',
2506
+ stringUrl: 'Ongeldige URL',
2507
+ stringUuid: 'Ongeldige UUID',
2508
+ stringRegex: 'Ongeldige formaat',
2509
+ stringStartsWith: (prefix) => `String moet begin met "${prefix}"`,
2510
+ stringEndsWith: (suffix) => `String moet eindig met "${suffix}"`,
2511
+ stringIncludes: (substring) => `String moet "${substring}" bevat`,
2512
+ stringIp: 'Ongeldige IP adres',
2513
+ stringIpv4: 'Ongeldige IPv4 adres',
2514
+ stringIpv6: 'Ongeldige IPv6 adres',
2515
+ stringEmpty: 'String mag nie leeg wees nie',
2516
+ // Number validation messages
2517
+ invalidNumber: 'Ongeldige getal',
2518
+ numberMin: (min) => `Getal moet ten minste ${min} wees`,
2519
+ numberMax: (max) => `Getal mag hoogstens ${max} wees`,
2520
+ numberInt: "Getal moet 'n heelgetal wees",
2521
+ numberPositive: 'Getal moet positief wees',
2522
+ numberNegative: 'Getal moet negatief wees',
2523
+ numberNonnegative: 'Getal mag nie negatief wees nie',
2524
+ numberNonpositive: 'Getal mag nie positief wees nie',
2525
+ numberFinite: 'Getal moet eindig wees',
2526
+ numberSafe: "Getal moet 'n veilige heelgetal wees",
2527
+ numberMultipleOf: (value) => `Getal moet 'n veelvoud van ${value} wees`,
2528
+ // Boolean validation messages
2529
+ invalidBoolean: 'Ongeldige boolean waarde',
2530
+ // Date validation messages
2531
+ invalidDate: 'Ongeldige datum',
2532
+ dateMin: (date) => `Datum moet na ${date.toISOString()} wees`,
2533
+ dateMax: (date) => `Datum moet voor ${date.toISOString()} wees`,
2534
+ // Object validation messages
2535
+ invalidObject: 'Ongeldige objek',
2536
+ unexpectedKeys: (keys) => `Onverwagte sleutels: ${keys.join(', ')}`,
2537
+ // Array validation messages
2538
+ invalidArray: 'Ongeldige skikking',
2539
+ arrayMin: (min) => `Skikking moet ten minste ${min} elemente hê`,
2540
+ arrayMax: (max) => `Skikking mag hoogstens ${max} elemente hê`,
2541
+ arrayLength: (length) => `Skikking moet presies ${length} elemente hê`,
2542
+ arrayEmpty: 'Skikking mag nie leeg wees nie',
2543
+ arrayItem: (index, error) => `Ongeldige element by indeks ${index}: ${error}`,
2544
+ // Object field validation
2545
+ objectField: (field, error) => `Ongeldige veld "${field}": ${error}`,
2546
+ // Union validation messages
2547
+ unionNoMatch: (errors) => `Geen union lid het gepas nie: ${errors.join(', ')}`,
2548
+ // Intersection validation messages
2549
+ intersectionError: (error) => `Intersection validasie het gefaal: ${error}`,
2550
+ // Literal validation messages
2551
+ literalExpected: (expected, received) => `Verwag ${expected}, ontvang ${received}`,
2552
+ // Enum validation messages
2553
+ enumExpected: (values, received) => `Verwag een van [${values.join(', ')}], ontvang ${received}`,
2554
+ // Special type validation messages
2555
+ expectedUndefined: 'Verwag undefined',
2556
+ neverType: 'Never tipe kan nie geparseer word nie',
2557
+ // New advanced type validation messages
2558
+ invalidBigint: 'Ongeldige bigint',
2559
+ invalidSymbol: 'Ongeldige simbool',
2560
+ invalidTuple: 'Ongeldige tupel',
2561
+ tupleLength: (expected, received) => `Tupel moet presies ${expected} elemente hê, ontvang ${received}`,
2562
+ invalidRecord: 'Ongeldige rekord',
2563
+ invalidSet: 'Ongeldige Set',
2564
+ invalidMap: 'Ongeldige Map',
2565
+ // Transformation and refinement messages
2566
+ transformError: (error) => `Transformasie het gefaal: ${error}`,
2567
+ refinementError: (error) => `Verfyning het gefaal: ${error}`,
2568
+ customValidationError: (error) => `Pasgemaakte validasie het misluk: ${error}`,
2569
+ // Coercion messages
2570
+ coercionFailed: (type, value) => `Kan nie ${JSON.stringify(value)} na ${type} dwing nie`,
2571
+ // Codec messages
2572
+ codecDecodeFailed: 'Failed to decode value',
2573
+ codecEncodeFailed: 'Failed to encode value',
2574
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
2575
+ // Base64/Hex messages
2576
+ invalidBase64: 'Invalid base64 string',
2577
+ invalidHex: 'Invalid hexadecimal string',
2578
+ // Uint8Array messages
2579
+ expectedUint8Array: 'Expected Uint8Array',
2580
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
2581
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
2582
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
2583
+ // Generic type error messages
2584
+ expectedString: 'Expected string',
2585
+ stringExpected: (received, expected) => `Verwag ${expected}, ontvang ${received}`,
2586
+ stringBoolExpected: (validValues, received) => `Ongeldige boolean string. Een van die volgende verwag: ${validValues}, ontvang: "${received}"`,
2587
+ invalidJson: 'Ongeldige JSON',
2588
+ stringPatternInvalid: 'String stem nie ooreen met die vereiste patroon nie',
2589
+ // File validation messages
2590
+ invalidFile: 'Expected a File object',
2591
+ fileNotSupported: 'File API not supported in this environment',
2592
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
2593
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
2594
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(', ')}`,
2595
+ // Function validation messages
2596
+ invalidFunction: "'n Funksie word verwag",
2597
+ // CIDR validation messages
2598
+ stringCidrv4: 'Ongeldige IPv4 CIDR-blok',
2599
+ stringCidrv6: 'Ongeldige IPv6 CIDR-blok',
2600
+ // Safe extend validation messages
2601
+ safeExtendOverlap: (keys) => `Kan nie bestaande sleutels oorskryf nie: ${keys.join(', ')}. Gebruik extend() om te oorskryf.`
2602
+ };
2603
+
2604
+ const ptBR = {
2605
+ // String validation messages
2606
+ invalidString: 'String inválida',
2607
+ stringMin: (min) => `String deve ter pelo menos ${min} caracteres`,
2608
+ stringMax: (max) => `String não pode ter mais que ${max} caracteres`,
2609
+ stringLength: (length) => `String deve ter exatamente ${length} caracteres`,
2610
+ stringEmail: 'Endereço de e-mail inválido',
2611
+ stringUrl: 'URL inválida',
2612
+ stringUuid: 'UUID inválido',
2613
+ stringRegex: 'Formato inválido',
2614
+ stringStartsWith: (prefix) => `String deve começar com "${prefix}"`,
2615
+ stringEndsWith: (suffix) => `String deve terminar com "${suffix}"`,
2616
+ stringIncludes: (substring) => `String deve conter "${substring}"`,
2617
+ stringIp: 'Endereço IP inválido',
2618
+ stringIpv4: 'Endereço IPv4 inválido',
2619
+ stringIpv6: 'Endereço IPv6 inválido',
2620
+ stringEmpty: 'String não pode estar vazia',
2621
+ // Number validation messages
2622
+ invalidNumber: 'Número inválido',
2623
+ numberMin: (min) => `Número deve ser pelo menos ${min}`,
2624
+ numberMax: (max) => `Número não pode ser maior que ${max}`,
2625
+ numberInt: 'Número deve ser um inteiro',
2626
+ numberPositive: 'Número deve ser positivo',
2627
+ numberNegative: 'Número deve ser negativo',
2628
+ numberNonnegative: 'Número não pode ser negativo',
2629
+ numberNonpositive: 'Número não pode ser positivo',
2630
+ numberFinite: 'Número deve ser finito',
2631
+ numberSafe: 'Número deve ser um inteiro seguro',
2632
+ numberMultipleOf: (value) => `Número deve ser múltiplo de ${value}`,
2633
+ // Boolean validation messages
2634
+ invalidBoolean: 'Valor booleano inválido',
2635
+ // Date validation messages
2636
+ invalidDate: 'Data inválida',
2637
+ dateMin: (date) => `Data deve ser após ${date.toISOString()}`,
2638
+ dateMax: (date) => `Data deve ser antes de ${date.toISOString()}`,
2639
+ // Object validation messages
2640
+ invalidObject: 'Objeto inválido',
2641
+ unexpectedKeys: (keys) => `Chaves inesperadas: ${keys.join(', ')}`,
2642
+ // Array validation messages
2643
+ invalidArray: 'Array inválido',
2644
+ arrayMin: (min) => `Array deve ter pelo menos ${min} elementos`,
2645
+ arrayMax: (max) => `Array não pode ter mais que ${max} elementos`,
2646
+ arrayLength: (length) => `Array deve ter exatamente ${length} elementos`,
2647
+ arrayEmpty: 'Array não pode estar vazio',
2648
+ arrayItem: (index, error) => `Item inválido no índice ${index}: ${error}`,
2649
+ // Object field validation
2650
+ objectField: (field, error) => `Campo inválido "${field}": ${error}`,
2651
+ // Union validation messages
2652
+ unionNoMatch: (errors) => `Nenhum membro da união correspondeu: ${errors.join(', ')}`,
2653
+ // Intersection validation messages
2654
+ intersectionError: (error) => `Validação de intersecção falhou: ${error}`,
2655
+ // Literal validation messages
2656
+ literalExpected: (expected, received) => `Esperado ${expected}, recebido ${received}`,
2657
+ // Enum validation messages
2658
+ enumExpected: (values, received) => `Esperado um de [${values.join(', ')}], recebido ${received}`,
2659
+ // Special type validation messages
2660
+ expectedUndefined: 'Esperado undefined',
2661
+ neverType: 'Tipo never não pode ser analisado',
2662
+ // New advanced type validation messages
2663
+ invalidBigint: 'Bigint inválido',
2664
+ invalidSymbol: 'Símbolo inválido',
2665
+ invalidTuple: 'Tupla inválida',
2666
+ tupleLength: (expected, received) => `Tupla deve ter exatamente ${expected} elementos, recebido ${received}`,
2667
+ invalidRecord: 'Registro inválido',
2668
+ invalidSet: 'Set inválido',
2669
+ invalidMap: 'Map inválido',
2670
+ // Transformation and refinement messages
2671
+ transformError: (error) => `Transformação falhou: ${error}`,
2672
+ refinementError: (error) => `Refinamento falhou: ${error}`,
2673
+ customValidationError: (error) => `Validação personalizada falhou: ${error}`,
2674
+ // Coercion messages
2675
+ coercionFailed: (type, value) => `Não é possível converter ${JSON.stringify(value)} para ${type}`,
2676
+ // Codec messages
2677
+ codecDecodeFailed: 'Failed to decode value',
2678
+ codecEncodeFailed: 'Failed to encode value',
2679
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
2680
+ // Base64/Hex messages
2681
+ invalidBase64: 'Invalid base64 string',
2682
+ invalidHex: 'Invalid hexadecimal string',
2683
+ // Uint8Array messages
2684
+ expectedUint8Array: 'Expected Uint8Array',
2685
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
2686
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
2687
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
2688
+ // Generic type error messages
2689
+ expectedString: 'Expected string',
2690
+ stringExpected: (received, expected) => `Esperado ${expected}, recebido ${received}`,
2691
+ stringBoolExpected: (validValues, received) => `String boolean inválida. Esperado um de: ${validValues}, recebido: "${received}"`,
2692
+ invalidJson: 'JSON inválido',
2693
+ stringPatternInvalid: 'A string não corresponde ao padrão necessário',
2694
+ // File validation messages
2695
+ invalidFile: 'Expected a File object',
2696
+ fileNotSupported: 'File API not supported in this environment',
2697
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
2698
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
2699
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(", ")}`,
2700
+ // Function validation messages
2701
+ invalidFunction: 'Uma função é esperada',
2702
+ // CIDR validation messages
2703
+ stringCidrv4: 'Bloco CIDR IPv4 inválido',
2704
+ stringCidrv6: 'Bloco CIDR IPv6 inválido',
2705
+ // Safe extend validation messages
2706
+ safeExtendOverlap: (keys) => `Não é possível substituir chaves existentes: ${keys.join(', ')}. Use extend() se quiser substituir.`
2707
+ };
2708
+
2709
+ const esMX = {
2710
+ // String validation messages
2711
+ invalidString: 'Cadena inválida',
2712
+ stringMin: (min) => `La cadena debe tener al menos ${min} caracteres`,
2713
+ stringMax: (max) => `La cadena no puede tener más de ${max} caracteres`,
2714
+ stringLength: (length) => `La cadena debe tener exactamente ${length} caracteres`,
2715
+ stringEmail: 'Dirección de correo inválida',
2716
+ stringUrl: 'URL inválida',
2717
+ stringUuid: 'UUID inválido',
2718
+ stringRegex: 'Formato inválido',
2719
+ stringStartsWith: (prefix) => `La cadena debe empezar con "${prefix}"`,
2720
+ stringEndsWith: (suffix) => `La cadena debe terminar con "${suffix}"`,
2721
+ stringIncludes: (substring) => `La cadena debe incluir "${substring}"`,
2722
+ stringIp: 'Dirección IP inválida',
2723
+ stringIpv4: 'Dirección IPv4 inválida',
2724
+ stringIpv6: 'Dirección IPv6 inválida',
2725
+ stringEmpty: 'La cadena no puede estar vacía',
2726
+ // Number validation messages
2727
+ invalidNumber: 'Número inválido',
2728
+ numberMin: (min) => `El número debe ser al menos ${min}`,
2729
+ numberMax: (max) => `El número no puede ser mayor a ${max}`,
2730
+ numberInt: 'El número debe ser entero',
2731
+ numberPositive: 'El número debe ser positivo',
2732
+ numberNegative: 'El número debe ser negativo',
2733
+ numberNonnegative: 'El número no puede ser negativo',
2734
+ numberNonpositive: 'El número no puede ser positivo',
2735
+ numberFinite: 'El número debe ser finito',
2736
+ numberSafe: 'El número debe ser un entero seguro',
2737
+ numberMultipleOf: (value) => `El número debe ser múltiplo de ${value}`,
2738
+ // Boolean validation messages
2739
+ invalidBoolean: 'Valor booleano inválido',
2740
+ // Date validation messages
2741
+ invalidDate: 'Fecha inválida',
2742
+ dateMin: (date) => `La fecha debe ser después de ${date.toISOString()}`,
2743
+ dateMax: (date) => `La fecha debe ser antes de ${date.toISOString()}`,
2744
+ // Object validation messages
2745
+ invalidObject: 'Objeto inválido',
2746
+ unexpectedKeys: (keys) => `Claves inesperadas: ${keys.join(', ')}`,
2747
+ // Array validation messages
2748
+ invalidArray: 'Array inválido',
2749
+ arrayMin: (min) => `El array debe tener al menos ${min} elementos`,
2750
+ arrayMax: (max) => `El array no puede tener más de ${max} elementos`,
2751
+ arrayLength: (length) => `El array debe tener exactamente ${length} elementos`,
2752
+ arrayEmpty: 'El array no puede estar vacío',
2753
+ arrayItem: (index, error) => `Elemento inválido en índice ${index}: ${error}`,
2754
+ // Object field validation
2755
+ objectField: (field, error) => `Campo inválido "${field}": ${error}`,
2756
+ // Union validation messages
2757
+ unionNoMatch: (errors) => `Ningún miembro de la unión coincidió: ${errors.join(', ')}`,
2758
+ // Intersection validation messages
2759
+ intersectionError: (error) => `Error de validación de intersección: ${error}`,
2760
+ // Literal validation messages
2761
+ literalExpected: (expected, received) => `Se esperaba ${expected}, se recibió ${received}`,
2762
+ // Enum validation messages
2763
+ enumExpected: (values, received) => `Se esperaba uno de [${values.join(', ')}], se recibió ${received}`,
2764
+ // Special type validation messages
2765
+ expectedUndefined: 'Se esperaba undefined',
2766
+ neverType: 'El tipo never no se puede analizar',
2767
+ // New advanced type validation messages
2768
+ invalidBigint: 'Bigint inválido',
2769
+ invalidSymbol: 'Símbolo inválido',
2770
+ invalidTuple: 'Tupla inválida',
2771
+ tupleLength: (expected, received) => `La tupla debe tener exactamente ${expected} elementos, se recibieron ${received}`,
2772
+ invalidRecord: 'Registro inválido',
2773
+ invalidSet: 'Set inválido',
2774
+ invalidMap: 'Map inválido',
2775
+ // Transformation and refinement messages
2776
+ transformError: (error) => `Transformación falló: ${error}`,
2777
+ refinementError: (error) => `Refinamiento falló: ${error}`,
2778
+ customValidationError: (error) => `Validación personalizada falló: ${error}`,
2779
+ // Coercion messages
2780
+ coercionFailed: (type, value) => `No se puede coaccionar ${JSON.stringify(value)} a ${type}`,
2781
+ // Codec messages
2782
+ codecDecodeFailed: 'Failed to decode value',
2783
+ codecEncodeFailed: 'Failed to encode value',
2784
+ codecAsyncNotSupported: 'Async codec operations require using parseAsync/encodeAsync methods',
2785
+ // Base64/Hex messages
2786
+ invalidBase64: 'Invalid base64 string',
2787
+ invalidHex: 'Invalid hexadecimal string',
2788
+ // Uint8Array messages
2789
+ expectedUint8Array: 'Expected Uint8Array',
2790
+ uint8ArrayMinLength: (min) => `Uint8Array must have at least ${min} bytes`,
2791
+ uint8ArrayMaxLength: (max) => `Uint8Array must have at most ${max} bytes`,
2792
+ uint8ArrayExactLength: (length) => `Uint8Array must have exactly ${length} bytes`,
2793
+ // Generic type error messages
2794
+ expectedString: 'Expected string',
2795
+ stringExpected: (received, expected) => `Se esperaba ${expected}, se recibió ${received}`,
2796
+ stringBoolExpected: (validValues, received) => `Cadena booleana no válida. Se esperaba uno de: ${validValues}, se recibió: "${received}"`,
2797
+ invalidJson: 'JSON no válido',
2798
+ stringPatternInvalid: 'La cadena no coincide con el patrón requerido',
2799
+ // File validation messages
2800
+ invalidFile: 'Expected a File object',
2801
+ fileNotSupported: 'File API not supported in this environment',
2802
+ fileMinSize: (min) => `File size must be at least ${min} bytes`,
2803
+ fileMaxSize: (max) => `File size must not exceed ${max} bytes`,
2804
+ fileMimeType: (allowed) => `Invalid file type. Expected: ${allowed.join(', ')}`,
2805
+ invalidFunction: 'Se esperaba una función',
2806
+ // CIDR validation messages
2807
+ stringCidrv4: 'Bloque CIDR IPv4 inválido',
2808
+ stringCidrv6: 'Bloque CIDR IPv6 inválido',
2809
+ // Safe extend validation messages
2810
+ safeExtendOverlap: (keys) => `No se pueden sobrescribir las claves existentes: ${keys.join(', ')}. Use extend() si desea sobrescribir.`
2811
+ };
2812
+
2813
+ // Import all language files
2814
+ // Create comprehensive locale registry
2815
+ const locales = {
2816
+ // Base languages (already existing)
2817
+ en, tr, es, fr, de, it, pt, ru, ja, ko, zh, ar, hi, nl, pl,
2818
+ // Major European Languages
2819
+ da, sv, no, fi,
2820
+ // Major Asian Languages
2821
+ th, vi, id, bn,
2822
+ // African Languages
2823
+ sw, af,
2824
+ // American Languages
2825
+ 'pt-BR': ptBR,
2826
+ 'es-MX': esMX,
2827
+ // TODO: Add remaining languages from types.ts
2828
+ // For now, fallback to English for unimplemented languages
2829
+ is: en, cs: en, sk: en, hu: en, ro: en, bg: en, hr: en, sl: en,
2830
+ lv: en, lt: en, et: en, el: en, mk: en, sq: en, sr: en, bs: en,
2831
+ me: en, mt: en, ga: en, cy: en, eu: en, ca: en,
2832
+ // Asian languages fallbacks
2833
+ ms: en, tl: en, ur: en, fa: en, he: en, ka: en, am: en, hy: en,
2834
+ az: en, kk: en, ky: en, uz: en, tg: en, mn: en, my: en, km: en,
2835
+ lo: en, si: en, ta: en, te: en, ml: en, kn: en, gu: en, pa: en,
2836
+ or: en, as: en, ne: en, mr: en, sd: en, dv: en,
2837
+ // African languages fallbacks
2838
+ ha: en, yo: en, ig: en, zu: en, xh: en, st: en, tn: en, ts: en,
2839
+ ve: en, nr: en, ss: en,
2840
+ // American languages fallbacks
2841
+ 'es-AR': en, 'fr-CA': en, qu: en, gn: en, ay: en
2842
+ };
2843
+ // Current locale state
2844
+ let currentLocale = 'en';
2845
+ /**
2846
+ * Set the current locale for validation messages
2847
+ */
2848
+ function setLocale(locale) {
2849
+ if (!(locale in locales)) {
2850
+ throw new Error(`Unsupported locale: ${locale}`);
2851
+ }
2852
+ currentLocale = locale;
2853
+ }
2854
+ /**
2855
+ * Get the current locale
2856
+ */
2857
+ function getLocale() {
2858
+ return currentLocale;
2859
+ }
2860
+ /**
2861
+ * Get messages for the current locale
2862
+ */
2863
+ function getMessages() {
2864
+ return locales[currentLocale];
2865
+ }
2866
+ /**
2867
+ * Get messages for a specific locale
2868
+ */
2869
+ function getMessagesForLocale(locale) {
2870
+ return locales[locale] || locales.en;
2871
+ }
2872
+
2873
+ exports.getLocale = getLocale;
2874
+ exports.getMessages = getMessages;
2875
+ exports.getMessagesForLocale = getMessagesForLocale;
2876
+ exports.setLocale = setLocale;
2877
+ //# sourceMappingURL=index.cjs.map