boban
5691051ad8
feat(i18n): bilingual foundation (DE/EN) + localize auth/dashboard/servers/fleet/account
...
Adds user-selectable German (default) + English, per new rule R16.
Foundation:
- config locale=de + fallback=de; User.locale column (+migration); SetLocale middleware
(user → session → default; SUPPORTED=[de,en]); public /locale/{code} route; DE/EN
switcher (x-lang-switch) in topbar + auth layout; <html lang> dynamic.
- Translation structure: lang/{de,en}/<group>.php (one group per feature + shared common),
identical keys across both languages, :placeholder interpolation. Documented as R16 in
rules.md + CLAUDE.md (R9 reconciled).
- Removed the "Warum Caddy" rationale block from the System page (per feedback).
Localized this pass (views + Livewire components, keys de↔en at parity):
- common, auth, dashboard, servers, services, files, audit, settings, system, versions.
- #[Title] attributes → dynamic title() (attributes can't call __()).
Remaining (next commit): modals components + a few modal views, shell (command palette,
nav-item, server-item, toaster), and backend service messages (app/Services/*, OsProfile).
App is fully functional in German throughout; English covers the groups above.
Boot-verified: /login HTTP 200 in DE + EN, titles + <html lang> localized, locale switch works.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 22:36:16 +02:00
boban
db0a1de92f
feat: multi-server switcher + fleet context
...
- WithFleetContext concern: resolves the active server (session, default first
online) + the fleet.
- ServerSwitcher Livewire component in the persistent sidebar: dropdown of the
fleet; selecting persists active_server_id in the session and re-navigates so
panels reflect the choice.
- Dashboard reacts: resource rings + panel subtitles follow the active server.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 13:45:40 +02:00