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:
Bernd Rodler
2026-08-05 23:43:19 +02:00
parent 3f99a2fc9e
commit bde9f14832
31 changed files with 416 additions and 404 deletions
+15 -15
View File
@@ -146,18 +146,18 @@
},
"protocol_handlers": {
"title": "Alapértelmezett alkalmazások",
"description": "Válaszd ki, hogy az e-mail és naptár hivatkozások a Bulwarkban nyíljanak meg. Technikailag a Bulwark protokollkezelőként regisztrálja magát a mailto: és webcal: hivatkozásokhoz.",
"description": "Válaszd ki, hogy az e-mail és naptár hivatkozások a VNCmail+ban nyíljanak meg. Technikailag a VNCmail+ protokollkezelőként regisztrálja magát a mailto: és webcal: hivatkozásokhoz.",
"unsupported": "Ez a böngésző vagy kapcsolat nem támogatja a kézi protokollkezelő regisztrációt. Lehetőség lehet a telepített PWA használatára a böngésző vagy operációs rendszer beállításain keresztül.",
"mailto_label": "E-mail hivatkozások",
"mailto_description": "Mailto: hivatkozások megnyitása a Bulwarkban egy előre kitöltött szerkesztővel.",
"mailto_description": "Mailto: hivatkozások megnyitása a VNCmail+ban egy előre kitöltött szerkesztővel.",
"protocol_open_mode_label": "Protokoll hivatkozások megnyitásakor",
"protocol_open_mode_description": "Válaszd ki, hogy a Bulwark a mailto: és webcal: hivatkozásokat új lapon vagy a meglévő munkamenetben nyissa meg. Az aktív munkamenet opcióhoz értesítési engedély szükséges, hogy egy értesítésre kattintva előtérbe hozd a Bulwarkot, ha a böngésző blokkolja a fókuszt.",
"protocol_open_mode_description": "Válaszd ki, hogy a VNCmail+ a mailto: és webcal: hivatkozásokat új lapon vagy a meglévő munkamenetben nyissa meg. Az aktív munkamenet opcióhoz értesítési engedély szükséges, hogy egy értesítésre kattintva előtérbe hozd a VNCmail+ot, ha a böngésző blokkolja a fókuszt.",
"protocol_open_mode_active_session": "Megnyitás aktív munkamenetben, ha lehetséges",
"protocol_open_mode_new_tab": "Mindig új lapon nyisson",
"focus_notification_title": "Bulwark megnyitása",
"focus_notification_body": "A hivatkozás megnyílt a Bulwarkban. Kattints az ablak előtérbe hozásához.",
"focus_notification_title": "VNCmail+ megnyitása",
"focus_notification_body": "A hivatkozás megnyílt a VNCmail+ban. Kattints az ablak előtérbe hozásához.",
"webcal_label": "Naptár hivatkozások",
"webcal_description": "Webcal: hivatkozások megnyitása a Bulwarkban egy előre kitöltött naptárfeliratkozási párbeszédpanellel.",
"webcal_description": "Webcal: hivatkozások megnyitása a VNCmail+ban egy előre kitöltött naptárfeliratkozási párbeszédpanellel.",
"register_mailto": "E-mail alkalmazás regisztrálása",
"register_webcal": "Naptár alkalmazás regisztrálása",
"mailto_registered": "E-mail kezelő regisztráció kérve",
@@ -165,7 +165,7 @@
"registration_failed": "Protokollkezelő regisztráció sikertelen",
"opening_mailto": "Szerkesztő megnyitása...",
"opening_webcal": "Naptár megnyitása...",
"browser_note": "A böngésző vagy operációs rendszered megerősítést kérhet, és előfordulhat, hogy a Bulwarkot telepíteni kell, mielőtt alapértelmezett alkalmazásként kiválasztható.",
"browser_note": "A böngésző vagy operációs rendszered megerősítést kérhet, és előfordulhat, hogy a VNCmail+ot telepíteni kell, mielőtt alapértelmezett alkalmazásként kiválasztható.",
"select_account_title": "Fiók kiválasztása",
"select_mailto_account": "Válaszd ki, melyik fiók nyissa meg ezt az e-mail hivatkozást.",
"select_webcal_account": "Válaszd ki, melyik fiók nyissa meg ezt a naptár hivatkozást.",
@@ -738,9 +738,9 @@
"app_title": "Webmail",
"reconnecting": "Kapcsolat megszakadt. Újracsatlakozás...",
"rate_limited_title": "A szerver hitelesítés átmenetileg korlátozva van.",
"rate_limited_detail": "A Bulwark szüneteltette a háttérkéréseket a lezárás elkerülése érdekében. Újrapróbálkozás {seconds} másodperc múlva.",
"rate_limited_detail": "A VNCmail+ szüneteltette a háttérkéréseket a lezárás elkerülése érdekében. Újrapróbálkozás {seconds} másodperc múlva.",
"rate_limited_action_title": "Kérés szüneteltetve a lezárás elkerülése érdekében.",
"rate_limited_action_detail": "A Bulwark várja a szerver lehűlését, mielőtt további hitelesített kéréseket küldene. Próbáld újra {seconds} másodperc múlva."
"rate_limited_action_detail": "A VNCmail+ várja a szerver lehűlését, mielőtt további hitelesített kéréseket küldene. Próbáld újra {seconds} másodperc múlva."
},
"notifications": {
"email_sent": "E-mail sikeresen elküldve",
@@ -1052,9 +1052,9 @@
},
"push": {
"title": "Háttérértesítések",
"description": "Rendszerértesítések fogadása új levelekről, amikor ez az oldal be van zárva. A Bulwark push relén keresztül kézbesítve; a relay soha nem látja a levél tartalmát.",
"description": "Rendszerértesítések fogadása új levelekről, amikor ez az oldal be van zárva. A VNCmail+ push relén keresztül kézbesítve; a relay soha nem látja a levél tartalmát.",
"relay_label": "Push relé",
"relay_desc": "Alapértelmezés szerint a tárolt Bulwark relay. Csak akkor módosítsd, ha sajátot üzemeltetsz.",
"relay_desc": "Alapértelmezés szerint a tárolt VNCmail+ relay. Csak akkor módosítsd, ha sajátot üzemeltetsz.",
"relay_locked": "Rendszergazda által beállítva",
"relay_locked_desc": "A push relay URL-t a rendszergazda állította be, és nem módosítható.",
"relay_placeholder": "https://notifications.relay.example.com",
@@ -1531,10 +1531,10 @@
},
"link_device": {
"title": "Mobilalkalmazás összekapcsolása",
"description": "Jelentkezz be a Bulwark Mail mobilalkalmazásba gépelés nélkül. Generálj itt egy QR-kódot, és olvasd be az alkalmazás bejelentkezési képernyőjén.",
"description": "Jelentkezz be a VNCmail+ mobilalkalmazásba gépelés nélkül. Generálj itt egy QR-kódot, és olvasd be az alkalmazás bejelentkezési képernyőjén.",
"generate": "QR-kód megjelenítése",
"regenerate": "Új kód megjelenítése",
"instructions": "Nyisd meg a Bulwark Mail alkalmazást, koppints a \"QR-kód beolvasása\" lehetőségre a bejelentkezési képernyőn, és irányítsd ide a kamerát.",
"instructions": "Nyisd meg a VNCmail+ alkalmazást, koppints a \"QR-kód beolvasása\" lehetőségre a bejelentkezési képernyőn, és irányítsd ide a kamerát.",
"expires_in": "Ez a kód {seconds} másodperc múlva lejár. Csak egyszer használható.",
"expired": "Ez a kód lejárt.",
"generating": "Generálás…",
@@ -1709,7 +1709,7 @@
"button": "Importálás"
},
"about": {
"title": "Bulwark Webmail"
"title": "VNCmail+"
}
},
"sidebar_apps": {
@@ -3055,7 +3055,7 @@
"start_tour": "Bemutató indítása"
},
"demo_welcome": {
"title": "Üdvözlünk a Bulwark Mail-ben",
"title": "Üdvözlünk a VNCmail+-ben",
"description": "Fedezz fel egy teljes funkciókkal rendelkező webmail klienst - közvetlenül a böngésződben. Az összes adat az eszközödön marad, nyugodtan tesztelj mindent.",
"feature_email": "E-mailek olvasása és írása",
"feature_organize": "Címkék, csillagok és mappák",