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:
+16
-16
@@ -146,18 +146,18 @@
|
||||
},
|
||||
"protocol_handlers": {
|
||||
"title": "Default apps",
|
||||
"description": "Choose whether email and calendar links open in Bulwark. Technically, Bulwark registers as a protocol handler for mailto: and webcal: links.",
|
||||
"description": "Choose whether email and calendar links open in VNCmail+. Technically, VNCmail+ registers as a protocol handler for mailto: and webcal: links.",
|
||||
"unsupported": "This browser or connection does not support manual protocol-handler registration. You may still be able to use the installed PWA via browser or OS settings.",
|
||||
"mailto_label": "Email links",
|
||||
"mailto_description": "Open mailto: links in Bulwark with a prefilled composer.",
|
||||
"mailto_description": "Open mailto: links in VNCmail+ with a prefilled composer.",
|
||||
"protocol_open_mode_label": "When opening protocol links",
|
||||
"protocol_open_mode_description": "Choose whether Bulwark opens mailto: and webcal: links in a new tab or reuses an open session. The active-session option needs notification permission so you can click a fallback notification to bring Bulwark to the front if the browser blocks focus.",
|
||||
"protocol_open_mode_description": "Choose whether VNCmail+ opens mailto: and webcal: links in a new tab or reuses an open session. The active-session option needs notification permission so you can click a fallback notification to bring VNCmail+ to the front if the browser blocks focus.",
|
||||
"protocol_open_mode_active_session": "Open in active session if possible",
|
||||
"protocol_open_mode_new_tab": "Always open a new tab",
|
||||
"focus_notification_title": "Open Bulwark",
|
||||
"focus_notification_body": "The link was opened in Bulwark. Click to bring the window to the front.",
|
||||
"focus_notification_title": "Open VNCmail+",
|
||||
"focus_notification_body": "The link was opened in VNCmail+. Click to bring the window to the front.",
|
||||
"webcal_label": "Calendar links",
|
||||
"webcal_description": "Open webcal: links in Bulwark with a prefilled calendar subscription dialog.",
|
||||
"webcal_description": "Open webcal: links in VNCmail+ with a prefilled calendar subscription dialog.",
|
||||
"register_mailto": "Register email app",
|
||||
"register_webcal": "Register calendar app",
|
||||
"mailto_registered": "Email handler registration requested",
|
||||
@@ -165,7 +165,7 @@
|
||||
"registration_failed": "Protocol handler registration failed",
|
||||
"opening_mailto": "Opening composer...",
|
||||
"opening_webcal": "Opening calendar...",
|
||||
"browser_note": "Your browser or operating system may ask you to confirm this and may require Bulwark to be installed before it can be selected as the default app.",
|
||||
"browser_note": "Your browser or operating system may ask you to confirm this and may require VNCmail+ to be installed before it can be selected as the default app.",
|
||||
"select_account_title": "Choose account",
|
||||
"select_mailto_account": "Choose which account should open this email link.",
|
||||
"select_webcal_account": "Choose which account should open this calendar link.",
|
||||
@@ -738,9 +738,9 @@
|
||||
"app_title": "Webmail",
|
||||
"reconnecting": "Connection lost. Attempting to reconnect…",
|
||||
"rate_limited_title": "Server authentication is temporarily rate limited.",
|
||||
"rate_limited_detail": "Bulwark has paused background requests to avoid lockout. Retrying in {seconds}s.",
|
||||
"rate_limited_detail": "VNCmail+ has paused background requests to avoid lockout. Retrying in {seconds}s.",
|
||||
"rate_limited_action_title": "Request paused to avoid lockout.",
|
||||
"rate_limited_action_detail": "Bulwark is waiting for the server cooldown to end before sending more authenticated requests. Try again in {seconds}s."
|
||||
"rate_limited_action_detail": "VNCmail+ is waiting for the server cooldown to end before sending more authenticated requests. Try again in {seconds}s."
|
||||
},
|
||||
"notifications": {
|
||||
"email_sent": "Email sent successfully",
|
||||
@@ -1052,9 +1052,9 @@
|
||||
},
|
||||
"push": {
|
||||
"title": "Background Notifications",
|
||||
"description": "Receive system notifications for new mail when this site is closed. Delivered via the Bulwark push relay; the relay never sees mail content.",
|
||||
"description": "Receive system notifications for new mail when this site is closed. Delivered via the VNCmail+ push relay; the relay never sees mail content.",
|
||||
"relay_label": "Push relay",
|
||||
"relay_desc": "Defaults to the hosted Bulwark relay. Change only if you self-host.",
|
||||
"relay_desc": "Defaults to the hosted VNCmail+ relay. Change only if you self-host.",
|
||||
"relay_locked": "Set by administrator",
|
||||
"relay_locked_desc": "The push relay URL has been set by your administrator and cannot be changed.",
|
||||
"relay_placeholder": "https://notifications.relay.example.com",
|
||||
@@ -1535,10 +1535,10 @@
|
||||
},
|
||||
"link_device": {
|
||||
"title": "Link Mobile App",
|
||||
"description": "Sign in to the Bulwark Mail mobile app without typing anything. Generate a QR code here and scan it from the app's login screen.",
|
||||
"description": "Sign in to the VNCmail+ mobile app without typing anything. Generate a QR code here and scan it from the app's login screen.",
|
||||
"generate": "Show QR code",
|
||||
"regenerate": "Show a new code",
|
||||
"instructions": "Open the Bulwark Mail app, tap \"Scan QR code\" on the login screen, and point your camera here.",
|
||||
"instructions": "Open the VNCmail+ app, tap \"Scan QR code\" on the login screen, and point your camera here.",
|
||||
"expires_in": "This code expires in {seconds} seconds. It can only be used once.",
|
||||
"expired": "This code has expired.",
|
||||
"generating": "Generating…",
|
||||
@@ -1694,7 +1694,7 @@
|
||||
},
|
||||
"refresh_cache": {
|
||||
"label": "Refresh cached data",
|
||||
"description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions \u2014 fixes a stale or wrong view without signing out.",
|
||||
"description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.",
|
||||
"button": "Refresh"
|
||||
},
|
||||
"reset_settings": {
|
||||
@@ -1713,7 +1713,7 @@
|
||||
"button": "Import"
|
||||
},
|
||||
"about": {
|
||||
"title": "Bulwark Webmail"
|
||||
"title": "VNCmail+"
|
||||
}
|
||||
},
|
||||
"sidebar_apps": {
|
||||
@@ -3055,7 +3055,7 @@
|
||||
"start_tour": "Start Tour"
|
||||
},
|
||||
"demo_welcome": {
|
||||
"title": "Welcome to Bulwark Mail",
|
||||
"title": "Welcome to VNCmail+",
|
||||
"description": "Explore a fully-featured webmail client - right in your browser. All data stays on your device, so feel free to test everything.",
|
||||
"feature_email": "Read & compose email",
|
||||
"feature_organize": "Tags, stars & folders",
|
||||
|
||||
Reference in New Issue
Block a user