feat(client): polished toolbar, live online count via SSE
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 28s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m27s

- Redesign in-game client toolbar with refined glass styling and buttons
- Live online count + emulator status streamed over SSE multicast
- Who's-online tooltip throttled to reduce repeated requests
- Fix show button so it always returns the hidden toolbar
- Use theme CSS variables instead of hardcoded colors
- Add toolbar translations across all 25 locales
This commit is contained in:
openhands committed 2026-09-02 21:14:42 +02:00
1 parent e1ecb190bc
commit 67b67798b9
32 files changed
+799 -102

No files matched your search

+13
View File
@@ -9,5 +9,18 @@
"studio": "Studio"
}
}
},
"toolbar": {
"home": "الرئيسية",
"reload": "إعادة تحميل",
"fullscreen": "ملء الشاشة",
"logout": "تسجيل الخروج",
"onlineUsers": "المستخدمون المتواجدون",
"emulatorOnline": "المحاكي متصل",
"emulatorOffline": "المحاكي غير متصل",
"dragToMove": "اسحب للتحريك",
"hide": "إخفاء الشريط",
"fullscreenExit": "الخروج من ملء الشاشة",
"show": "إظهار الشريط"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Начало",
"reload": "Презареждане",
"fullscreen": "Цял екран",
"logout": "Изход",
"onlineUsers": "Потребители онлайн",
"emulatorOnline": "Емулаторът е онлайн",
"emulatorOffline": "Емулаторът е офлайн",
"dragToMove": "Влачете за преместване",
"hide": "Скрий лентата",
"fullscreenExit": "Изход от цял екран",
"show": "Покажи лентата"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Domů",
"reload": "Obnovit",
"fullscreen": "Celá obrazovka",
"logout": "Odhlásit",
"onlineUsers": "Uživatelé online",
"emulatorOnline": "Emulátor online",
"emulatorOffline": "Emulátor offline",
"dragToMove": "Přetažením přesunete",
"hide": "Skrýt lištu",
"fullscreenExit": "Ukončit celou obrazovku",
"show": "Zobrazit lištu"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Hjem",
"reload": "Genindlæs",
"fullscreen": "Fuldskærm",
"logout": "Log ud",
"onlineUsers": "Brugere online",
"emulatorOnline": "Emulator online",
"emulatorOffline": "Emulator offline",
"dragToMove": "Træk for at flytte",
"hide": "Skjul værktøjslinje",
"fullscreenExit": "Afslut fuldskærm",
"show": "Vis værktøjslinje"
}
}
+13
View File
@@ -3263,5 +3263,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Startseite",
"reload": "Neu laden",
"fullscreen": "Vollbild",
"logout": "Abmelden",
"onlineUsers": "Nutzer online",
"emulatorOnline": "Emulator online",
"emulatorOffline": "Emulator offline",
"dragToMove": "Ziehen zum Verschieben",
"hide": "Leiste ausblenden",
"fullscreenExit": "Vollbild beenden",
"show": "Leiste anzeigen"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Αρχική",
"reload": "Επαναφόρτωση",
"fullscreen": "Πλήρης οθόνη",
"logout": "Αποσύνδεση",
"onlineUsers": "Χρήστες συνδεδεμένοι",
"emulatorOnline": "Ο εξομοιωτής είναι online",
"emulatorOffline": "Ο εξομοιωτής είναι offline",
"dragToMove": "Σύρετε για μετακίνηση",
"hide": "Απόκρυψη γραμμής",
"fullscreenExit": "Έξοδος από πλήρη οθόνη",
"show": "Εμφάνιση γραμμής"
}
}
+13
View File
@@ -3321,5 +3321,18 @@
}
}
}
},
"toolbar": {
"home": "Home",
"reload": "Reload",
"fullscreen": "Fullscreen",
"logout": "Logout",
"onlineUsers": "Online users",
"emulatorOnline": "Emulator online",
"emulatorOffline": "Emulator offline",
"dragToMove": "Drag to move",
"hide": "Hide toolbar",
"fullscreenExit": "Exit fullscreen",
"show": "Show toolbar"
}
}
+13
View File
@@ -3263,5 +3263,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Inicio",
"reload": "Recargar",
"fullscreen": "Pantalla completa",
"logout": "Cerrar sesión",
"onlineUsers": "Usuarios en línea",
"emulatorOnline": "Emulador en línea",
"emulatorOffline": "Emulador fuera de línea",
"dragToMove": "Arrastra para mover",
"hide": "Ocultar barra",
"fullscreenExit": "Salir de pantalla completa",
"show": "Mostrar barra"
}
}
+13
View File
@@ -9,5 +9,18 @@
"studio": "Studio"
}
}
},
"toolbar": {
"home": "Koti",
"reload": "Lataa uudelleen",
"fullscreen": "Koko näyttö",
"logout": "Kirjaudu ulos",
"onlineUsers": "Käyttäjät verkossa",
"emulatorOnline": "Emulaattori verkossa",
"emulatorOffline": "Emulaattori ei verkossa",
"dragToMove": "Vedä liikuttaaksesi",
"hide": "Piilota työkalupalkki",
"fullscreenExit": "Lopeta koko näyttö",
"show": "Näytä työkalupalkki"
}
}
+13
View File
@@ -3263,5 +3263,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Accueil",
"reload": "Recharger",
"fullscreen": "Plein écran",
"logout": "Déconnexion",
"onlineUsers": "Utilisateurs en ligne",
"emulatorOnline": "Émulateur en ligne",
"emulatorOffline": "Émulateur hors ligne",
"dragToMove": "Glissez pour déplacer",
"hide": "Masquer la barre",
"fullscreenExit": "Quitter le plein écran",
"show": "Afficher la barre"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Početna",
"reload": "Ponovno učitaj",
"fullscreen": "Cijeli zaslon",
"logout": "Odjava",
"onlineUsers": "Korisnici online",
"emulatorOnline": "Emulator je online",
"emulatorOffline": "Emulator je offline",
"dragToMove": "Povucite za pomicanje",
"hide": "Sakrij traku",
"fullscreenExit": "Izađi iz cijelog zaslona",
"show": "Prikaži traku"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Kezdőlap",
"reload": "Újratöltés",
"fullscreen": "Teljes képernyő",
"logout": "Kijelentkezés",
"onlineUsers": "Online felhasználók",
"emulatorOnline": "Emulátor online",
"emulatorOffline": "Emulátor offline",
"dragToMove": "Húzás a mozgatáshoz",
"hide": "Sáv elrejtése",
"fullscreenExit": "Kilépés a teljes képernyőből",
"show": "Sáv megjelenítése"
}
}
+13
View File
@@ -3320,5 +3320,18 @@
}
}
}
},
"toolbar": {
"home": "Home",
"reload": "Ricarica",
"fullscreen": "Schermo intero",
"logout": "Esci",
"onlineUsers": "Utenti online",
"emulatorOnline": "Emulatore online",
"emulatorOffline": "Emulatore offline",
"dragToMove": "Trascina per spostare",
"hide": "Nascondi barra",
"fullscreenExit": "Esci dalla schermo intero",
"show": "Mostra barra"
}
}
+13
View File
@@ -9,5 +9,18 @@
"studio": "Studio"
}
}
},
"toolbar": {
"home": "ホーム",
"reload": "再読み込み",
"fullscreen": "全画面",
"logout": "ログアウト",
"onlineUsers": "オンラインのユーザー",
"emulatorOnline": "エミュレータオンライン",
"emulatorOffline": "エミュレータオフライン",
"dragToMove": "ドラッグして移動",
"hide": "ツールバーを隠す",
"fullscreenExit": "全画面を終了",
"show": "ツールバーを表示"
}
}
+13
View File
@@ -3265,5 +3265,18 @@
}
}
}
},
"toolbar": {
"home": "Home",
"reload": "Vernieuwen",
"fullscreen": "Volledig scherm",
"logout": "Uitloggen",
"onlineUsers": "Gebruikers online",
"emulatorOnline": "Emulator online",
"emulatorOffline": "Emulator offline",
"dragToMove": "Sleep om te verplaatsen",
"hide": "Werkbalk verbergen",
"fullscreenExit": "Volledig scherm afsluiten",
"show": "Werkbalk tonen"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Hjem",
"reload": "Last inn på nytt",
"fullscreen": "Fullskjerm",
"logout": "Logg ut",
"onlineUsers": "Brukere på nett",
"emulatorOnline": "Emulator på nett",
"emulatorOffline": "Emulator frakoblet",
"dragToMove": "Dra for å flytte",
"hide": "Skjul verktøylinje",
"fullscreenExit": "Avslutt fullskjerm",
"show": "Vis verktøylinje"
}
}
+13
View File
@@ -3263,5 +3263,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Start",
"reload": "Przeładuj",
"fullscreen": "Pełny ekran",
"logout": "Wyloguj",
"onlineUsers": "Użytkownicy online",
"emulatorOnline": "Emulator online",
"emulatorOffline": "Emulator offline",
"dragToMove": "Przeciągnij, aby przenieść",
"hide": "Ukryj pasek",
"fullscreenExit": "Zamknij pełny ekran",
"show": "Pokaż pasek"
}
}
+13
View File
@@ -3263,5 +3263,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Início",
"reload": "Recarregar",
"fullscreen": "Tela cheia",
"logout": "Sair",
"onlineUsers": "Usuários online",
"emulatorOnline": "Emulador online",
"emulatorOffline": "Emulador offline",
"dragToMove": "Arraste para mover",
"hide": "Ocultar barra",
"fullscreenExit": "Sair da tela cheia",
"show": "Mostrar barra"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Acasă",
"reload": "Reîncarcă",
"fullscreen": "Ecran complet",
"logout": "Deconectare",
"onlineUsers": "Utilizatori online",
"emulatorOnline": "Emulatorul este online",
"emulatorOffline": "Emulatorul este offline",
"dragToMove": "Trageți pentru a muta",
"hide": "Ascunde bara",
"fullscreenExit": "Ieșiți din ecran complet",
"show": "Afișați bara"
}
}
+13
View File
@@ -3261,5 +3261,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Главная",
"reload": "Перезагрузить",
"fullscreen": "Полный экран",
"logout": "Выйти",
"onlineUsers": "Пользователи онлайн",
"emulatorOnline": "Эмулятор онлайн",
"emulatorOffline": "Эмулятор офлайн",
"dragToMove": "Перетащите, чтобы переместить",
"hide": "Скрыть панель",
"fullscreenExit": "Выйти из полноэкранного режима",
"show": "Показать панель"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Domov",
"reload": "Obnoviť",
"fullscreen": "Celá obrazovka",
"logout": "Odhlásiť",
"onlineUsers": "Používatelia online",
"emulatorOnline": "Emulátor online",
"emulatorOffline": "Emulátor offline",
"dragToMove": "Potiahnite na presun",
"hide": "Skryť panel",
"fullscreenExit": "Ukončiť celú obrazovku",
"show": "Zobraziť panel"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Почетна",
"reload": "Освежи",
"fullscreen": "Цео екран",
"logout": "Одјава",
"onlineUsers": "Корисници на мрежи",
"emulatorOnline": "Емулатор онлајн",
"emulatorOffline": "Емулатор офлајн",
"dragToMove": "Превуците да померите",
"hide": "Сакриј траку",
"fullscreenExit": "Изађи из целог екрана",
"show": "Прикажи траку"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Hem",
"reload": "Ladda om",
"fullscreen": "Helskärm",
"logout": "Logga ut",
"onlineUsers": "Användare online",
"emulatorOnline": "Emulator online",
"emulatorOffline": "Emulator offline",
"dragToMove": "Dra för att flytta",
"hide": "Dölj verktygsfält",
"fullscreenExit": "Avsluta helskärm",
"show": "Visa verktygsfält"
}
}
+13
View File
@@ -3263,5 +3263,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Ana sayfa",
"reload": "Yenile",
"fullscreen": "Tam ekran",
"logout": "Çıkış",
"onlineUsers": "Çevrimiçi kullanıcılar",
"emulatorOnline": "Emülatör çevrimiçi",
"emulatorOffline": "Emülatör çevrimdışı",
"dragToMove": "Taşımak için sürükleyin",
"hide": "Araç çubuğunu gizle",
"fullscreenExit": "Tam ekrandan çık",
"show": "Araç çubuğunu göster"
}
}
+13
View File
@@ -3262,5 +3262,18 @@
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Головна",
"reload": "Перезавантажити",
"fullscreen": "Повний екран",
"logout": "Вийти",
"onlineUsers": "Користувачі онлайн",
"emulatorOnline": "Емулятор онлайн",
"emulatorOffline": "Емулятор офлайн",
"dragToMove": "Перетягніть, щоб перемістити",
"hide": "Сховати панель",
"fullscreenExit": "Вийти з повноекранного режиму",
"show": "Показати панель"
}
}