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:
+14
-14
@@ -703,9 +703,9 @@
|
||||
"app_title": "Webmail",
|
||||
"reconnecting": "החיבור אבד. מנסה להתחבר מחדש...",
|
||||
"rate_limited_title": "אימות השרת מוגבל באופן זמני בקצב.",
|
||||
"rate_limited_detail": "Bulwark השהתה בקשות ברקע כדי למנוע נעילה. מנסה שוב ב-{seconds}s.",
|
||||
"rate_limited_detail": "VNCmail+ השהתה בקשות ברקע כדי למנוע נעילה. מנסה שוב ב-{seconds}s.",
|
||||
"rate_limited_action_title": "הבקשה הושהתה כדי למנוע נעילה.",
|
||||
"rate_limited_action_detail": "Bulwark ממתין עד שקירור השרת יסתיים לפני שליחת בקשות מאומתות יותר. נסה שוב ב-{seconds}s."
|
||||
"rate_limited_action_detail": "VNCmail+ ממתין עד שקירור השרת יסתיים לפני שליחת בקשות מאומתות יותר. נסה שוב ב-{seconds}s."
|
||||
},
|
||||
"notifications": {
|
||||
"email_sent": "האימייל נשלח בהצלחה",
|
||||
@@ -1038,9 +1038,9 @@
|
||||
},
|
||||
"push": {
|
||||
"title": "התראות בדפדפן",
|
||||
"description": "קבל עדכונים מערכת עבור דוא״ל חדש כאשר אתר זה סגור. מסופק דרך ממסר Bulwark; הממסר לא רואה תוכן דוא״ל.",
|
||||
"description": "קבל עדכונים מערכת עבור דוא״ל חדש כאשר אתר זה סגור. מסופק דרך ממסר VNCmail+; הממסר לא רואה תוכן דוא״ל.",
|
||||
"relay_label": "ממסר דחיפה",
|
||||
"relay_desc": "ברירת מחדל של ממסר Bulwark המתורח. שנה רק אם אתה מארח בעצמך.",
|
||||
"relay_desc": "ברירת מחדל של ממסר VNCmail+ המתורח. שנה רק אם אתה מארח בעצמך.",
|
||||
"relay_locked": "הוגדר על ידי מנהל",
|
||||
"relay_locked_desc": "כתובת ממסר הדחיפה הוגדרה על ידי מנהל שלך ולא ניתן לשנות אותה.",
|
||||
"relay_placeholder": "https://notifications.relay.example.com",
|
||||
@@ -1493,10 +1493,10 @@
|
||||
},
|
||||
"link_device": {
|
||||
"title": "הקשר יישום נייד",
|
||||
"description": "היכנס ליישום הנייד Bulwark Mail ללא הקלדת דבר. צור קוד QR כאן וסרוק אותו מהמסך ההתחברות של היישום.",
|
||||
"description": "היכנס ליישום הנייד VNCmail+ ללא הקלדת דבר. צור קוד QR כאן וסרוק אותו מהמסך ההתחברות של היישום.",
|
||||
"generate": "הצג קוד QR",
|
||||
"regenerate": "הצג קוד חדש",
|
||||
"instructions": "פתח את אפליקציית Bulwark Mail, לחץ ״סרוק קוד QR״ במסך ההתחברות, וכיוון את המצלמה שלך לכאן.",
|
||||
"instructions": "פתח את אפליקציית VNCmail+, לחץ ״סרוק קוד QR״ במסך ההתחברות, וכיוון את המצלמה שלך לכאן.",
|
||||
"expires_in": "קוד זה פוקע בעוד {seconds} שניות. ניתן להשתמש בו רק פעם אחת.",
|
||||
"expired": "קוד זה פקע.",
|
||||
"generating": "יצירה…",
|
||||
@@ -1668,7 +1668,7 @@
|
||||
"button": "ייבוא"
|
||||
},
|
||||
"about": {
|
||||
"title": "Bulwark Webmail"
|
||||
"title": "VNCmail+"
|
||||
},
|
||||
"show_avatars_in_junk": {
|
||||
"label": "הצג אווטרים בתיקייה זבל",
|
||||
@@ -3215,18 +3215,18 @@
|
||||
"meta_description": "לקוח webmail מינימליסטי באמצעות פרוטוקול JMAP",
|
||||
"protocol_handlers": {
|
||||
"title": "יישומים ברירת מחדל",
|
||||
"description": "בחר אם קישורי דוא״ל ולוח שנה ייפתחו ב־Bulwark. מבחינה טכנית, Bulwark רשום כטיפול בפרוטוקול עבור קישורי mailto: ו־webcal:.",
|
||||
"description": "בחר אם קישורי דוא״ל ולוח שנה ייפתחו ב־VNCmail+. מבחינה טכנית, VNCmail+ רשום כטיפול בפרוטוקול עבור קישורי mailto: ו־webcal:.",
|
||||
"unsupported": "דפדפן זה או חיבור זה לא תומך בהרשמה ידנית של טיפול בפרוטוקול. ייתכן שעדיין תוכל להשתמש ב־PWA המותקנת דרך הדפדפן או הגדרות מערכת ההפעלה.",
|
||||
"mailto_label": "קישורי דוא״ל",
|
||||
"mailto_description": "פתח קישורי mailto: ב־Bulwark עם מחבר שמלא מראש.",
|
||||
"mailto_description": "פתח קישורי mailto: ב־VNCmail+ עם מחבר שמלא מראש.",
|
||||
"protocol_open_mode_label": "בעת פתיחת קישורי פרוטוקול",
|
||||
"protocol_open_mode_description": "בחר אם Bulwark יפתח קישורי mailto: ו־webcal: בלשונית חדשה או ישתמש בחיבור פתוח. אפשרות הישיבה הפעילה דורשת הרשאת עדכון כדי שתוכל ללחוץ על עדכון נופל כדי להביא את Bulwark לחזית אם הדפדפן חוסם מיקוד.",
|
||||
"protocol_open_mode_description": "בחר אם VNCmail+ יפתח קישורי mailto: ו־webcal: בלשונית חדשה או ישתמש בחיבור פתוח. אפשרות הישיבה הפעילה דורשת הרשאת עדכון כדי שתוכל ללחוץ על עדכון נופל כדי להביא את VNCmail+ לחזית אם הדפדפן חוסם מיקוד.",
|
||||
"protocol_open_mode_active_session": "פתח בישיבה פעילה אם אפשר",
|
||||
"protocol_open_mode_new_tab": "פתח תמיד לשונית חדשה",
|
||||
"focus_notification_title": "פתח את Bulwark",
|
||||
"focus_notification_body": "הקישור נפתח ב־Bulwark. לחץ כדי להביא את החלון לחזית.",
|
||||
"focus_notification_title": "פתח את VNCmail+",
|
||||
"focus_notification_body": "הקישור נפתח ב־VNCmail+. לחץ כדי להביא את החלון לחזית.",
|
||||
"webcal_label": "קישורי לוח שנה",
|
||||
"webcal_description": "פתח קישורי webcal: ב־Bulwark עם תיבת דו־שיח מלא מראש להרשמה ללוח שנה.",
|
||||
"webcal_description": "פתח קישורי webcal: ב־VNCmail+ עם תיבת דו־שיח מלא מראש להרשמה ללוח שנה.",
|
||||
"register_mailto": "רשום יישום דוא״ל",
|
||||
"register_webcal": "רשום יישום לוח שנה",
|
||||
"mailto_registered": "בקש הרשמה של מטפל דוא״ל",
|
||||
@@ -3234,7 +3234,7 @@
|
||||
"registration_failed": "הרשמת טיפול בפרוטוקול נכשלה",
|
||||
"opening_mailto": "פתיחת מחבר…",
|
||||
"opening_webcal": "פתיחת לוח שנה…",
|
||||
"browser_note": "הדפדפן או מערכת ההפעלה שלך עשויים לבקש ממך לאשר זאת ועשויים לדרוש שBulwark יותקן לפני שניתן לבחור אותו כיישום ברירת המחדל.",
|
||||
"browser_note": "הדפדפן או מערכת ההפעלה שלך עשויים לבקש ממך לאשר זאת ועשויים לדרוש שVNCmail+ יותקן לפני שניתן לבחור אותו כיישום ברירת המחדל.",
|
||||
"select_account_title": "בחר חשבון",
|
||||
"select_mailto_account": "בחר איזה חשבון צריך לפתוח קישור דוא״ל זה.",
|
||||
"select_webcal_account": "בחר איזה חשבון צריך לפתוח קישור לוח שנה זה.",
|
||||
|
||||
Reference in New Issue
Block a user