feat(settings): per-user language preference and panel improvements

Store UI language per user (users.language column, migration 26).
Language selector moves from Panel tab to Profile tab — each account
picks its own language, saved to DB and applied via i18n.changeLanguage()
on save so the interface switches immediately.

Panel tab: panel_name read-only (falls back to env PANEL_NAME),
log_retention_days field exposed in UI, language selector removed.
Panel API accepts panel_name in PUT so it can be overridden in DB
without touching the env var.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-20 08:47:18 +05:00
parent 4451b3e45a
commit 9ced08b88c
6 changed files with 38 additions and 2 deletions

View File

@@ -41,6 +41,7 @@ interface ProfileResponse {
is_admin: boolean;
is_active: boolean;
ssh_public_key?: string;
language: string;
created_at: string;
last_login?: string;
}

View File

@@ -681,6 +681,8 @@
"session_timeout": "Session Timeout",
"seconds": "seconds",
"minutes": "minutes",
"days": "days",
"log_retention_days": "Log Retention",
"security_saved": "Security settings saved",
"version": "Version",
"check_updates": "Check for Updates",

View File

@@ -681,6 +681,8 @@
"session_timeout": "Таймаут сессии",
"seconds": "секунд",
"minutes": "минут",
"days": "дней",
"log_retention_days": "Хранение логов",
"security_saved": "Настройки безопасности сохранены",
"version": "Версия",
"check_updates": "Проверить обновления",