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": "Aplicativos padrão",
|
||||
"description": "Escolha se links de e-mail e calendário devem abrir no Bulwark. Tecnicamente, o Bulwark se registra como manipulador de protocolo para links mailto: e webcal:.",
|
||||
"description": "Escolha se links de e-mail e calendário devem abrir no VNCmail+. Tecnicamente, o VNCmail+ se registra como manipulador de protocolo para links mailto: e webcal:.",
|
||||
"unsupported": "Este navegador ou esta conexão não oferece suporte ao registro manual de manipuladores de protocolo. Talvez você ainda consiga usar o PWA instalado pelas configurações do navegador ou do sistema.",
|
||||
"mailto_label": "Links de e-mail",
|
||||
"mailto_description": "Abre links mailto: no Bulwark com o editor preenchido previamente.",
|
||||
"mailto_description": "Abre links mailto: no VNCmail+ com o editor preenchido previamente.",
|
||||
"protocol_open_mode_label": "Ao abrir links de protocolo",
|
||||
"protocol_open_mode_description": "Escolha se o Bulwark abre links mailto: e webcal: em uma nova guia ou reutiliza uma sessão aberta. A opção de sessão ativa precisa da permissão de notificações para que você possa clicar em uma notificação alternativa e trazer o Bulwark para a frente se o navegador bloquear o foco.",
|
||||
"protocol_open_mode_description": "Escolha se o VNCmail+ abre links mailto: e webcal: em uma nova guia ou reutiliza uma sessão aberta. A opção de sessão ativa precisa da permissão de notificações para que você possa clicar em uma notificação alternativa e trazer o VNCmail+ para a frente se o navegador bloquear o foco.",
|
||||
"protocol_open_mode_active_session": "Abrir na sessão ativa se possível",
|
||||
"protocol_open_mode_new_tab": "Sempre abrir uma nova guia",
|
||||
"focus_notification_title": "Abrir Bulwark",
|
||||
"focus_notification_body": "O link foi aberto no Bulwark. Clique para trazer a janela para a frente.",
|
||||
"focus_notification_title": "Abrir VNCmail+",
|
||||
"focus_notification_body": "O link foi aberto no VNCmail+. Clique para trazer a janela para a frente.",
|
||||
"webcal_label": "Links de calendário",
|
||||
"webcal_description": "Abre links webcal: no Bulwark com uma janela de assinatura de calendário preenchida previamente.",
|
||||
"webcal_description": "Abre links webcal: no VNCmail+ com uma janela de assinatura de calendário preenchida previamente.",
|
||||
"register_mailto": "Registrar aplicativo de e-mail",
|
||||
"register_webcal": "Registrar aplicativo de calendário",
|
||||
"mailto_registered": "Registro do manipulador de e-mail solicitado",
|
||||
@@ -165,7 +165,7 @@
|
||||
"registration_failed": "Falha ao registrar manipulador de protocolo",
|
||||
"opening_mailto": "Abrindo editor...",
|
||||
"opening_webcal": "Abrindo calendário...",
|
||||
"browser_note": "Seu navegador ou sistema operacional pode pedir confirmação e pode exigir que o Bulwark esteja instalado antes de poder ser selecionado como aplicativo padrão.",
|
||||
"browser_note": "Seu navegador ou sistema operacional pode pedir confirmação e pode exigir que o VNCmail+ esteja instalado antes de poder ser selecionado como aplicativo padrão.",
|
||||
"select_account_title": "Escolher conta",
|
||||
"select_mailto_account": "Escolha qual conta deve abrir este link de e-mail.",
|
||||
"select_webcal_account": "Escolha qual conta deve abrir este link de calendário.",
|
||||
@@ -738,9 +738,9 @@
|
||||
"app_title": "Webmail",
|
||||
"reconnecting": "Conexão perdida. Tentando reconectar…",
|
||||
"rate_limited_title": "A autenticação do servidor está temporariamente limitada.",
|
||||
"rate_limited_detail": "O Bulwark pausou as solicitações em segundo plano para evitar bloqueio. Nova tentativa em {seconds}s.",
|
||||
"rate_limited_detail": "O VNCmail+ pausou as solicitações em segundo plano para evitar bloqueio. Nova tentativa em {seconds}s.",
|
||||
"rate_limited_action_title": "Solicitação pausada para evitar bloqueio.",
|
||||
"rate_limited_action_detail": "O Bulwark está aguardando o fim do cooldown do servidor antes de enviar mais solicitações autenticadas. Tente novamente em {seconds}s."
|
||||
"rate_limited_action_detail": "O VNCmail+ está aguardando o fim do cooldown do servidor antes de enviar mais solicitações autenticadas. Tente novamente em {seconds}s."
|
||||
},
|
||||
"notifications": {
|
||||
"email_sent": "E-mail enviado com sucesso",
|
||||
@@ -1074,12 +1074,12 @@
|
||||
"push": {
|
||||
"confirm_disable_message": "Este dispositivo deixará de receber alertas quando o site estiver fechado.",
|
||||
"confirm_disable_title": "Desativar notificações em segundo plano?",
|
||||
"description": "Receba notificações do sistema para novas mensagens quando este site estiver fechado. Entregue através do relay push do Bulwark; o relay nunca vê o conteúdo da mensagem.",
|
||||
"description": "Receba notificações do sistema para novas mensagens quando este site estiver fechado. Entregue através do relay push do VNCmail+; o relay nunca vê o conteúdo da mensagem.",
|
||||
"disable": "Desativar",
|
||||
"enable": "Ativar",
|
||||
"ios_hint": "No iOS, instale o site primeiro na tela inicial – o Safari só entrega Web Push para PWAs instalados.",
|
||||
"reenable": "Registrar novamente",
|
||||
"relay_desc": "Usa o relay Bulwark hospedado por padrão. Altere apenas se você hospedar.",
|
||||
"relay_desc": "Usa o relay VNCmail+ hospedado por padrão. Altere apenas se você hospedar.",
|
||||
"relay_label": "Relay push",
|
||||
"relay_locked": "Definido pelo administrador",
|
||||
"relay_locked_desc": "A URL do relay push foi definida pelo seu administrador e não pode ser alterada.",
|
||||
@@ -1528,10 +1528,10 @@
|
||||
},
|
||||
"link_device": {
|
||||
"title": "Vincular aplicativo móvel",
|
||||
"description": "Entre no aplicativo móvel Bulwark Mail sem digitar nada. Gere um código QR aqui e escaneie-o na tela de login do aplicativo.",
|
||||
"description": "Entre no aplicativo móvel VNCmail+ sem digitar nada. Gere um código QR aqui e escaneie-o na tela de login do aplicativo.",
|
||||
"generate": "Mostrar código QR",
|
||||
"regenerate": "Mostrar um novo código",
|
||||
"instructions": "Abra o aplicativo Bulwark Mail, toque em \"Escanear código QR\" na tela de login e aponte sua câmera para cá.",
|
||||
"instructions": "Abra o aplicativo VNCmail+, toque em \"Escanear código QR\" na tela de login e aponte sua câmera para cá.",
|
||||
"expires_in": "Este código expira em {seconds} segundos. Ele só pode ser usado uma vez.",
|
||||
"expired": "Este código expirou.",
|
||||
"generating": "Gerando…",
|
||||
@@ -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": "Bem-vindo ao Bulwark Mail",
|
||||
"title": "Bem-vindo ao VNCmail+",
|
||||
"description": "Explore um cliente de webmail completo - diretamente no seu navegador. Todos os dados ficam no seu dispositivo, então teste tudo.",
|
||||
"feature_email": "Ler e escrever e-mails",
|
||||
"feature_organize": "Tags, estrelas e pastas",
|
||||
|
||||
Reference in New Issue
Block a user