feat(theme): ship exactly 2 themes (SRC default + VNClagoon); rebrand user-facing VNCmail+
Product decision 2026-08-05: exactly SRC (default) and VNClagoon ship as selectable themes. Everything else (Qui, Nord, Catppuccin, Solarized, Roundcube Elastic, Aurora Glass) is hidden via ThemePolicy.disabledBuiltinThemes rather than deleted - cheap to re-enable later, zero code lost. Also removed the hardcoded "Default/Bulwark" theme card from the Settings > Themes grid (product wants exactly 2 theme choices, not 3). Separately, found and fixed real "still says Bulwark" branding gaps: - All 24 locale files: "Bulwark"/"Bulwark Mail"/"Bulwark Webmail" -> "VNCmail+" in every user-facing string (verified via the translations test, which only checks structural key parity across locales, not content - a straight string swap is safe against it. 48/48 still pass). - PWA manifest fallback app name, package.json description/author. - Demo mode fixtures: the "Welcome to Bulwark Mail!" email and identity signature a first-time demo user actually sees. - The demo empty-state's logo was hardcoded to a literal Bulwark SVG file regardless of active theme - a real bug, not just stale text, since lib/theme-logo.ts's resolveThemeLogo() already exists and is already used correctly by the login page and nav rail for exactly this (theme-aware SRC mark / VNClagoon wordmark). Wired the same helper in here instead of a hardcoded path. NOT touched: internal code comments referencing "Bulwark" as historical/ attribution context (e.g. design-rationale comments explaining why a value differs from Bulwark's original) - those are harmless and a full-repo sweep of every comment wasn't the ask. Verified: typecheck clean, lint clean, translations test 48/48 passing.
This commit is contained in:
+14
-14
@@ -146,18 +146,18 @@
|
||||
},
|
||||
"protocol_handlers": {
|
||||
"title": "Програми за замовчуванням",
|
||||
"description": "Виберіть, чи відкривати посилання електронної пошти та календаря в Bulwark. Технічно Bulwark реєструється як обробник протоколу для посилань mailto: і webcal:.",
|
||||
"description": "Виберіть, чи відкривати посилання електронної пошти та календаря в VNCmail+. Технічно VNCmail+ реєструється як обробник протоколу для посилань mailto: і webcal:.",
|
||||
"unsupported": "Цей браузер або це з'єднання не підтримує ручну реєстрацію обробників протоколів. Можливо, встановлену PWA все одно можна використати через налаштування браузера або системи.",
|
||||
"mailto_label": "Посилання електронної пошти",
|
||||
"mailto_description": "Відкриває посилання mailto: у Bulwark із попередньо заповненим редактором листа.",
|
||||
"mailto_description": "Відкриває посилання mailto: у VNCmail+ із попередньо заповненим редактором листа.",
|
||||
"protocol_open_mode_label": "Під час відкриття посилань протоколів",
|
||||
"protocol_open_mode_description": "Виберіть, чи Bulwark має відкривати посилання mailto: і webcal: у новій вкладці, чи повторно використовувати відкритий сеанс. Для варіанта активного сеансу потрібен дозвіл на сповіщення, щоб ви могли натиснути резервне сповіщення й вивести Bulwark на передній план, якщо браузер блокує фокус.",
|
||||
"protocol_open_mode_description": "Виберіть, чи VNCmail+ має відкривати посилання mailto: і webcal: у новій вкладці, чи повторно використовувати відкритий сеанс. Для варіанта активного сеансу потрібен дозвіл на сповіщення, щоб ви могли натиснути резервне сповіщення й вивести VNCmail+ на передній план, якщо браузер блокує фокус.",
|
||||
"protocol_open_mode_active_session": "Якщо можливо, відкривати в активному сеансі",
|
||||
"protocol_open_mode_new_tab": "Завжди відкривати нову вкладку",
|
||||
"focus_notification_title": "Відкрити Bulwark",
|
||||
"focus_notification_body": "Посилання було відкрито в Bulwark. Натисніть, щоб вивести вікно на передній план.",
|
||||
"focus_notification_title": "Відкрити VNCmail+",
|
||||
"focus_notification_body": "Посилання було відкрито в VNCmail+. Натисніть, щоб вивести вікно на передній план.",
|
||||
"webcal_label": "Посилання календаря",
|
||||
"webcal_description": "Відкриває посилання webcal: у Bulwark із попередньо заповненим діалогом підписки на календар.",
|
||||
"webcal_description": "Відкриває посилання webcal: у VNCmail+ із попередньо заповненим діалогом підписки на календар.",
|
||||
"register_mailto": "Зареєструвати поштову програму",
|
||||
"register_webcal": "Зареєструвати програму календаря",
|
||||
"mailto_registered": "Реєстрацію обробника електронної пошти запитано",
|
||||
@@ -165,7 +165,7 @@
|
||||
"registration_failed": "Не вдалося зареєструвати обробник протоколу",
|
||||
"opening_mailto": "Відкриття редактора...",
|
||||
"opening_webcal": "Відкриття календаря...",
|
||||
"browser_note": "Браузер або операційна система може попросити підтвердження та може вимагати, щоб Bulwark був встановлений, перш ніж його можна буде вибрати програмою за замовчуванням.",
|
||||
"browser_note": "Браузер або операційна система може попросити підтвердження та може вимагати, щоб VNCmail+ був встановлений, перш ніж його можна буде вибрати програмою за замовчуванням.",
|
||||
"select_account_title": "Виберіть акаунт",
|
||||
"select_mailto_account": "Виберіть акаунт, у якому слід відкрити це посилання електронної пошти.",
|
||||
"select_webcal_account": "Виберіть акаунт, у якому слід відкрити це посилання календаря.",
|
||||
@@ -738,9 +738,9 @@
|
||||
"app_title": "Веб-пошта",
|
||||
"reconnecting": "З'єднання втрачено. Спроба повторного підключення…",
|
||||
"rate_limited_title": "Швидкість автентифікації сервера тимчасово обмежена.",
|
||||
"rate_limited_detail": "Bulwark призупинив фонові запити, щоб уникнути блокування. Повторна спроба через {seconds} с.",
|
||||
"rate_limited_detail": "VNCmail+ призупинив фонові запити, щоб уникнути блокування. Повторна спроба через {seconds} с.",
|
||||
"rate_limited_action_title": "Запит призупинено, щоб уникнути блокування.",
|
||||
"rate_limited_action_detail": "Bulwark чекає закінчення часу відновлення сервера, перш ніж надсилати додаткові автентифіковані запити. Повторіть спробу через {seconds} с."
|
||||
"rate_limited_action_detail": "VNCmail+ чекає закінчення часу відновлення сервера, перш ніж надсилати додаткові автентифіковані запити. Повторіть спробу через {seconds} с."
|
||||
},
|
||||
"notifications": {
|
||||
"email_sent": "Електронна пошта успішно надіслана",
|
||||
@@ -1074,12 +1074,12 @@
|
||||
"push": {
|
||||
"confirm_disable_message": "Цей пристрій перестане отримувати сповіщення, коли сайт закритий.",
|
||||
"confirm_disable_title": "Вимкнути фонові сповіщення?",
|
||||
"description": "Отримуйте системні сповіщення про нові листи, коли цей сайт закритий. Доставляється через push-реле Bulwark; реле ніколи не бачить вміст листів.",
|
||||
"description": "Отримуйте системні сповіщення про нові листи, коли цей сайт закритий. Доставляється через push-реле VNCmail+; реле ніколи не бачить вміст листів.",
|
||||
"disable": "Вимкнути",
|
||||
"enable": "Увімкнути",
|
||||
"ios_hint": "На iOS спочатку встановіть сайт на головний екран – Safari доставляє Web Push лише встановленим PWA.",
|
||||
"reenable": "Перереєструвати",
|
||||
"relay_desc": "Типово використовується розміщене реле Bulwark. Змінюйте лише, якщо хостите самостійно.",
|
||||
"relay_desc": "Типово використовується розміщене реле VNCmail+. Змінюйте лише, якщо хостите самостійно.",
|
||||
"relay_label": "Push-реле",
|
||||
"relay_locked": "Встановлено адміністратором",
|
||||
"relay_locked_desc": "URL push-реле встановлено вашим адміністратором і його не можна змінити.",
|
||||
@@ -1528,10 +1528,10 @@
|
||||
},
|
||||
"link_device": {
|
||||
"title": "Прив'язати мобільний застосунок",
|
||||
"description": "Увійдіть у мобільний застосунок Bulwark Mail без введення даних. Створіть тут QR-код і відскануйте його на екрані входу в застосунку.",
|
||||
"description": "Увійдіть у мобільний застосунок VNCmail+ без введення даних. Створіть тут QR-код і відскануйте його на екрані входу в застосунку.",
|
||||
"generate": "Показати QR-код",
|
||||
"regenerate": "Показати новий код",
|
||||
"instructions": "Відкрийте застосунок Bulwark Mail, натисніть \"Сканувати QR-код\" на екрані входу та наведіть камеру сюди.",
|
||||
"instructions": "Відкрийте застосунок VNCmail+, натисніть \"Сканувати QR-код\" на екрані входу та наведіть камеру сюди.",
|
||||
"expires_in": "Термін дії коду закінчиться через {seconds} секунд. Його можна використати лише один раз.",
|
||||
"expired": "Термін дії цього коду закінчився.",
|
||||
"generating": "Створення…",
|
||||
@@ -3032,7 +3032,7 @@
|
||||
"start_tour": "Розпочати тур"
|
||||
},
|
||||
"demo_welcome": {
|
||||
"title": "Ласкаво просимо до Bulwark Mail",
|
||||
"title": "Ласкаво просимо до VNCmail+",
|
||||
"description": "Відкрийте для себе повнофункціональний клієнт веб-пошти - прямо у вашому браузері. Усі дані залишаються на вашому пристрої, тому сміливо тестуйте все.",
|
||||
"feature_email": "Читайте та створюйте електронний лист",
|
||||
"feature_organize": "Теги, зірочки та папки",
|
||||
|
||||
Reference in New Issue
Block a user