import { formatFileSize, isDefinedGlobally } from './utils';

const messages = {
  _default: (field) => `${field} ist ungültig.`,
  after: (field, [target]) => `${field} muss nach ${target} liegen.`,
  alpha: (field) => `${field} darf nur alphabetische Zeichen enthalten.`,
  alpha_dash: (field) => `${field} darf alphanumerische Zeichen sowie Striche und Unterstriche enthalten.`,
  alpha_num: (field) => `${field} darf nur alphanumerische Zeichen enthalten.`,
  before: (field, [target]) => `${field} muss vor ${target} liegen.`,
  between: (field, [min, max]) => `${field} muss zwischen ${min} und ${max} liegen.`,
  confirmed: (field, [confirmedField]) => `${field} passt nicht zum Inhalt von ${confirmedField}.`,
  date_between: (field, [min, max]) => `${field} muss zwischen ${min} und ${max} liegen.`,
  date_format: (field, [format]) => `${field} muss das Format ${format} haben.`,
  decimal: (field, [decimals = '*'] = []) => `${field} muss numerisch sein und darf ${decimals === '*' ? '' : decimals} Dezimalpunkte enthalten.`,
  digits: (field, [length]) => `${field} muss numerisch sein und exakt ${length} Ziffern enthalten.`,
  dimensions: (field, [width, height]) => `${field} muss ${width} x ${height} Bildpunkte groß sein.`,
  email: (field) => `${field} muss eine gültige E-Mail-Adresse sein.`,
  excluded: (field) => `${field} muss ein gültiger Wert sein.`,
  ext: (field) => `${field} muss eine gültige Datei sein.`,
  image: (field) => `${field} muss eine Grafik sein.`,
  included: (field) => `${field} muss ein gültiger Wert sein.`,
  ip: (field) => `${field} muss eine gültige IP-Adresse sein.`,
  max: (field, [length]) => `${field} darf nicht länger als ${length} Zeichen sein.`,
  mimes: (field) => `${field} muss einen gültigen Dateityp haben.`,
  min: (field, [length]) => `${field} muss mindestens ${length} Zeichen lang sein.`,
  numeric: (field) => `${field} darf nur numerische Zeichen enthalten.`,
  regex: (field) => `Das Format von ${field} ist ungültig.`,
  required: (field) => `${field} ist ein Pflichtfeld.`,
  size: (field, [size]) => `${field} muss kleiner als ${formatFileSize(size)} sein.`,
  url: (field) => `${field} ist keine gültige URL.`,
};

const locale = {
  name: 'de',
  messages,
  attributes: {}
};

if (isDefinedGlobally()) {
  VeeValidate.Validator.localize({ [locale.name]: locale });
}

export default locale;

@@ -451,24 +451,123 @@
 nthalten.%60,%0A
+  alpha_spaces: (field) =%3E %60$%7Bfield%7D darf nur alphanumerische Zeichen und Leerzeichen enthalten.%60,%0A
   before: (f
@@ -806,24 +806,104 @@
 edField%7D.%60,%0A
+  credit_card: (field) =%3E %60$%7Bfield%7D ist keine g%C3%BCltiger Wert f%C3%BCr Kreditkarten.%60,%0A
   date_betwe
@@ -1727,16 +1727,77 @@
 sein.%60,%0A
+  integer: (field) =%3E %60$%7Bfield%7D muss eine ganze Zahl sein.%60,%0A
   ip: (f
@@ -1852,16 +1852,221 @@
 sein.%60,%0A
+  length: (field, %5Blength, max%5D) =%3E %7B%0A    if (max) %7B%0A      return %60Die L%C3%A4nge von $%7Bfield%7D muss zwischen $%7Blength%7D und $%7Bmax%7D liegen.%60;%0A    %7D%0A%0A    return %60Die L%C3%A4nge von $%7Bfield%7D muss $%7Blength%7D sein.%60;%0A  %7D,%0A
   max: (
@@ -2139,24 +2139,93 @@
 hen sein.%60,%0A
+  max_value: (field, %5Bmax%5D) =%3E %60$%7Bfield%7D darf maximal $%7Bmax%7D sein.%60,%0A
   mimes: (fi
@@ -2365,16 +2365,88 @@
 sein.%60,%0A
+  min_value: (field, %5Bmin%5D) =%3E %60$%7Bfield%7D muss mindestens $%7Bmin%7D sein.%60,%0A
   numeri

update german translations (#1741)