From 5df570feb8f06acbbe745ed87d61b80aeea0962b Mon Sep 17 00:00:00 2001 From: Zoltan Papp Date: Sun, 31 May 2026 03:15:34 +0200 Subject: [PATCH] ui: localize tray status labels for connect/login states MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit StatusLabel only mapped Idle and DaemonUnavailable, so Connected, Connecting, NeedsLogin, LoginFailed and SessionExpired leaked the raw daemon enum into the tray menu — untranslated in de/hu. Map all five to tray.status.* keys (added in en/de/hu); keep the raw-enum default as a fallback for any future status. --- client/ui/i18n/locales/de/common.json | 5 +++++ client/ui/i18n/locales/en/common.json | 5 +++++ client/ui/i18n/locales/hu/common.json | 5 +++++ client/ui/localizer.go | 10 ++++++++++ 4 files changed, 25 insertions(+) diff --git a/client/ui/i18n/locales/de/common.json b/client/ui/i18n/locales/de/common.json index 302538699..edac5c6a6 100644 --- a/client/ui/i18n/locales/de/common.json +++ b/client/ui/i18n/locales/de/common.json @@ -3,6 +3,11 @@ "tray.status.disconnected": "Getrennt", "tray.status.daemonUnavailable": "Nicht aktiv", "tray.status.error": "Fehler", + "tray.status.connected": "Verbunden", + "tray.status.connecting": "Verbinde", + "tray.status.needsLogin": "Anmeldung erforderlich", + "tray.status.loginFailed": "Anmeldung fehlgeschlagen", + "tray.status.sessionExpired": "Sitzung abgelaufen", "tray.session.expiresIn": "Sitzung läuft ab in {remaining}", "tray.session.unit.lessThanMinute": "weniger als einer Minute", "tray.session.unit.minute": "1 Minute", diff --git a/client/ui/i18n/locales/en/common.json b/client/ui/i18n/locales/en/common.json index 162ec6912..bae9f250e 100644 --- a/client/ui/i18n/locales/en/common.json +++ b/client/ui/i18n/locales/en/common.json @@ -3,6 +3,11 @@ "tray.status.disconnected": "Disconnected", "tray.status.daemonUnavailable": "Not running", "tray.status.error": "Error", + "tray.status.connected": "Connected", + "tray.status.connecting": "Connecting", + "tray.status.needsLogin": "Login required", + "tray.status.loginFailed": "Login failed", + "tray.status.sessionExpired": "Session expired", "tray.session.expiresIn": "Session expires in {remaining}", "tray.session.unit.lessThanMinute": "less than a minute", "tray.session.unit.minute": "1 minute", diff --git a/client/ui/i18n/locales/hu/common.json b/client/ui/i18n/locales/hu/common.json index 78db7bf89..eba5faa7b 100644 --- a/client/ui/i18n/locales/hu/common.json +++ b/client/ui/i18n/locales/hu/common.json @@ -3,6 +3,11 @@ "tray.status.disconnected": "Lekapcsolva", "tray.status.daemonUnavailable": "Nem fut", "tray.status.error": "Hiba", + "tray.status.connected": "Kapcsolódva", + "tray.status.connecting": "Kapcsolódás", + "tray.status.needsLogin": "Bejelentkezés szükséges", + "tray.status.loginFailed": "Sikertelen bejelentkezés", + "tray.status.sessionExpired": "Munkamenet lejárt", "tray.session.expiresIn": "Munkamenet lejár {remaining} múlva", "tray.session.unit.lessThanMinute": "egy percnél kevesebb", "tray.session.unit.minute": "1 perc", diff --git a/client/ui/localizer.go b/client/ui/localizer.go index 048cd1bc9..b9571e674 100644 --- a/client/ui/localizer.go +++ b/client/ui/localizer.go @@ -128,6 +128,16 @@ func (l *Localizer) StatusLabel(status string) string { return l.T("tray.status.disconnected") case strings.EqualFold(status, services.StatusDaemonUnavailable): return l.T("tray.status.daemonUnavailable") + case strings.EqualFold(status, services.StatusConnected): + return l.T("tray.status.connected") + case strings.EqualFold(status, services.StatusConnecting): + return l.T("tray.status.connecting") + case strings.EqualFold(status, services.StatusNeedsLogin): + return l.T("tray.status.needsLogin") + case strings.EqualFold(status, services.StatusLoginFailed): + return l.T("tray.status.loginFailed") + case strings.EqualFold(status, services.StatusSessionExpired): + return l.T("tray.status.sessionExpired") } return status }