feat(i18n): Complete localization of marketing frontend with react-i18next, prefixed URLs, JSON migrations, and automation
This commit is contained in:
@@ -51,7 +51,7 @@ Die App ist API-first und interagiert ausschließlich über den Backend-API-Endp
|
||||
### Error Handling & UX
|
||||
- **Rate Limits**: 429-Responses handhaben mit Retry-Logic und User-Feedback ("Zu viele Anfragen, versuche es später").
|
||||
- **Offline Mode**: Degradiertes UI (Read-Only); Sync-Status-Indikator.
|
||||
- **i18n**: Unterstützung für de/en; Locale aus User-Profile.
|
||||
- **i18n**: react-i18next mit JSON (`public/lang/{locale}/admin.json`); de/en; Locale aus User-Profile oder URL-Prefix (/de/, /en/); Detection via LanguageDetector; RTL nicht in MVP.
|
||||
|
||||
## API-Integration
|
||||
Die App konsumiert den API-Contract aus docs/prp/03-api.md. Schlüssel-Endpunkte:
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
- **Navigation**: Tabbar unten (Dashboard, Events, Photos, Settings); Side-Menu für Profile/Logout.
|
||||
- **Offline-Indikator**: Banner oben ("Offline-Modus: Änderungen werden synchronisiert").
|
||||
- **Loading**: Spinner für API-Calls; Skeleton-Screens für Listen.
|
||||
- **i18n**: Rechts-nach-Links für de/en; Icons von Framework7-Icons (Material).
|
||||
- **i18n**: LTR für de/en (react-i18next); alle Strings via `t('admin.key')`; Icons von Lucide React (aktuell, nicht Framework7).
|
||||
|
||||
## Benötigte Seiten und Komponenten
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
Diese Settings werden lokal in der App gespeichert (via Capacitor Preferences oder IndexedDB) und beeinflussen das Verhalten der App:
|
||||
|
||||
### Core App Settings
|
||||
- **language**: String (default: 'de') – UI-Sprache; Sync mit User-Locale.
|
||||
- **language**: String (default: 'de') – UI-Sprache; Sync mit User-Profile und i18next (react-i18next); Fallback 'en'; URL-Prefix (/de/, /en/) für persistente Wechsel.
|
||||
- **themeMode**: String ('system' | 'light' | 'dark') – Dark Mode-Präferenz; Framework7-Theming.
|
||||
- **offlineMode**: Boolean (default: true) – Aktiviert Offline-Caching und Background-Sync.
|
||||
- **pushNotifications**: Boolean (default: true) – Erlaubt Push-Registrierung.
|
||||
|
||||
Reference in New Issue
Block a user