mirror of
https://github.com/UNITRONIX/BetterDesk.git
synced 2026-09-10 01:27:11 +00:00
feat(console): label optional UX 3.5 shell switch as Beta
Keep classic as the default production chrome. Mark the opt-in switcher with a BETA badge/tooltip and show a topbar chip while UX 3.5 is active.
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
## [Unreleased]
|
||||
|
||||
### Changed
|
||||
- **UX 3.5 labeled Beta (opt-in):** classic console remains the default shell. The navbar switch to UX 3.5 shows a **BETA** badge/tooltip; while UX 3.5 is active a small BETA chip appears in the topbar. Escape hatch back to classic is unchanged. Ships via panel update.
|
||||
|
||||
### Fixed
|
||||
- _(none yet)_
|
||||
|
||||
---
|
||||
|
||||
+4
-4
@@ -1,16 +1,16 @@
|
||||
# UX 3.5 — Console shell (optional)
|
||||
# UX 3.5 — Console shell (optional Beta)
|
||||
|
||||
UX 3.5 is an **optional management console chrome** in BetterDesk `web-nodejs`. The **default** shell is the classic TeamViewer-style **icon rail + flyout**. Operators can switch to UX 3.5 (full-list sidebar + topbar) from the navbar; the choice is stored in cookie `bd_ui_shell`.
|
||||
UX 3.5 is an **optional Beta** management console chrome in BetterDesk `web-nodejs`. The **default** shell is the classic TeamViewer-style **icon rail + flyout**. Operators can opt in to UX 3.5 (full-list sidebar + topbar) from the navbar; the choice is stored in cookie `bd_ui_shell`. Classic remains the supported production default until UX 3.5 leaves Beta.
|
||||
|
||||
## Switching shells
|
||||
|
||||
| Action | How |
|
||||
|--------|-----|
|
||||
| Classic → UX 3.5 | Navbar button (view_sidebar icon) or `?ui=ux35` |
|
||||
| Classic → UX 3.5 (Beta) | Navbar button (view_sidebar icon + **BETA** badge) or `?ui=ux35` |
|
||||
| UX 3.5 → Classic | Topbar button (dashboard_customize icon) or `?ui=classic` |
|
||||
| Persist | Cookie `bd_ui_shell=classic\|ux35` (1 year, SameSite=Lax) |
|
||||
|
||||
Default when no cookie: **classic**.
|
||||
Default when no cookie: **classic**. While UX 3.5 is active, a small **BETA** chip appears in the topbar next to the brand.
|
||||
|
||||
Client helper: `web-nodejs/public/js/ui-shell.js`. SSR selects partials in `main.ejs` via `res.locals.uiShell` (middleware in `server.js`).
|
||||
|
||||
|
||||
@@ -4346,7 +4346,9 @@
|
||||
"resize_sidebar": "تغيير عرض الشريط الجانبي",
|
||||
"open_menu": "فتح القائمة",
|
||||
"theme_mode_hint": "الفاتح والداكن مدمجان. يُفعَّل المخصص عند تعديل الألوان أدناه.",
|
||||
"switch_to_ux35": "التبديل إلى UX 3.5",
|
||||
"switch_to_classic": "التبديل إلى الواجهة الكلاسيكية"
|
||||
"switch_to_ux35": "التبديل إلى UX 3.5 (تجريبي)",
|
||||
"switch_to_classic": "التبديل إلى الواجهة الكلاسيكية",
|
||||
"beta_badge": "تجريبي",
|
||||
"beta_tooltip": "تخطيط لوحة تجريبي — اختياري؛ تبقى الواجهة الكلاسيكية الافتراضية."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "Změnit šířku postranního panelu",
|
||||
"open_menu": "Otevřít nabídku",
|
||||
"theme_mode_hint": "Světlý a tmavý jsou vestavěné. Vlastní se aktivuje při úpravě barev níže.",
|
||||
"switch_to_ux35": "Přepnout na UX 3.5",
|
||||
"switch_to_classic": "Přepnout na klasické rozhraní"
|
||||
"switch_to_ux35": "Přepnout na UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Přepnout na klasické rozhraní",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Beta rozložení konzole — volitelné; výchozí zůstává klasické UI."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Tilpas sidepanelbredde",
|
||||
"open_menu": "Åbn menu",
|
||||
"theme_mode_hint": "Lys og mørk er indbygget. Tilpasset aktiveres, når du redigerer farverne nedenfor.",
|
||||
"switch_to_ux35": "Skift til UX 3.5",
|
||||
"switch_to_classic": "Skift til klassisk UI"
|
||||
"switch_to_ux35": "Skift til UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Skift til klassisk UI",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Beta-konsollayout — valgfrit; klassisk UI forbliver standard."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "Seitenleiste skalieren",
|
||||
"open_menu": "Menü öffnen",
|
||||
"theme_mode_hint": "Hell und Dunkel sind integriert. Benutzerdefiniert wird aktiviert, wenn Sie unten Farben ändern.",
|
||||
"switch_to_ux35": "Zu UX 3.5 wechseln",
|
||||
"switch_to_classic": "Zur klassischen Oberfläche wechseln"
|
||||
"switch_to_ux35": "Zu UX 3.5 wechseln (Beta)",
|
||||
"switch_to_classic": "Zur klassischen Oberfläche wechseln",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Beta-Konsolenlayout — optional; die klassische Oberfläche bleibt Standard."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2919,8 +2919,10 @@
|
||||
"resize_sidebar": "Resize sidebar",
|
||||
"open_menu": "Open menu",
|
||||
"theme_mode_hint": "Light and Dark are built-in. Custom activates when you edit colors below.",
|
||||
"switch_to_ux35": "Switch to UX 3.5",
|
||||
"switch_to_classic": "Switch to classic UI"
|
||||
"switch_to_ux35": "Switch to UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Switch to classic UI",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Beta console layout — optional; classic UI remains the default."
|
||||
},
|
||||
"days": {
|
||||
"mon": "Mon",
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "Cambiar ancho de la barra lateral",
|
||||
"open_menu": "Abrir menú",
|
||||
"theme_mode_hint": "Claro y Oscuro son predefinidos. Personalizado se activa al editar los colores abajo.",
|
||||
"switch_to_ux35": "Cambiar a UX 3.5",
|
||||
"switch_to_classic": "Cambiar a la interfaz clásica"
|
||||
"switch_to_ux35": "Cambiar a UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Cambiar a la interfaz clásica",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Diseño de consola en beta — opcional; la interfaz clásica sigue siendo la predeterminada."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Muuta sivupalkin leveyttä",
|
||||
"open_menu": "Avaa valikko",
|
||||
"theme_mode_hint": "Vaalea ja Tumma ovat sisäänrakennettuja. Mukautettu otetaan käyttöön, kun muokkaat värejä alla.",
|
||||
"switch_to_ux35": "Vaihda UX 3.5 -tilaan",
|
||||
"switch_to_classic": "Vaihda klassiseen käyttöliittymään"
|
||||
"switch_to_ux35": "Vaihda UX 3.5 -tilaan (Beta)",
|
||||
"switch_to_classic": "Vaihda klassiseen käyttöliittymään",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Beta-konsolin asettelu — valinnainen; klassinen käyttöliittymä pysyy oletuksena."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4343,7 +4343,9 @@
|
||||
"resize_sidebar": "Redimensionner la barre latérale",
|
||||
"open_menu": "Ouvrir le menu",
|
||||
"theme_mode_hint": "Clair et Sombre sont intégrés. Personnalisé s’active lorsque vous modifiez les couleurs ci-dessous.",
|
||||
"switch_to_ux35": "Passer à UX 3.5",
|
||||
"switch_to_classic": "Passer à l’interface classique"
|
||||
"switch_to_ux35": "Passer à UX 3.5 (Bêta)",
|
||||
"switch_to_classic": "Passer à l’interface classique",
|
||||
"beta_badge": "BÊTA",
|
||||
"beta_tooltip": "Disposition console en bêta — optionnelle ; l’interface classique reste la valeur par défaut."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "साइडबार की चौड़ाई बदलें",
|
||||
"open_menu": "मेनू खोलें",
|
||||
"theme_mode_hint": "लाइट और डार्क बिल्ट-इन हैं। नीचे रंग बदलने पर कस्टम सक्रिय होता है।",
|
||||
"switch_to_ux35": "UX 3.5 पर स्विच करें",
|
||||
"switch_to_classic": "क्लासिक UI पर स्विच करें"
|
||||
"switch_to_ux35": "UX 3.5 पर स्विच करें (बीटा)",
|
||||
"switch_to_classic": "क्लासिक UI पर स्विच करें",
|
||||
"beta_badge": "बीटा",
|
||||
"beta_tooltip": "बीटा कंसोल लेआउट — वैकल्पिक; क्लासिक UI डिफ़ॉल्ट रहता है।"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Oldalsáv átméretezése",
|
||||
"open_menu": "Menü megnyitása",
|
||||
"theme_mode_hint": "A Világos és a Sötét beépített. Az Egyéni a színek szerkesztésekor aktiválódik.",
|
||||
"switch_to_ux35": "Váltás UX 3.5-re",
|
||||
"switch_to_classic": "Váltás klasszikus felületre"
|
||||
"switch_to_ux35": "Váltás UX 3.5-re (Béta)",
|
||||
"switch_to_classic": "Váltás klasszikus felületre",
|
||||
"beta_badge": "BÉTA",
|
||||
"beta_tooltip": "Béta konzol elrendezés — opcionális; az alapértelmezett a klasszikus felület marad."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Ubah lebar bilah samping",
|
||||
"open_menu": "Buka menu",
|
||||
"theme_mode_hint": "Terang dan Gelap bawaan. Kustom aktif saat Anda mengubah warna di bawah.",
|
||||
"switch_to_ux35": "Beralih ke UX 3.5",
|
||||
"switch_to_classic": "Beralih ke UI klasik"
|
||||
"switch_to_ux35": "Beralih ke UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Beralih ke UI klasik",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Tata letak konsol Beta — opsional; UI klasik tetap default."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "Ridimensiona barra laterale",
|
||||
"open_menu": "Apri menu",
|
||||
"theme_mode_hint": "Chiaro e Scuro sono integrati. Personalizzato si attiva modificando i colori sotto.",
|
||||
"switch_to_ux35": "Passa a UX 3.5",
|
||||
"switch_to_classic": "Passa all’interfaccia classica"
|
||||
"switch_to_ux35": "Passa a UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Passa all’interfaccia classica",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Layout console in beta — opzionale; l’interfaccia classica resta predefinita."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "サイドバーの幅を変更",
|
||||
"open_menu": "メニューを開く",
|
||||
"theme_mode_hint": "ライトとダークは標準です。下で色を編集するとカスタムになります。",
|
||||
"switch_to_ux35": "UX 3.5 に切り替え",
|
||||
"switch_to_classic": "クラシック UI に切り替え"
|
||||
"switch_to_ux35": "UX 3.5 に切り替え(ベータ)",
|
||||
"switch_to_classic": "クラシック UI に切り替え",
|
||||
"beta_badge": "ベータ",
|
||||
"beta_tooltip": "ベータ版コンソールレイアウト — 任意。既定はクラシック UI のままです。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "사이드바 너비 조절",
|
||||
"open_menu": "메뉴 열기",
|
||||
"theme_mode_hint": "밝게와 어둡게는 기본입니다. 아래에서 색상을 편집하면 사용자 지정이 활성화됩니다.",
|
||||
"switch_to_ux35": "UX 3.5로 전환",
|
||||
"switch_to_classic": "클래식 UI로 전환"
|
||||
"switch_to_ux35": "UX 3.5로 전환 (베타)",
|
||||
"switch_to_classic": "클래식 UI로 전환",
|
||||
"beta_badge": "베타",
|
||||
"beta_tooltip": "베타 콘솔 레이아웃 — 선택 사항이며 기본값은 클래식 UI입니다."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Endre sidepanelbredde",
|
||||
"open_menu": "Åpne meny",
|
||||
"theme_mode_hint": "Lys og Mørk er innebygd. Tilpasset aktiveres når du redigerer fargene nedenfor.",
|
||||
"switch_to_ux35": "Bytt til UX 3.5",
|
||||
"switch_to_classic": "Bytt til klassisk UI"
|
||||
"switch_to_ux35": "Bytt til UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Bytt til klassisk UI",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Beta-konsollayout — valgfritt; klassisk UI forblir standard."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "Zijbalkbreedte aanpassen",
|
||||
"open_menu": "Menu openen",
|
||||
"theme_mode_hint": "Licht en Donker zijn ingebouwd. Aangepast wordt actief wanneer u hieronder kleuren bewerkt.",
|
||||
"switch_to_ux35": "Overschakelen naar UX 3.5",
|
||||
"switch_to_classic": "Overschakelen naar klassieke UI"
|
||||
"switch_to_ux35": "Overschakelen naar UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Overschakelen naar klassieke UI",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Beta-consolelay-out — optioneel; de klassieke UI blijft de standaard."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "Zmień szerokość paska bocznego",
|
||||
"open_menu": "Otwórz menu",
|
||||
"theme_mode_hint": "Jasny i Ciemny są wbudowane. Niestandardowy włącza się po edycji kolorów poniżej.",
|
||||
"switch_to_ux35": "Przełącz na UX 3.5",
|
||||
"switch_to_classic": "Przełącz na klasyczny interfejs"
|
||||
"switch_to_ux35": "Przełącz na UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Przełącz na klasyczny interfejs",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Układ konsoli w wersji beta — opcjonalny; klasyczny UI pozostaje domyślny."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "Redimensionar barra lateral",
|
||||
"open_menu": "Abrir menu",
|
||||
"theme_mode_hint": "Claro e Escuro são predefinidos. Personalizado ativa-se ao editar as cores abaixo.",
|
||||
"switch_to_ux35": "Mudar para UX 3.5",
|
||||
"switch_to_classic": "Mudar para a interface clássica"
|
||||
"switch_to_ux35": "Mudar para UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Mudar para a interface clássica",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Layout da consola em beta — opcional; a UI clássica continua a ser a predefinida."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Redimensionați bara laterală",
|
||||
"open_menu": "Deschide meniul",
|
||||
"theme_mode_hint": "Deschis și Întunecat sunt integrate. Personalizat se activează când editați culorile de mai jos.",
|
||||
"switch_to_ux35": "Comutați la UX 3.5",
|
||||
"switch_to_classic": "Comutați la interfața clasică"
|
||||
"switch_to_ux35": "Comutați la UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Comutați la interfața clasică",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Aspect consolă beta — opțional; UI-ul clasic rămâne implicit."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Ändra sidopanelens bredd",
|
||||
"open_menu": "Öppna meny",
|
||||
"theme_mode_hint": "Ljust och Mörkt är inbyggda. Anpassad aktiveras när du redigerar färgerna nedan.",
|
||||
"switch_to_ux35": "Växla till UX 3.5",
|
||||
"switch_to_classic": "Växla till klassiskt gränssnitt"
|
||||
"switch_to_ux35": "Växla till UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Växla till klassiskt gränssnitt",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Beta-konsollayout — valfritt; klassiskt UI förblir standard."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "ปรับความกว้างแถบด้านข้าง",
|
||||
"open_menu": "เปิดเมนู",
|
||||
"theme_mode_hint": "สว่างและมืดมีให้ในตัว กำหนดเองจะเปิดเมื่อคุณแก้ไขสีด้านล่าง",
|
||||
"switch_to_ux35": "สลับไป UX 3.5",
|
||||
"switch_to_classic": "สลับไป UI คลาสสิก"
|
||||
"switch_to_ux35": "สลับไป UX 3.5 (เบต้า)",
|
||||
"switch_to_classic": "สลับไป UI คลาสสิก",
|
||||
"beta_badge": "เบต้า",
|
||||
"beta_tooltip": "เลย์เอาต์คอนโซลเบต้า — ไม่บังคับ UI คลาสสิกยังเป็นค่าเริ่มต้น"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Kenar çubuğu genişliğini ayarla",
|
||||
"open_menu": "Menüyü aç",
|
||||
"theme_mode_hint": "Açık ve Koyu yerleşiktir. Aşağıdaki renkleri düzenlediğinizde Özel etkinleşir.",
|
||||
"switch_to_ux35": "UX 3.5’e geç",
|
||||
"switch_to_classic": "Klasik arayüze geç"
|
||||
"switch_to_ux35": "UX 3.5’e geç (Beta)",
|
||||
"switch_to_classic": "Klasik arayüze geç",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Beta konsol düzeni — isteğe bağlı; klasik arayüz varsayılan kalır."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Змінити ширину бічної панелі",
|
||||
"open_menu": "Відкрити меню",
|
||||
"theme_mode_hint": "Світла і Темна вбудовані. Власний активується під час редагування кольорів нижче.",
|
||||
"switch_to_ux35": "Перемкнути на UX 3.5",
|
||||
"switch_to_classic": "Перемкнути на класичний інтерфейс"
|
||||
"switch_to_ux35": "Перемкнути на UX 3.5 (Бета)",
|
||||
"switch_to_classic": "Перемкнути на класичний інтерфейс",
|
||||
"beta_badge": "БЕТА",
|
||||
"beta_tooltip": "Бета-макет консолі — необов’язково; класичний UI лишається типовим."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4345,7 +4345,9 @@
|
||||
"resize_sidebar": "Đổi độ rộng thanh bên",
|
||||
"open_menu": "Mở menu",
|
||||
"theme_mode_hint": "Sáng và Tối là mặc định. Tùy chỉnh bật khi bạn chỉnh màu bên dưới.",
|
||||
"switch_to_ux35": "Chuyển sang UX 3.5",
|
||||
"switch_to_classic": "Chuyển sang giao diện cổ điển"
|
||||
"switch_to_ux35": "Chuyển sang UX 3.5 (Beta)",
|
||||
"switch_to_classic": "Chuyển sang giao diện cổ điển",
|
||||
"beta_badge": "BETA",
|
||||
"beta_tooltip": "Bố cục console Beta — tùy chọn; giao diện cổ điển vẫn là mặc định."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4343,7 +4343,9 @@
|
||||
"resize_sidebar": "調整側邊欄寬度",
|
||||
"open_menu": "開啟選單",
|
||||
"theme_mode_hint": "淺色與深色為內建。編輯下方顏色時會啟用自訂。",
|
||||
"switch_to_ux35": "切換至 UX 3.5",
|
||||
"switch_to_classic": "切換至經典介面"
|
||||
"switch_to_ux35": "切換至 UX 3.5(測試版)",
|
||||
"switch_to_classic": "切換至經典介面",
|
||||
"beta_badge": "測試版",
|
||||
"beta_tooltip": "測試版主控台版面 — 可選;經典介面仍為預設。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4339,7 +4339,9 @@
|
||||
"resize_sidebar": "调整侧边栏宽度",
|
||||
"open_menu": "打开菜单",
|
||||
"theme_mode_hint": "浅色和深色为内置。编辑下方颜色时将启用自定义。",
|
||||
"switch_to_ux35": "切换到 UX 3.5",
|
||||
"switch_to_classic": "切换到经典界面"
|
||||
"switch_to_ux35": "切换到 UX 3.5(测试版)",
|
||||
"switch_to_classic": "切换到经典界面",
|
||||
"beta_badge": "测试版",
|
||||
"beta_tooltip": "测试版控制台布局 — 可选;经典界面仍为默认。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -892,6 +892,26 @@ table {
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
/* Compact Beta marker on classic → UX 3.5 shell switch (opt-in) */
|
||||
.navbar-btn--shell-beta {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ui-shell-beta-badge {
|
||||
position: absolute;
|
||||
top: -4px;
|
||||
right: -8px;
|
||||
font-size: 8px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.5px;
|
||||
padding: 1px 4px;
|
||||
border-radius: 4px;
|
||||
background: var(--accent-color, #f0883e);
|
||||
color: #fff;
|
||||
line-height: 1.2;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* Language selector */
|
||||
.lang-selector {
|
||||
position: relative;
|
||||
|
||||
@@ -45,6 +45,21 @@ body.app-page.ux35-page {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.ux35-beta-chip {
|
||||
flex-shrink: 0;
|
||||
align-self: center;
|
||||
margin-inline-start: 6px;
|
||||
font-size: 9px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.06em;
|
||||
padding: 2px 6px;
|
||||
border-radius: 4px;
|
||||
background: var(--accent-color, #f0883e);
|
||||
color: #fff;
|
||||
line-height: 1.2;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.ux35-topbar-logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
/**
|
||||
* Patch ux35 Beta labeling into all locale files.
|
||||
* Run: node web-nodejs/scripts/patch-ux35-beta-label-i18n.js
|
||||
*/
|
||||
'use strict';
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const dir = path.join(__dirname, '..', 'lang');
|
||||
|
||||
const translations = {
|
||||
en: {
|
||||
switch_to_ux35: 'Switch to UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Beta console layout — optional; classic UI remains the default.'
|
||||
},
|
||||
ar: {
|
||||
switch_to_ux35: 'التبديل إلى UX 3.5 (تجريبي)',
|
||||
beta_badge: 'تجريبي',
|
||||
beta_tooltip: 'تخطيط لوحة تجريبي — اختياري؛ تبقى الواجهة الكلاسيكية الافتراضية.'
|
||||
},
|
||||
cs: {
|
||||
switch_to_ux35: 'Přepnout na UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Beta rozložení konzole — volitelné; výchozí zůstává klasické UI.'
|
||||
},
|
||||
da: {
|
||||
switch_to_ux35: 'Skift til UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Beta-konsollayout — valgfrit; klassisk UI forbliver standard.'
|
||||
},
|
||||
de: {
|
||||
switch_to_ux35: 'Zu UX 3.5 wechseln (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Beta-Konsolenlayout — optional; die klassische Oberfläche bleibt Standard.'
|
||||
},
|
||||
es: {
|
||||
switch_to_ux35: 'Cambiar a UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Diseño de consola en beta — opcional; la interfaz clásica sigue siendo la predeterminada.'
|
||||
},
|
||||
fi: {
|
||||
switch_to_ux35: 'Vaihda UX 3.5 -tilaan (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Beta-konsolin asettelu — valinnainen; klassinen käyttöliittymä pysyy oletuksena.'
|
||||
},
|
||||
fr: {
|
||||
switch_to_ux35: 'Passer à UX 3.5 (Bêta)',
|
||||
beta_badge: 'BÊTA',
|
||||
beta_tooltip: 'Disposition console en bêta — optionnelle ; l’interface classique reste la valeur par défaut.'
|
||||
},
|
||||
hi: {
|
||||
switch_to_ux35: 'UX 3.5 पर स्विच करें (बीटा)',
|
||||
beta_badge: 'बीटा',
|
||||
beta_tooltip: 'बीटा कंसोल लेआउट — वैकल्पिक; क्लासिक UI डिफ़ॉल्ट रहता है।'
|
||||
},
|
||||
hu: {
|
||||
switch_to_ux35: 'Váltás UX 3.5-re (Béta)',
|
||||
beta_badge: 'BÉTA',
|
||||
beta_tooltip: 'Béta konzol elrendezés — opcionális; az alapértelmezett a klasszikus felület marad.'
|
||||
},
|
||||
id: {
|
||||
switch_to_ux35: 'Beralih ke UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Tata letak konsol Beta — opsional; UI klasik tetap default.'
|
||||
},
|
||||
it: {
|
||||
switch_to_ux35: 'Passa a UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Layout console in beta — opzionale; l’interfaccia classica resta predefinita.'
|
||||
},
|
||||
ja: {
|
||||
switch_to_ux35: 'UX 3.5 に切り替え(ベータ)',
|
||||
beta_badge: 'ベータ',
|
||||
beta_tooltip: 'ベータ版コンソールレイアウト — 任意。既定はクラシック UI のままです。'
|
||||
},
|
||||
ko: {
|
||||
switch_to_ux35: 'UX 3.5로 전환 (베타)',
|
||||
beta_badge: '베타',
|
||||
beta_tooltip: '베타 콘솔 레이아웃 — 선택 사항이며 기본값은 클래식 UI입니다.'
|
||||
},
|
||||
nb: {
|
||||
switch_to_ux35: 'Bytt til UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Beta-konsollayout — valgfritt; klassisk UI forblir standard.'
|
||||
},
|
||||
nl: {
|
||||
switch_to_ux35: 'Overschakelen naar UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Beta-consolelay-out — optioneel; de klassieke UI blijft de standaard.'
|
||||
},
|
||||
pl: {
|
||||
switch_to_ux35: 'Przełącz na UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Układ konsoli w wersji beta — opcjonalny; klasyczny UI pozostaje domyślny.'
|
||||
},
|
||||
pt: {
|
||||
switch_to_ux35: 'Mudar para UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Layout da consola em beta — opcional; a UI clássica continua a ser a predefinida.'
|
||||
},
|
||||
ro: {
|
||||
switch_to_ux35: 'Comutați la UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Aspect consolă beta — opțional; UI-ul clasic rămâne implicit.'
|
||||
},
|
||||
sv: {
|
||||
switch_to_ux35: 'Växla till UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Beta-konsollayout — valfritt; klassiskt UI förblir standard.'
|
||||
},
|
||||
th: {
|
||||
switch_to_ux35: 'สลับไป UX 3.5 (เบต้า)',
|
||||
beta_badge: 'เบต้า',
|
||||
beta_tooltip: 'เลย์เอาต์คอนโซลเบต้า — ไม่บังคับ UI คลาสสิกยังเป็นค่าเริ่มต้น'
|
||||
},
|
||||
tr: {
|
||||
switch_to_ux35: 'UX 3.5’e geç (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Beta konsol düzeni — isteğe bağlı; klasik arayüz varsayılan kalır.'
|
||||
},
|
||||
uk: {
|
||||
switch_to_ux35: 'Перемкнути на UX 3.5 (Бета)',
|
||||
beta_badge: 'БЕТА',
|
||||
beta_tooltip: 'Бета-макет консолі — необов’язково; класичний UI лишається типовим.'
|
||||
},
|
||||
vi: {
|
||||
switch_to_ux35: 'Chuyển sang UX 3.5 (Beta)',
|
||||
beta_badge: 'BETA',
|
||||
beta_tooltip: 'Bố cục console Beta — tùy chọn; giao diện cổ điển vẫn là mặc định.'
|
||||
},
|
||||
zh: {
|
||||
switch_to_ux35: '切换到 UX 3.5(测试版)',
|
||||
beta_badge: '测试版',
|
||||
beta_tooltip: '测试版控制台布局 — 可选;经典界面仍为默认。'
|
||||
},
|
||||
'zh-TW': {
|
||||
switch_to_ux35: '切換至 UX 3.5(測試版)',
|
||||
beta_badge: '測試版',
|
||||
beta_tooltip: '測試版主控台版面 — 可選;經典介面仍為預設。'
|
||||
}
|
||||
};
|
||||
|
||||
for (const file of fs.readdirSync(dir).filter((f) => f.endsWith('.json'))) {
|
||||
const code = file.replace('.json', '');
|
||||
const p = path.join(dir, file);
|
||||
const j = JSON.parse(fs.readFileSync(p, 'utf8'));
|
||||
const t = translations[code] || translations.en;
|
||||
if (!j.ux35) j.ux35 = {};
|
||||
j.ux35.switch_to_ux35 = t.switch_to_ux35;
|
||||
j.ux35.beta_badge = t.beta_badge;
|
||||
j.ux35.beta_tooltip = t.beta_tooltip;
|
||||
fs.writeFileSync(p, JSON.stringify(j, null, 4) + '\n');
|
||||
console.log('updated', code);
|
||||
}
|
||||
@@ -8,107 +8,107 @@ const dir = path.join(__dirname, '..', 'lang');
|
||||
|
||||
const translations = {
|
||||
en: {
|
||||
switch_to_ux35: 'Switch to UX 3.5',
|
||||
switch_to_ux35: 'Switch to UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Switch to classic UI'
|
||||
},
|
||||
ar: {
|
||||
switch_to_ux35: 'التبديل إلى UX 3.5',
|
||||
switch_to_ux35: 'التبديل إلى UX 3.5 (تجريبي)',
|
||||
switch_to_classic: 'التبديل إلى الواجهة الكلاسيكية'
|
||||
},
|
||||
cs: {
|
||||
switch_to_ux35: 'Přepnout na UX 3.5',
|
||||
switch_to_ux35: 'Přepnout na UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Přepnout na klasické rozhraní'
|
||||
},
|
||||
da: {
|
||||
switch_to_ux35: 'Skift til UX 3.5',
|
||||
switch_to_ux35: 'Skift til UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Skift til klassisk UI'
|
||||
},
|
||||
de: {
|
||||
switch_to_ux35: 'Zu UX 3.5 wechseln',
|
||||
switch_to_ux35: 'Zu UX 3.5 wechseln (Beta)',
|
||||
switch_to_classic: 'Zur klassischen Oberfläche wechseln'
|
||||
},
|
||||
es: {
|
||||
switch_to_ux35: 'Cambiar a UX 3.5',
|
||||
switch_to_ux35: 'Cambiar a UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Cambiar a la interfaz clásica'
|
||||
},
|
||||
fi: {
|
||||
switch_to_ux35: 'Vaihda UX 3.5 -tilaan',
|
||||
switch_to_ux35: 'Vaihda UX 3.5 -tilaan (Beta)',
|
||||
switch_to_classic: 'Vaihda klassiseen käyttöliittymään'
|
||||
},
|
||||
fr: {
|
||||
switch_to_ux35: 'Passer à UX 3.5',
|
||||
switch_to_ux35: 'Passer à UX 3.5 (Bêta)',
|
||||
switch_to_classic: 'Passer à l’interface classique'
|
||||
},
|
||||
hi: {
|
||||
switch_to_ux35: 'UX 3.5 पर स्विच करें',
|
||||
switch_to_ux35: 'UX 3.5 पर स्विच करें (बीटा)',
|
||||
switch_to_classic: 'क्लासिक UI पर स्विच करें'
|
||||
},
|
||||
hu: {
|
||||
switch_to_ux35: 'Váltás UX 3.5-re',
|
||||
switch_to_ux35: 'Váltás UX 3.5-re (Béta)',
|
||||
switch_to_classic: 'Váltás klasszikus felületre'
|
||||
},
|
||||
id: {
|
||||
switch_to_ux35: 'Beralih ke UX 3.5',
|
||||
switch_to_ux35: 'Beralih ke UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Beralih ke UI klasik'
|
||||
},
|
||||
it: {
|
||||
switch_to_ux35: 'Passa a UX 3.5',
|
||||
switch_to_ux35: 'Passa a UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Passa all’interfaccia classica'
|
||||
},
|
||||
ja: {
|
||||
switch_to_ux35: 'UX 3.5 に切り替え',
|
||||
switch_to_ux35: 'UX 3.5 に切り替え(ベータ)',
|
||||
switch_to_classic: 'クラシック UI に切り替え'
|
||||
},
|
||||
ko: {
|
||||
switch_to_ux35: 'UX 3.5로 전환',
|
||||
switch_to_ux35: 'UX 3.5로 전환 (베타)',
|
||||
switch_to_classic: '클래식 UI로 전환'
|
||||
},
|
||||
nb: {
|
||||
switch_to_ux35: 'Bytt til UX 3.5',
|
||||
switch_to_ux35: 'Bytt til UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Bytt til klassisk UI'
|
||||
},
|
||||
nl: {
|
||||
switch_to_ux35: 'Overschakelen naar UX 3.5',
|
||||
switch_to_ux35: 'Overschakelen naar UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Overschakelen naar klassieke UI'
|
||||
},
|
||||
pl: {
|
||||
switch_to_ux35: 'Przełącz na UX 3.5',
|
||||
switch_to_ux35: 'Przełącz na UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Przełącz na klasyczny interfejs'
|
||||
},
|
||||
pt: {
|
||||
switch_to_ux35: 'Mudar para UX 3.5',
|
||||
switch_to_ux35: 'Mudar para UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Mudar para a interface clássica'
|
||||
},
|
||||
ro: {
|
||||
switch_to_ux35: 'Comutați la UX 3.5',
|
||||
switch_to_ux35: 'Comutați la UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Comutați la interfața clasică'
|
||||
},
|
||||
sv: {
|
||||
switch_to_ux35: 'Växla till UX 3.5',
|
||||
switch_to_ux35: 'Växla till UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Växla till klassiskt gränssnitt'
|
||||
},
|
||||
th: {
|
||||
switch_to_ux35: 'สลับไป UX 3.5',
|
||||
switch_to_ux35: 'สลับไป UX 3.5 (เบต้า)',
|
||||
switch_to_classic: 'สลับไป UI คลาสสิก'
|
||||
},
|
||||
tr: {
|
||||
switch_to_ux35: 'UX 3.5’e geç',
|
||||
switch_to_ux35: 'UX 3.5’e geç (Beta)',
|
||||
switch_to_classic: 'Klasik arayüze geç'
|
||||
},
|
||||
uk: {
|
||||
switch_to_ux35: 'Перемкнути на UX 3.5',
|
||||
switch_to_ux35: 'Перемкнути на UX 3.5 (Бета)',
|
||||
switch_to_classic: 'Перемкнути на класичний інтерфейс'
|
||||
},
|
||||
vi: {
|
||||
switch_to_ux35: 'Chuyển sang UX 3.5',
|
||||
switch_to_ux35: 'Chuyển sang UX 3.5 (Beta)',
|
||||
switch_to_classic: 'Chuyển sang giao diện cổ điển'
|
||||
},
|
||||
zh: {
|
||||
switch_to_ux35: '切换到 UX 3.5',
|
||||
switch_to_ux35: '切换到 UX 3.5(测试版)',
|
||||
switch_to_classic: '切换到经典界面'
|
||||
},
|
||||
'zh-TW': {
|
||||
switch_to_ux35: '切換至 UX 3.5',
|
||||
switch_to_ux35: '切換至 UX 3.5(測試版)',
|
||||
switch_to_classic: '切換至經典介面'
|
||||
}
|
||||
};
|
||||
|
||||
@@ -31,11 +31,12 @@
|
||||
</div>
|
||||
|
||||
<div class="navbar-right">
|
||||
<!-- UI shell: switch to UX 3.5 -->
|
||||
<button type="button" class="navbar-btn" id="ui-shell-switch-btn" data-ui-shell-switch="ux35"
|
||||
title="<%= _('ux35.switch_to_ux35') || 'Switch to UX 3.5' %>"
|
||||
aria-label="<%= _('ux35.switch_to_ux35') || 'Switch to UX 3.5' %>">
|
||||
<!-- UI shell: optional UX 3.5 (Beta) — classic remains default -->
|
||||
<button type="button" class="navbar-btn navbar-btn--shell-beta" id="ui-shell-switch-btn" data-ui-shell-switch="ux35"
|
||||
title="<%= _('ux35.switch_to_ux35') || 'Switch to UX 3.5 (Beta)' %>"
|
||||
aria-label="<%= _('ux35.switch_to_ux35') || 'Switch to UX 3.5 (Beta)' %>">
|
||||
<span class="material-icons">view_sidebar</span>
|
||||
<span class="ui-shell-beta-badge" title="<%= _('ux35.beta_tooltip') || 'Beta console layout — optional; classic UI remains the default.' %>"><%= _('ux35.beta_badge') || 'BETA' %></span>
|
||||
</button>
|
||||
|
||||
<!-- Refresh button -->
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
<span><%= appName %></span>
|
||||
<% } %>
|
||||
</a>
|
||||
<span class="ux35-beta-chip" title="<%= _('ux35.beta_tooltip') || 'Beta console layout — optional; classic UI remains the default.' %>"><%= _('ux35.beta_badge') || 'BETA' %></span>
|
||||
|
||||
<nav class="ux35-topbar-breadcrumb" aria-label="Breadcrumb">
|
||||
<a href="/"><%= _('nav.dashboard') %></a>
|
||||
|
||||
Reference in New Issue
Block a user