From 2e29af50d626753c656a62ed3502a5620862a34a Mon Sep 17 00:00:00 2001 From: Bernd Rodler Date: Fri, 7 Aug 2026 14:03:49 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20QA=20=E2=80=94=20add=20missing=20transla?= =?UTF-8?q?tion=20namespaces=20+=20fix=20sharedWithMe=20dead=20path?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add 'signatures' translation namespace (27 keys) to locales - Add 'settings.tabs.signatures' translation key - Add 'settings.importer' translation namespace (18 keys) - Fix sharedWithMe never populated in sharing-store — now discovers incoming mail/calendar/addressBook shares by checking isShared+myRights --- locales/en/common.json | 61 +++++++++++++++++++++++++++++++++++++++++ stores/sharing-store.ts | 45 ++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) diff --git a/locales/en/common.json b/locales/en/common.json index f900e2e0..54b551f2 100644 --- a/locales/en/common.json +++ b/locales/en/common.json @@ -894,6 +894,7 @@ "about_data": "About & Data", "import": "Import", "sharing": "Sharing", + "signatures": "Signatures", "debug": "Debug" }, "tab_groups": { @@ -2010,6 +2011,26 @@ "preview": { "label": "Preview" } + }, + "importer": { + "title": "Import Data", + "description": "Import emails from .eml files or .zip/.tgz archives.", + "file_label": "Select Files", + "file_placeholder": "Choose .eml, .zip, or .tgz files", + "folder_label": "Import into Folder", + "conflict_label": "If Email Already Exists", + "start_import": "Start Import", + "importing": "Importing...", + "cancel": "Cancel", + "success": "Import successful", + "fail": "Import failed", + "import_complete": "Import Complete", + "summary_imported": "{count} imported", + "summary_skipped": "{count} skipped", + "summary_failed": "{count} failed", + "error_details": "Error Details", + "import_more": "Import More Files", + "progress_title": "Import Progress" } }, "errors": { @@ -3363,5 +3384,45 @@ "install": "Install", "dont_remind": "Don't remind me again", "dismiss_aria": "Dismiss install prompt" + }, + "signatures": { + "title": "Signatures", + "description": "Create and manage email signatures. Assign default signatures for new messages and replies.", + "no_signature": "No signatures created yet.", + "add_signature": "Add Signature", + "duplicate": "Duplicate", + "your_signatures": "Your Signatures", + "delete_title": "Delete Signature", + "delete_message": "Are you sure you want to delete \"{name}\"?", + "edit_signature": "Edit Signature", + "new_signature": "New Signature", + "name_required": "Signature name is required", + "name_label": "Signature Name", + "name_placeholder": "e.g., Work, Personal, Legal", + "editor_label": "Signature Content", + "show_preview": "Preview", + "show_editor": "Editor", + "html_preview_label": "HTML Preview", + "plain_text_preview_label": "Plain Text Preview", + "default_signature": "Default for new messages", + "reply_signature": "Default for replies", + "no_signatures_available": "No signatures available", + "per_identity_signatures": "Per-Identity Signature Overrides", + "per_identity_description": "Assign different signatures to specific identities.", + "select_signature": "Select signature", + "cancel": "Cancel", + "save": "Save Signature", + "toolbar": { + "bold": "Bold", + "italic": "Italic", + "underline": "Underline", + "strikethrough": "Strikethrough", + "link": "Link", + "bullet_list": "Bullet List", + "ordered_list": "Ordered List", + "text_color": "Text Color", + "alignment": "Alignment", + "font_size": "Font Size" + } } } diff --git a/stores/sharing-store.ts b/stores/sharing-store.ts index 6a5720c2..32bbae24 100644 --- a/stores/sharing-store.ts +++ b/stores/sharing-store.ts @@ -258,6 +258,21 @@ export const useSharingStore = create((set, get) => ({ }); } } + if (mb.isShared && mb.myRights) { + withMe.push({ + id: `mb-withme-${mb.id}`, + resourceId: mb.id, + resourceName: mb.name, + resourceKind: "mailbox", + principalId: mb.accountId || "unknown", + principalName: mb.accountName || "Unknown", + principalEmail: null, + role: roleLabel("mailbox", detectMailboxPreset(mb.myRights)), + direction: "withMe", + pending: false, + accountId: mb.accountId, + }); + } } } catch { /* mailboxes may not be available */ @@ -286,6 +301,21 @@ export const useSharingStore = create((set, get) => ({ }); } } + if (cal.isShared && cal.myRights) { + withMe.push({ + id: `cal-withme-${cal.id}`, + resourceId: cal.id, + resourceName: cal.name, + resourceKind: "calendar", + principalId: cal.accountId || "unknown", + principalName: cal.accountName || "Unknown", + principalEmail: null, + role: roleLabel("calendar", detectCalendarPreset(cal.myRights)), + direction: "withMe", + pending: false, + accountId: cal.accountId, + }); + } } } } catch { @@ -318,6 +348,21 @@ export const useSharingStore = create((set, get) => ({ }); } } + if (book.isShared && book.myRights) { + withMe.push({ + id: `ab-withme-${book.id}`, + resourceId: book.id, + resourceName: book.name, + resourceKind: "addressBook", + principalId: book.accountId || "unknown", + principalName: book.accountName || "Unknown", + principalEmail: null, + role: roleLabel("addressBook", detectAddressBookPreset(book.myRights)), + direction: "withMe", + pending: false, + accountId: book.accountId, + }); + } } } } catch {