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:
+15
-15
@@ -146,18 +146,18 @@
|
||||
},
|
||||
"protocol_handlers": {
|
||||
"title": "Aplicaciones predeterminadas",
|
||||
"description": "Elige si los enlaces de correo y calendario se abren en Bulwark. Técnicamente, Bulwark se registra como controlador de protocolo para enlaces mailto: y webcal:.",
|
||||
"description": "Elige si los enlaces de correo y calendario se abren en VNCmail+. Técnicamente, VNCmail+ se registra como controlador de protocolo para enlaces mailto: y webcal:.",
|
||||
"unsupported": "Este navegador o esta conexión no admite el registro manual de controladores de protocolo. Es posible que aún puedas usar la PWA instalada desde la configuración del navegador o del sistema.",
|
||||
"mailto_label": "Enlaces de correo",
|
||||
"mailto_description": "Abre enlaces mailto: en Bulwark con el redactor rellenado previamente.",
|
||||
"mailto_description": "Abre enlaces mailto: en VNCmail+ con el redactor rellenado previamente.",
|
||||
"protocol_open_mode_label": "Al abrir enlaces de protocolo",
|
||||
"protocol_open_mode_description": "Elige si Bulwark abre los enlaces mailto: y webcal: en una nueva pestaña o reutiliza una sesión abierta. La opción de sesión activa necesita permiso de notificaciones para que puedas hacer clic en una notificación de respaldo y traer Bulwark al frente si el navegador bloquea el foco.",
|
||||
"protocol_open_mode_description": "Elige si VNCmail+ abre los enlaces mailto: y webcal: en una nueva pestaña o reutiliza una sesión abierta. La opción de sesión activa necesita permiso de notificaciones para que puedas hacer clic en una notificación de respaldo y traer VNCmail+ al frente si el navegador bloquea el foco.",
|
||||
"protocol_open_mode_active_session": "Abrir en la sesión activa si es posible",
|
||||
"protocol_open_mode_new_tab": "Abrir siempre una nueva pestaña",
|
||||
"focus_notification_title": "Abrir Bulwark",
|
||||
"focus_notification_body": "El enlace se abrió en Bulwark. Haz clic para traer la ventana al frente.",
|
||||
"focus_notification_title": "Abrir VNCmail+",
|
||||
"focus_notification_body": "El enlace se abrió en VNCmail+. Haz clic para traer la ventana al frente.",
|
||||
"webcal_label": "Enlaces de calendario",
|
||||
"webcal_description": "Abre enlaces webcal: en Bulwark con un diálogo de suscripción al calendario rellenado previamente.",
|
||||
"webcal_description": "Abre enlaces webcal: en VNCmail+ con un diálogo de suscripción al calendario rellenado previamente.",
|
||||
"register_mailto": "Registrar aplicación de correo",
|
||||
"register_webcal": "Registrar aplicación de calendario",
|
||||
"mailto_registered": "Registro del controlador de correo solicitado",
|
||||
@@ -165,7 +165,7 @@
|
||||
"registration_failed": "No se pudo registrar el controlador de protocolo",
|
||||
"opening_mailto": "Abriendo redactor...",
|
||||
"opening_webcal": "Abriendo calendario...",
|
||||
"browser_note": "Tu navegador o sistema operativo puede pedirte confirmación y puede requerir que Bulwark esté instalado antes de poder seleccionarlo como aplicación predeterminada.",
|
||||
"browser_note": "Tu navegador o sistema operativo puede pedirte confirmación y puede requerir que VNCmail+ esté instalado antes de poder seleccionarlo como aplicación predeterminada.",
|
||||
"select_account_title": "Elegir cuenta",
|
||||
"select_mailto_account": "Elige qué cuenta debe abrir este enlace de correo.",
|
||||
"select_webcal_account": "Elige qué cuenta debe abrir este enlace de calendario.",
|
||||
@@ -738,9 +738,9 @@
|
||||
"app_title": "Correo Web",
|
||||
"reconnecting": "Conexión perdida. Intentando reconectar…",
|
||||
"rate_limited_title": "La autenticación del servidor está limitada temporalmente.",
|
||||
"rate_limited_detail": "Bulwark ha pausado las solicitudes en segundo plano para evitar un bloqueo. Reintentando en {seconds}s.",
|
||||
"rate_limited_detail": "VNCmail+ ha pausado las solicitudes en segundo plano para evitar un bloqueo. Reintentando en {seconds}s.",
|
||||
"rate_limited_action_title": "Solicitud pausada para evitar el bloqueo.",
|
||||
"rate_limited_action_detail": "Bulwark está esperando a que termine el enfriamiento del servidor antes de enviar más solicitudes autenticadas. Inténtalo de nuevo en {seconds}s."
|
||||
"rate_limited_action_detail": "VNCmail+ está esperando a que termine el enfriamiento del servidor antes de enviar más solicitudes autenticadas. Inténtalo de nuevo en {seconds}s."
|
||||
},
|
||||
"notifications": {
|
||||
"email_sent": "Correo enviado exitosamente",
|
||||
@@ -1074,12 +1074,12 @@
|
||||
"push": {
|
||||
"confirm_disable_message": "Este dispositivo dejará de recibir alertas cuando el sitio esté cerrado.",
|
||||
"confirm_disable_title": "¿Desactivar las notificaciones en segundo plano?",
|
||||
"description": "Recibe notificaciones del sistema para correo nuevo cuando este sitio está cerrado. Se entrega a través del relay push de Bulwark; el relay nunca ve el contenido del correo.",
|
||||
"description": "Recibe notificaciones del sistema para correo nuevo cuando este sitio está cerrado. Se entrega a través del relay push de VNCmail+; el relay nunca ve el contenido del correo.",
|
||||
"disable": "Desactivar",
|
||||
"enable": "Activar",
|
||||
"ios_hint": "En iOS, instala primero el sitio en la pantalla de inicio: Safari solo entrega Web Push a PWAs instaladas.",
|
||||
"reenable": "Volver a registrar",
|
||||
"relay_desc": "Usa el relay alojado de Bulwark de forma predeterminada. Cámbialo solo si te alojas tú mismo.",
|
||||
"relay_desc": "Usa el relay alojado de VNCmail+ de forma predeterminada. Cámbialo solo si te alojas tú mismo.",
|
||||
"relay_label": "Relay push",
|
||||
"relay_locked": "Establecido por el administrador",
|
||||
"relay_locked_desc": "La URL del relay push ha sido establecida por tu administrador y no se puede cambiar.",
|
||||
@@ -1528,10 +1528,10 @@
|
||||
},
|
||||
"link_device": {
|
||||
"title": "Vincular aplicación móvil",
|
||||
"description": "Inicie sesión en la aplicación móvil de Bulwark Mail sin escribir nada. Genere un código QR aquí y escanéelo desde la pantalla de inicio de sesión de la aplicación.",
|
||||
"description": "Inicie sesión en la aplicación móvil de VNCmail+ sin escribir nada. Genere un código QR aquí y escanéelo desde la pantalla de inicio de sesión de la aplicación.",
|
||||
"generate": "Mostrar código QR",
|
||||
"regenerate": "Mostrar un código nuevo",
|
||||
"instructions": "Abra la aplicación Bulwark Mail, toque \"Escanear código QR\" en la pantalla de inicio de sesión y apunte su cámara aquí.",
|
||||
"instructions": "Abra la aplicación VNCmail+, toque \"Escanear código QR\" en la pantalla de inicio de sesión y apunte su cámara aquí.",
|
||||
"expires_in": "Este código caduca en {seconds} segundos. Solo se puede usar una vez.",
|
||||
"expired": "Este código ha caducado.",
|
||||
"generating": "Generando…",
|
||||
@@ -1706,7 +1706,7 @@
|
||||
"button": "Importar"
|
||||
},
|
||||
"about": {
|
||||
"title": "Bulwark Webmail"
|
||||
"title": "VNCmail+"
|
||||
}
|
||||
},
|
||||
"sidebar_apps": {
|
||||
@@ -3032,7 +3032,7 @@
|
||||
"start_tour": "Iniciar tour"
|
||||
},
|
||||
"demo_welcome": {
|
||||
"title": "Bienvenido a Bulwark Mail",
|
||||
"title": "Bienvenido a VNCmail+",
|
||||
"description": "Explora un cliente de correo web completo - directamente en tu navegador. Todos los datos quedan en tu dispositivo, así que prueba todo.",
|
||||
"feature_email": "Leer y redactar correos",
|
||||
"feature_organize": "Etiquetas, estrellas y carpetas",
|
||||
|
||||
Reference in New Issue
Block a user