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": "Noklusējuma lietotnes",
"description": "Izvēlieties, vai e-pasta un kalendāra saites atvērt Bulwark. Tehniski Bulwark reģistrējas kā protokola apstrādātājs mailto: un webcal: saitēm.",
"description": "Izvēlieties, vai e-pasta un kalendāra saites atvērt VNCmail+. Tehniski VNCmail+ reģistrējas kā protokola apstrādātājs mailto: un webcal: saitēm.",
"unsupported": "Šī pārlūkprogramma vai savienojums neatbalsta manuālu protokola apstrādātāja reģistrāciju. Iespējams, instalēto PWA joprojām var izmantot pārlūkprogrammas vai sistēmas iestatījumos.",
"mailto_label": "E-pasta saites",
"mailto_description": "Atver mailto: saites Bulwark ar iepriekš aizpildītu ziņojuma redaktoru.",
"mailto_description": "Atver mailto: saites VNCmail+ ar iepriekš aizpildītu ziņojuma redaktoru.",
"protocol_open_mode_label": "Atverot protokola saites",
"protocol_open_mode_description": "Izvēlieties, vai Bulwark atver mailto: un webcal: saites jaunā cilnē vai atkārtoti izmanto atvērtu sesiju. Aktīvās sesijas opcijai nepieciešama paziņojumu atļauja, lai jūs varētu noklikšķināt uz rezerves paziņojuma un izcelt Bulwark priekšplānā, ja pārlūkprogramma bloķē fokusu.",
"protocol_open_mode_description": "Izvēlieties, vai VNCmail+ atver mailto: un webcal: saites jaunā cilnē vai atkārtoti izmanto atvērtu sesiju. Aktīvās sesijas opcijai nepieciešama paziņojumu atļauja, lai jūs varētu noklikšķināt uz rezerves paziņojuma un izcelt VNCmail+ priekšplānā, ja pārlūkprogramma bloķē fokusu.",
"protocol_open_mode_active_session": "Ja iespējams, atvērt aktīvajā sesijā",
"protocol_open_mode_new_tab": "Vienmēr atvērt jaunu cilni",
"focus_notification_title": "Atvērt Bulwark",
"focus_notification_body": "Saite tika atvērta Bulwark. Noklikšķiniet, lai izceltu logu priekšplānā.",
"focus_notification_title": "Atvērt VNCmail+",
"focus_notification_body": "Saite tika atvērta VNCmail+. Noklikšķiniet, lai izceltu logu priekšplānā.",
"webcal_label": "Kalendāra saites",
"webcal_description": "Atver webcal: saites Bulwark ar iepriekš aizpildītu kalendāra abonēšanas dialogu.",
"webcal_description": "Atver webcal: saites VNCmail+ ar iepriekš aizpildītu kalendāra abonēšanas dialogu.",
"register_mailto": "Reģistrēt e-pasta lietotni",
"register_webcal": "Reģistrēt kalendāra lietotni",
"mailto_registered": "E-pasta apstrādātāja reģistrācija pieprasīta",
@@ -165,7 +165,7 @@
"registration_failed": "Protokola apstrādātāja reģistrācija neizdevās",
"opening_mailto": "Tiek atvērts redaktors...",
"opening_webcal": "Tiek atvērts kalendārs...",
"browser_note": "Pārlūkprogramma vai operētājsistēma var lūgt apstiprinājumu un var prasīt, lai Bulwark būtu instalēts, pirms to var izvēlēties kā noklusējuma lietotni.",
"browser_note": "Pārlūkprogramma vai operētājsistēma var lūgt apstiprinājumu un var prasīt, lai VNCmail+ būtu instalēts, pirms to var izvēlēties kā noklusējuma lietotni.",
"select_account_title": "Izvēlieties kontu",
"select_mailto_account": "Izvēlieties, kurā kontā atvērt šo e-pasta saiti.",
"select_webcal_account": "Izvēlieties, kurā kontā atvērt šo kalendāra saiti.",
@@ -738,9 +738,9 @@
"app_title": "Tīmekļa pasts",
"reconnecting": "Savienojums pārtraukts. Mēģina izveidot savienojumu...",
"rate_limited_title": "Autentifikācija serverī ir īslaicīgi ierobežota.",
"rate_limited_detail": "Bulwark ir apturējis fonā veiktos pieprasījumus, lai izvairītos no bloķēšanas. Mēģinās vēlreiz pēc {seconds} s.",
"rate_limited_detail": "VNCmail+ ir apturējis fonā veiktos pieprasījumus, lai izvairītos no bloķēšanas. Mēģinās vēlreiz pēc {seconds} s.",
"rate_limited_action_title": "Pieprasījums apturēts, lai izvairītos no bloķēšanas.",
"rate_limited_action_detail": "Bulwark gaida servera noildzes beigas pirms jaunu autentificētu pieprasījumu sūtīšanas. Mēģiniet vēlreiz pēc {seconds} s."
"rate_limited_action_detail": "VNCmail+ gaida servera noildzes beigas pirms jaunu autentificētu pieprasījumu sūtīšanas. Mēģiniet vēlreiz pēc {seconds} s."
},
"notifications": {
"email_sent": "Vēstule veiksmīgi nosūtīta",
@@ -1074,12 +1074,12 @@
"push": {
"confirm_disable_message": "Šī ierīce vairs nesaņems brīdinājumus, kad vietne būs aizvērta.",
"confirm_disable_title": "Atspējot fona paziņojumus?",
"description": "Saņem sistēmas paziņojumus par jaunu pastu, kad šī vietne ir aizvērta. Piegādāts caur Bulwark push releju; relejs nekad neredz pasta saturu.",
"description": "Saņem sistēmas paziņojumus par jaunu pastu, kad šī vietne ir aizvērta. Piegādāts caur VNCmail+ push releju; relejs nekad neredz pasta saturu.",
"disable": "Atspējot",
"enable": "Iespējot",
"ios_hint": "Operētājsistēmā iOS vispirms instalējiet vietni sākuma ekrānā Safari piegādā Web Push tikai instalētajām PWA.",
"reenable": "Reģistrēt vēlreiz",
"relay_desc": "Pēc noklusējuma izmanto izmitināto Bulwark releju. Mainiet tikai tad, ja izmitināt pats.",
"relay_desc": "Pēc noklusējuma izmanto izmitināto VNCmail+ releju. Mainiet tikai tad, ja izmitināt pats.",
"relay_label": "Push relejs",
"relay_locked": "Iestatījis administrators",
"relay_locked_desc": "Push releja URL ir iestatījis administrators, un to nevar mainīt.",
@@ -1528,10 +1528,10 @@
},
"link_device": {
"title": "Saistīt mobilo lietotni",
"description": "Pierakstieties Bulwark Mail mobilajā lietotnē, neko nerakstot. Šeit izveidojiet QR kodu un noskenējiet to lietotnes pierakstīšanās ekrānā.",
"description": "Pierakstieties VNCmail+ mobilajā lietotnē, neko nerakstot. Šeit izveidojiet QR kodu un noskenējiet to lietotnes pierakstīšanās ekrānā.",
"generate": "Rādīt QR kodu",
"regenerate": "Rādīt jaunu kodu",
"instructions": "Atveriet Bulwark Mail lietotni, pierakstīšanās ekrānā pieskarieties \"Skenēt QR kodu\" un pavērsiet kameru šeit.",
"instructions": "Atveriet VNCmail+ lietotni, pierakstīšanās ekrānā pieskarieties \"Skenēt QR kodu\" un pavērsiet kameru šeit.",
"expires_in": "Šī koda derīgums beigsies pēc {seconds} sekundēm. To var izmantot tikai vienu reizi.",
"expired": "Šī koda derīgums ir beidzies.",
"generating": "Ģenerē…",
@@ -1706,7 +1706,7 @@
"contacts_description": "Kontaktu sinhronizācija, adrešu grāmatu darbības un uzticamie sūtītāji"
},
"about": {
"title": "Bulwark Webmail"
"title": "VNCmail+"
}
},
"sidebar_apps": {
@@ -3032,7 +3032,7 @@
"start_tour": "Sākt ekskursiju"
},
"demo_welcome": {
"title": "Laipni lūdzam Bulwark Mail",
"title": "Laipni lūdzam VNCmail+",
"description": "Atklājiet pilnvērtīgu tīmekļa e-pasta klientu tieši pārlūkā. Visi dati tiek glabāti jūsu ierīcē.",
"feature_email": "Vēstuļu lasīšana un rakstīšana",
"feature_organize": "Etiķetes, zvaigznītes un mapes",