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
+8
View File
@@ -56,6 +56,14 @@ wird nicht umgangen.
Begriffe nach Laravel-Konvention englisch (`Controller`, `Policy`, `Job`).
- **Länder DE/AT:** gemeinsamer Kern, länderspezifische Logik hinter Schnittstellen in
`app/Laender/DE` bzw. `app/Laender/AT`. Fachliche Tabellen bekommen `mandant_id` und `land`.
- **Mehrsprachigkeit:** Jeder sichtbare Text über `__('English source text')`, nie fest im
Template. Standardsprache Deutsch, angebotene Sprachen in `config('app.available_locales')`,
Sprache je Benutzer in `users.locale` (Middleware `SetLocale`).
- `lang/de.json` und `lang/de/*.php` erzeugt Laravel Lang – nicht von Hand ändern.
- Eigene Texte und Korrekturen gehören nach `lang/project/{locale}.json`, danach
`sail artisan lang:apply-project`. Nach `sail artisan lang:update` ebenfalls `lang:apply-project`.
- `TranslationCoverageTest` schlägt fehl, wenn ein Text ohne Übersetzung ist.
- In Tests Texte über `__()` prüfen statt fest auf Englisch oder Deutsch.
- **Tests:** Pest als Runner, Tests im PHPUnit-Klassenstil (`tests/Feature`, `tests/Unit`).
Tests laufen gegen die Datenbank `testing`, nie gegen `ki_bauin`.
- **Commit-Nachrichten** auf Deutsch.