Mehrsprachigkeit der Oberfläche (Deutsch Standard, Englisch wählbar)

- Sprache je Benutzer (users.locale), Middleware SetLocale, Auswahl unter
  Einstellungen → Darstellung; angebotene Sprachen in config/app.php
- Übersetzungen über Laravel Lang (lang/de.json, lang/de/*.php), Seitentitel
  aus #[Title] werden übersetzt
- Eigene Texte und Korrekturen in lang/project/de.json, übernommen mit
  `artisan lang:apply-project` (überstehen `lang:update`)
- Tests: jede im Code verwendete Übersetzung ist vorhanden, eigene
  Übersetzungen sind übernommen, Sprachwahl und Standardsprache;
  SecurityTest prüft Texte sprachunabhängig über __()
- lang/ von Pint ausgenommen (erzeugte Dateien)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Christoph
2026-10-01 09:52:20 +02:00
co-authored by Claude Opus 5.5
parent cdd2d5b676
commit db2d5d6228
32 changed files with 4108 additions and 18 deletions
+119
View File
@@ -0,0 +1,119 @@
<?php
declare(strict_types=1);
return [
'accept' => 'Akzeptieren',
'action' => 'Aktion',
'actions' => 'Aktionen',
'add' => 'Hinzufügen',
'admin' => 'Administrator',
'agree' => 'Zustimmen',
'archive' => 'Archiv',
'assign' => 'Zuordnen',
'associate' => 'Assoziieren',
'attach' => 'Anfügen',
'browse' => 'Durchsuche',
'cancel' => 'Stornieren',
'choose' => 'Wählen',
'choose_file' => 'Datei wählen',
'choose_image' => 'Wählen Sie Bild',
'click_to_copy' => 'Klicken Sie zum Kopieren',
'close' => 'Schließen',
'collapse' => 'Zusammenbruch',
'collapse_all' => 'Alles reduzieren',
'comment' => 'Kommentar',
'confirm' => 'Bestätigen',
'connect' => 'Verbinden',
'create' => 'Erstellen',
'delete' => 'Löschen',
'detach' => 'Ablösen',
'details' => 'Einzelheiten',
'disable' => 'Deaktivieren',
'discard' => 'Verwerfen',
'done' => 'Erledigt',
'down' => 'Runter',
'duplicate' => 'Duplikat',
'edit' => 'Bearbeiten',
'enable' => 'Aktivieren',
'expand' => 'Expandieren',
'expand_all' => 'Alle erweitern',
'explanation' => 'Erläuterung',
'export' => 'Exportieren',
'file' => 'Datei',
'files' => 'Dateien',
'go_home' => 'Nach Hause gehen',
'hide' => 'Verstecken',
'home' => 'Heim',
'image' => 'Bild',
'impersonate' => 'Imitieren',
'impersonation' => 'Identitätswechsel',
'import' => 'Importieren',
'introduction' => 'Einführung',
'like' => 'Wie',
'load' => 'Belastung',
'localize' => 'Lokalisieren',
'log_in' => 'Anmeldung',
'log_out' => 'Ausloggen',
'named' => [
'add' => ':name hinzufügen',
'choose' => ':name auswählen',
'create' => ':name erstellen',
'delete' => ':name löschen',
'duplicate' => ':name duplizieren',
'edit' => ':name bearbeiten',
'export' => ':name exportieren',
'hide' => ':name ausblenden',
'import' => ':name importieren',
'new' => 'Neu :name',
'restore' => ':name wiederherstellen',
'save' => ':name speichern',
'search' => ':name suchen',
'show' => ':name anzeigen',
'update' => ':name aktualisieren',
'view' => ':name anzeigen',
],
'new' => 'Neu',
'no' => 'Nein',
'open' => 'Öffen',
'open_website' => 'Auf der Website öffnen',
'preview' => 'Vorschau',
'price' => 'Preis',
'record' => 'Aufzeichnen',
'restore' => 'Wiederherstellen',
'save' => 'Speichern',
'save_and_close' => 'Speichern und schließen',
'save_and_return' => 'Speichern und zurückgehen',
'search' => 'Suchen',
'select' => 'Wählen',
'select_all' => 'Alles auswählen',
'send' => 'Absenden',
'settings' => 'Einstellungen',
'show' => 'Anzeigen',
'show_all' => 'Alles anzeigen',
'sign_in' => 'Anmelden',
'solve' => 'Lösen',
'start' => 'Starten',
'stop' => 'Stoppen',
'submit' => 'Absenden',
'subscribe' => 'Abonnieren',
'switch' => 'Umschalten',
'switch_to_role' => 'Zur Rolle wechseln',
'tag' => 'Schlagwort',
'tags' => 'Stichworte',
'target_link' => [
'blank' => 'In einem neuen Fenster öffnen',
'parent' => 'In einem übergeordneten Frame öffnen',
'self' => 'In einem aktuellen Fenster öffnen',
'top' => 'Im obersten Rahmen öffnen',
],
'translate' => 'Übersetzen',
'translate_it' => 'Übersetze es',
'unpack' => 'Entpacken',
'unsubscribe' => 'Abbestellen',
'up' => 'Hoch',
'update' => 'Aktualisieren',
'user' => 'Benutzer',
'view' => 'Ansicht',
'yes' => 'Ja',
];
+9
View File
@@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
return [
'failed' => 'Diese Kombination aus Zugangsdaten wurde nicht in unserer Datenbank gefunden.',
'password' => 'Das Passwort ist falsch.',
'throttle' => 'Zu viele Loginversuche. Versuchen Sie es bitte in :seconds Sekunden nochmal.',
];
+84
View File
@@ -0,0 +1,84 @@
<?php
declare(strict_types=1);
return [
'0' => 'Unbekannter Fehler',
'100' => 'Weiter',
'101' => 'Protokollwechsel',
'102' => 'In Bearbeitung',
'200' => 'OK',
'201' => 'Erstellt',
'202' => 'Akzeptiert',
'203' => 'Nicht verifizierte Information',
'204' => 'Kein Inhalt',
'205' => 'Inhalt zurücksetzen',
'206' => 'Teilinhalt',
'207' => 'Multistatus',
'208' => 'Bereits gemeldet',
'226' => 'IM verwendet',
'300' => 'Mehrere Auswahlmöglichkeiten',
'301' => 'Permanent verschoben',
'302' => 'Gefunden',
'303' => 'Siehe andere Seite',
'304' => 'Nicht modifiziert',
'305' => 'Proxy verwenden',
'307' => 'Temporäre Weiterleitung',
'308' => 'Permanente Weiterleitung',
'400' => 'Ungültige Anfrage',
'401' => 'Nicht autorisiert',
'402' => 'Zahlung erforderlich',
'403' => 'Verboten',
'404' => 'Nicht gefunden',
'405' => 'Methode nicht erlaubt',
'406' => 'Nicht annehmbar',
'407' => 'Proxy-Authentifizierung erforderlich',
'408' => 'Zeitüberschreitung der Anfrage',
'409' => 'Konflikt',
'410' => 'Nicht mehr verfügbar',
'411' => 'Länge erforderlich',
'412' => 'Vorbedingung fehlgeschlagen',
'413' => 'Nutzlast zu groß',
'414' => 'URI zu lang',
'415' => 'Nicht unterstützter Medientyp',
'416' => 'Bereich nicht erfüllbar',
'417' => 'Erwartung gescheitert',
'418' => 'Ich bin eine Teekanne',
'419' => 'Sitzung ist abgelaufen',
'421' => 'Fehlgeleitete Anfrage',
'422' => 'Unverarbeitbare Entität',
'423' => 'Gesperrt',
'424' => 'Fehlgeschlagene Abhängigkeit',
'425' => 'Zu früh',
'426' => 'Upgrade erforderlich',
'428' => 'Voraussetzung erforderlich',
'429' => 'Zu viele Anfragen',
'431' => 'Anfrage-Header-Felder zu groß',
'444' => 'Verbindung ohne Antwort geschlossen',
'449' => 'Wiederhole mit',
'451' => 'Aus rechtlichen Gründen nicht verfügbar',
'499' => 'Client-Closed-Request',
'500' => 'Interner Serverfehler',
'501' => 'Nicht implementiert',
'502' => 'Fehlerhaftes Gateway',
'503' => 'Wartungsmodus',
'504' => 'Gateway-Zeitüberschreitung',
'505' => 'HTTP Version nicht unterstützt',
'506' => 'Variante verhandelt auch',
'507' => 'Nicht genügend Speicherplatz',
'508' => 'Endlosschleife erkannt',
'509' => 'Bandbreitenlimit überschritten',
'510' => 'Nicht erweitert',
'511' => 'Netzwerkauthentifizierung erforderlich',
'520' => 'Unbekannter Fehler',
'521' => 'Webserver ist ausgefallen',
'522' => 'Verbindung abgelaufen',
'523' => 'Quelle ist nicht erreichbar',
'524' => 'Eine Zeitüberschreitung ist aufgetreten',
'525' => 'SSL Handshake fehlgeschlagen',
'526' => 'Ungültiges SSL-Zertifikat',
'527' => 'Railgun-Fehler',
'598' => 'Zeitüberschreitungsfehler beim Lesen des Netzwerks',
'599' => 'Zeitüberschreitungsfehler bei Netzwerkverbindung',
'unknownError' => 'Unbekannter Fehler',
];
+8
View File
@@ -0,0 +1,8 @@
<?php
declare(strict_types=1);
return [
'next' => 'Weiter &raquo;',
'previous' => '&laquo; Zurück',
];
+11
View File
@@ -0,0 +1,11 @@
<?php
declare(strict_types=1);
return [
'reset' => 'Das Passwort wurde zurückgesetzt!',
'sent' => 'E-Mail zum Zurücksetzen des Passworts wurde gesendet!',
'throttled' => 'Bitte warten Sie, bevor Sie es erneut versuchen.',
'token' => 'Der Passwort-Wiederherstellungsschlüssel ist ungültig oder abgelaufen.',
'user' => 'Es konnte leider kein Nutzer mit dieser E-Mail-Adresse gefunden werden.',
];
+290
View File
@@ -0,0 +1,290 @@
<?php
declare(strict_types=1);
return [
'accepted' => ':Attribute muss akzeptiert werden.',
'accepted_if' => ':Attribute muss akzeptiert werden, wenn :other :value ist.',
'active_url' => ':Attribute ist keine gültige Internet-Adresse.',
'after' => ':Attribute muss ein Datum nach :date sein.',
'after_or_equal' => ':Attribute muss ein Datum nach :date oder gleich :date sein.',
'alpha' => ':Attribute darf nur aus Buchstaben bestehen.',
'alpha_dash' => ':Attribute darf nur aus Buchstaben, Zahlen, Binde- und Unterstrichen bestehen.',
'alpha_num' => ':Attribute darf nur aus Buchstaben und Zahlen bestehen.',
'any_of' => ':Attribute ist ungültig.',
'array' => ':Attribute muss ein Array sein.',
'array_keys' => 'Das Feld :Attribute darf nur die folgenden Schlüssel enthalten: :values.',
'ascii' => 'Die :attribute darf nur alphanumerische Single-Byte-Zeichen und -Symbole enthalten.',
'base64' => 'Das Feld :attribute muss eine gültige Base64-Zeichenfolge sein.',
'before' => ':Attribute muss ein Datum vor :date sein.',
'before_or_equal' => ':Attribute muss ein Datum vor :date oder gleich :date sein.',
'between' => [
'array' => ':Attribute muss zwischen :min & :max Elemente haben.',
'file' => ':Attribute muss zwischen :min & :max Kilobytes groß sein.',
'numeric' => ':Attribute muss zwischen :min & :max liegen.',
'string' => ':Attribute muss zwischen :min & :max Zeichen lang sein.',
],
'boolean' => ':Attribute muss entweder \'true\' oder \'false\' sein.',
'can' => 'Das Feld :attribute enthält einen nicht autorisierten Wert.',
'confirmed' => ':Attribute stimmt nicht mit der Bestätigung überein.',
'contains' => 'Dem Feld :attribute fehlt ein erforderlicher Wert.',
'current_password' => 'Das Passwort ist falsch.',
'date' => ':Attribute muss ein gültiges Datum sein.',
'date_equals' => ':Attribute muss ein Datum gleich :date sein.',
'date_format' => ':Attribute entspricht nicht dem gültigen Format für :format.',
'decimal' => 'Die :attribute muss :decimal Dezimalstellen haben.',
'declined' => ':Attribute muss abgelehnt werden.',
'declined_if' => ':Attribute muss abgelehnt werden wenn :other :value ist.',
'different' => ':Attribute und :other müssen sich unterscheiden.',
'digits' => ':Attribute muss :digits Stellen haben.',
'digits_between' => ':Attribute muss zwischen :min und :max Stellen haben.',
'dimensions' => ':Attribute hat ungültige Bildabmessungen.',
'distinct' => ':Attribute beinhaltet einen bereits vorhandenen Wert.',
'doesnt_contain' => ':Attribute darf keines der folgenden enthalten: :values.',
'doesnt_end_with' => ':Attribute darf nicht mit einem der folgenden enden: :values.',
'doesnt_start_with' => ':Attribute darf nicht mit einem der folgenden beginnen: :values.',
'email' => ':Attribute muss eine gültige E-Mail-Adresse sein.',
'encoding' => ':Attribute muss als :encoding kodiert sein.',
'ends_with' => ':Attribute muss eine der folgenden Endungen aufweisen: :values',
'enum' => 'Der ausgewählte Wert ist ungültig.',
'exists' => 'Der gewählte Wert für :attribute ist ungültig.',
'extensions' => 'Das Feld :attribute muss eine der folgenden Erweiterungen haben: :values.',
'file' => ':Attribute muss eine Datei sein.',
'filled' => ':Attribute muss ausgefüllt sein.',
'gt' => [
'array' => ':Attribute muss mehr als :value Elemente haben.',
'file' => ':Attribute muss größer als :value Kilobytes sein.',
'numeric' => ':Attribute muss größer als :value sein.',
'string' => ':Attribute muss länger als :value Zeichen sein.',
],
'gte' => [
'array' => ':Attribute muss mindestens :value Elemente haben.',
'file' => ':Attribute muss größer oder gleich :value Kilobytes sein.',
'numeric' => ':Attribute muss größer oder gleich :value sein.',
'string' => ':Attribute muss mindestens :value Zeichen lang sein.',
],
'hex_color' => 'Das Feld :attribute muss eine gültige Hexadezimalfarbe sein.',
'image' => ':Attribute muss ein Bild sein.',
'in' => 'Der gewählte Wert für :attribute ist ungültig.',
'in_array' => 'Der gewählte Wert für :attribute kommt nicht in :other vor.',
'in_array_keys' => 'Das Feld :Attribute muss mindestens einen der folgenden Schlüssel enthalten: :Values.',
'integer' => ':Attribute muss eine ganze Zahl sein.',
'ip' => ':Attribute muss eine gültige IP-Adresse sein.',
'ipv4' => ':Attribute muss eine gültige IPv4-Adresse sein.',
'ipv6' => ':Attribute muss eine gültige IPv6-Adresse sein.',
'json' => ':Attribute muss ein gültiger JSON-String sein.',
'list' => ':Attribute muss eine Liste sein.',
'lowercase' => ':Attribute muss in Kleinbuchstaben sein.',
'lt' => [
'array' => ':Attribute muss weniger als :value Elemente haben.',
'file' => ':Attribute muss kleiner als :value Kilobytes sein.',
'numeric' => ':Attribute muss kleiner als :value sein.',
'string' => ':Attribute muss kürzer als :value Zeichen sein.',
],
'lte' => [
'array' => ':Attribute darf maximal :value Elemente haben.',
'file' => ':Attribute muss kleiner oder gleich :value Kilobytes sein.',
'numeric' => ':Attribute muss kleiner oder gleich :value sein.',
'string' => ':Attribute darf maximal :value Zeichen lang sein.',
],
'mac_address' => 'Der Wert muss eine gültige MAC-Adresse sein.',
'max' => [
'array' => ':Attribute darf maximal :max Elemente haben.',
'file' => ':Attribute darf maximal :max Kilobytes groß sein.',
'numeric' => ':Attribute darf maximal :max sein.',
'string' => ':Attribute darf maximal :max Zeichen haben.',
],
'max_digits' => ':Attribute darf maximal :max Ziffern lang sein.',
'mimes' => ':Attribute muss den Dateityp :values haben.',
'mimetypes' => ':Attribute muss den Dateityp :values haben.',
'min' => [
'array' => ':Attribute muss mindestens :min Elemente haben.',
'file' => ':Attribute muss mindestens :min Kilobytes groß sein.',
'numeric' => ':Attribute muss mindestens :min sein.',
'string' => ':Attribute muss mindestens :min Zeichen lang sein.',
],
'min_digits' => ':Attribute muss mindestens :min Ziffern lang sein.',
'missing' => 'Das Feld :attribute muss fehlen.',
'missing_if' => 'Das Feld :attribute muss fehlen, wenn :other gleich :value ist.',
'missing_unless' => 'Das Feld :attribute muss fehlen, es sei denn, :other ist :value.',
'missing_with' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden ist.',
'missing_with_all' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden sind.',
'multiple_of' => ':Attribute muss ein Vielfaches von :value sein.',
'not_in' => 'Der gewählte Wert für :attribute ist ungültig.',
'not_regex' => ':Attribute hat ein ungültiges Format.',
'numeric' => ':Attribute muss eine Zahl sein.',
'password' => [
'letters' => ':Attribute muss mindestens einen Buchstaben beinhalten.',
'mixed' => ':Attribute muss mindestens einen Großbuchstaben und einen Kleinbuchstaben beinhalten.',
'numbers' => ':Attribute muss mindestens eine Zahl beinhalten.',
'symbols' => ':Attribute muss mindestens ein Sonderzeichen beinhalten.',
'uncompromised' => ':Attribute wurde in einem Datenleck gefunden. Bitte wählen Sie ein anderes :attribute.',
],
'present' => ':Attribute muss vorhanden sein.',
'present_if' => 'Das Feld :attribute muss vorhanden sein, wenn :other gleich :value ist.',
'present_unless' => 'Das Feld :attribute muss vorhanden sein, es sei denn, :other ist :value.',
'present_with' => 'Das Feld :attribute muss vorhanden sein, wenn :values vorhanden ist.',
'present_with_all' => 'Das Feld :attribute muss vorhanden sein, wenn :values vorhanden sind.',
'prohibited' => ':Attribute ist unzulässig.',
'prohibited_if' => ':Attribute ist unzulässig, wenn :other :value ist.',
'prohibited_if_accepted' => 'Das Feld :attribute ist unzulässig, wenn :other gewählt ist.',
'prohibited_if_declined' => 'Das Feld :attribute ist unzulässig, wenn :other abgelehnt ist.',
'prohibited_unless' => ':Attribute ist unzulässig, wenn :other nicht :values ist.',
'prohibits' => ':Attribute verbietet die Angabe von :other.',
'regex' => ':Attribute Format ist ungültig.',
'required' => ':Attribute muss ausgefüllt werden.',
'required_array_keys' => 'Dieses Feld muss Einträge enthalten für: :values.',
'required_if' => ':Attribute muss ausgefüllt werden, wenn :other den Wert :value hat.',
'required_if_accepted' => ':Attribute muss ausgefüllt werden, wenn :other gewählt ist.',
'required_if_declined' => 'Das Feld :attribute ist erforderlich, wenn :other abgelehnt wird.',
'required_unless' => ':Attribute muss ausgefüllt werden, wenn :other nicht den Wert :values hat.',
'required_with' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.',
'required_with_all' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.',
'required_without' => ':Attribute muss ausgefüllt werden, wenn :values nicht ausgefüllt wurde.',
'required_without_all' => ':Attribute muss ausgefüllt werden, wenn keines der Felder :values ausgefüllt wurde.',
'same' => ':Attribute und :other müssen übereinstimmen.',
'size' => [
'array' => ':Attribute muss genau :size Elemente haben.',
'file' => ':Attribute muss :size Kilobyte groß sein.',
'numeric' => ':Attribute muss gleich :size sein.',
'string' => ':Attribute muss :size Zeichen lang sein.',
],
'starts_with' => ':Attribute muss mit einem der folgenden Anfänge aufweisen: :values',
'string' => ':Attribute muss ein String sein.',
'timezone' => ':Attribute muss eine gültige Zeitzone sein.',
'ulid' => 'Die :attribute muss eine gültige ULID sein.',
'unique' => ':Attribute ist bereits vergeben.',
'uploaded' => ':Attribute konnte nicht hochgeladen werden.',
'uppercase' => ':Attribute muss in Großbuchstaben sein.',
'url' => ':Attribute muss eine URL sein.',
'uuid' => ':Attribute muss ein UUID sein.',
'attributes' => [
'address' => 'Adresse',
'affiliate_url' => 'Affiliate-URL',
'age' => 'Alter',
'amount' => 'Höhe',
'announcement' => 'Bekanntmachung',
'area' => 'Gebiet',
'audience_prize' => 'Publikumspreis',
'audience_winner' => 'Publikumsgewinner',
'available' => 'Verfügbar',
'birthday' => 'Geburtstag',
'body' => 'Körper',
'city' => 'Stadt',
'color' => 'Farbe',
'company' => 'Unternehmen',
'compilation' => 'Zusammenstellung',
'concept' => 'Konzept',
'conditions' => 'Bedingungen',
'content' => 'Inhalt',
'contest' => 'Wettbewerb',
'country' => 'Land',
'cover' => 'Abdeckung',
'created_at' => 'Erstellt am',
'creator' => 'Ersteller',
'currency' => 'Währung',
'current_password' => 'Derzeitiges Passwort',
'customer' => 'Kunde',
'date' => 'Datum',
'date_of_birth' => 'Geburtsdatum',
'dates' => 'Termine',
'day' => 'Tag',
'deleted_at' => 'Gelöscht am',
'description' => 'Beschreibung',
'display_type' => 'Anzeigetyp',
'district' => 'Bezirk',
'duration' => 'Dauer',
'email' => 'E-Mail-Adresse',
'excerpt' => 'Auszug',
'filter' => 'Filter',
'finished_at' => 'fertig um',
'first_name' => 'Vorname',
'gender' => 'Geschlecht',
'grand_prize' => 'Hauptpreis',
'group' => 'Gruppe',
'hour' => 'Stunde',
'image' => 'Bild',
'image_desktop' => 'Desktop-Bild',
'image_main' => 'Hauptbild',
'image_mobile' => 'mobiles Bild',
'images' => 'Bilder',
'is_audience_winner' => 'ist Publikumssieger',
'is_hidden' => 'ist versteckt',
'is_subscribed' => 'ist abonniert',
'is_visible' => 'ist sichtbar',
'is_winner' => 'ist Gewinner',
'items' => 'Artikel',
'key' => 'Schlüssel',
'last_name' => 'Nachname',
'lesson' => 'Lektion',
'line_address_1' => 'Adresszeile 1',
'line_address_2' => 'Adresszeile 2',
'login' => 'Anmeldung',
'message' => 'Nachricht',
'middle_name' => 'Zweitname',
'minute' => 'Minute',
'mobile' => 'Handynummer',
'month' => 'Monat',
'name' => 'Name',
'national_code' => 'Länderkennung',
'number' => 'Nummer',
'password' => 'Passwort',
'password_confirmation' => 'Passwortbestätigung',
'phone' => 'Telefonnummer',
'photo' => 'Foto',
'portfolio' => 'Portfolio',
'postal_code' => 'Postleitzahl',
'preview' => 'Vorschau',
'price' => 'Preis',
'product_id' => 'Produkt ID',
'product_uid' => 'Produkt-UID',
'product_uuid' => 'Produkt-UUID',
'promo_code' => 'Aktionscode',
'province' => 'Provinz',
'quantity' => 'Menge',
'reason' => 'Grund',
'recaptcha_response_field' => 'Captcha-Feld',
'referee' => 'Schiedsrichter',
'referees' => 'Schiedsrichter',
'region' => 'Region',
'reject_reason' => 'Ablehnungsgrund',
'remember' => 'Erinnern',
'restored_at' => 'Wiederhergestellt am',
'result_text_under_image' => 'Ergebnistext unter Bild',
'role' => 'Rolle',
'rule' => 'Regel',
'rules' => 'Regeln',
'second' => 'Sekunde',
'sex' => 'Geschlecht',
'shipment' => 'Sendung',
'short_text' => 'Kurzer Text',
'size' => 'Größe',
'skills' => 'Fähigkeiten',
'slug' => 'Schnecke',
'specialization' => 'Spezialisierung',
'started_at' => 'fing an bei',
'state' => 'Bundesland',
'status' => 'Status',
'street' => 'Straße',
'student' => 'Schüler/Student',
'subject' => 'Gegenstand',
'tag' => 'Etikett',
'tags' => 'Stichworte',
'teacher' => 'Lehrer',
'terms' => 'Bedingungen',
'test_description' => 'Test Beschreibung',
'test_locale' => 'Test Region',
'test_name' => 'Testname',
'text' => 'Text',
'time' => 'Uhrzeit',
'title' => 'Titel',
'type' => 'Typ',
'updated_at' => 'Aktualisiert am',
'user' => 'Benutzer',
'username' => 'Benutzername',
'value' => 'Wert',
'winner' => 'Gewinner',
'work' => 'Arbeit',
'year' => 'Jahr',
],
];