Aktueller Stand
This commit is contained in:
@@ -67,6 +67,26 @@
|
||||
"adminGoogleRedirectUri": "Redirect URL",
|
||||
"adminCleanupScanLimit": "Max emails per cleanup",
|
||||
"adminCleanupScanLimitHint": "0 = unlimited. Useful for testing.",
|
||||
"adminNewsletterSettings": "Newsletter detection",
|
||||
"adminNewsletterSettingsHint": "Signals and thresholds used to detect newsletters. Comma-separated lists. Weights define how much each signal adds to the score.",
|
||||
"adminNewsletterThreshold": "Minimum signals",
|
||||
"adminNewsletterHeaderKeys": "Header keys",
|
||||
"adminNewsletterHeaderKeysHint": "Comma-separated list headers (e.g. list-unsubscribe,list-id,...).",
|
||||
"adminNewsletterWeightHeader": "Weight: header matches",
|
||||
"adminNewsletterWeightPrecedence": "Weight: bulk/list precedence",
|
||||
"adminNewsletterSubjectTokens": "Subject keywords",
|
||||
"adminNewsletterSubjectTokensHint": "Comma-separated tokens matched against the subject.",
|
||||
"adminNewsletterWeightSubject": "Weight: subject match",
|
||||
"adminNewsletterFromTokens": "From keywords",
|
||||
"adminNewsletterFromTokensHint": "Comma-separated tokens matched against the sender.",
|
||||
"adminNewsletterWeightFrom": "Weight: from match",
|
||||
"adminUnsubscribeHistoryTtl": "Unsubscribe dedupe window (days)",
|
||||
"adminUnsubscribeHistoryTtlHint": "Prevents running unsubscribe again within this time window. Set to 0 to disable.",
|
||||
"adminUnsubscribeMethod": "Unsubscribe method preference",
|
||||
"adminUnsubscribeMethodHint": "Auto uses HTTP when available and falls back to mailto if HTTP fails.",
|
||||
"adminUnsubscribeMethodAuto": "Auto (HTTP → mailto fallback)",
|
||||
"adminUnsubscribeMethodHttp": "Prefer HTTP",
|
||||
"adminUnsubscribeMethodMailto": "Prefer mailto",
|
||||
"adminSaveSettings": "Save settings",
|
||||
"adminSaving": "Saving...",
|
||||
"adminSettingsSaved": "Saved",
|
||||
@@ -74,6 +94,7 @@
|
||||
"adminShowSecret": "Show secret",
|
||||
"adminHideSecret": "Hide secret",
|
||||
"adminSettingsSource": "Sources - Client ID: {{id}}, Secret: {{secret}}, Redirect: {{redirect}}",
|
||||
"adminSettingsSourceNewsletter": "Sources - Threshold: {{threshold}}, Headers: {{headers}}, Subject tokens: {{subject}}, From tokens: {{from}}, Weights (header/precedence/subject/from): {{weightHeader}}/{{weightPrecedence}}/{{weightSubject}}/{{weightFrom}}, Unsubscribe history: {{history}}, Method: {{method}}",
|
||||
"selectAll": "Select all",
|
||||
"adminCancelSelected": "Cancel selected",
|
||||
"adminDeleteSelected": "Delete selected",
|
||||
@@ -94,30 +115,175 @@
|
||||
"mailboxCancelEdit": "Cancel",
|
||||
"mailboxEmpty": "No mailboxes yet. Add one to start cleaning.",
|
||||
"cleanupStart": "Start cleanup",
|
||||
"cleanupDryRun": "Dry run (no changes)",
|
||||
"cleanupDryRun": "Simulate only (no changes)",
|
||||
"cleanupUnsubscribe": "Unsubscribe enabled",
|
||||
"cleanupRouting": "Routing enabled",
|
||||
"cleanupDisabled": "Cleanup is not available yet.",
|
||||
"cleanupSelectMailbox": "Select a mailbox to start cleanup.",
|
||||
"cleanupOauthRequired": "Connect Gmail OAuth before starting cleanup.",
|
||||
"cleanupDryRunHint": "Dry run simulates routing and unsubscribe actions. No changes or emails are sent.",
|
||||
"cleanupDryRunHint": "Simulation only: routing and unsubscribe are simulated. No changes or emails are sent.",
|
||||
"cleanupUnsubscribeHint": "Tries to unsubscribe newsletters via List-Unsubscribe. In simulation mode, it only logs the checks.",
|
||||
"cleanupRoutingHint": "Applies your rules (move/delete/label). In simulation mode, it only simulates the actions.",
|
||||
"rulesTitle": "Rules",
|
||||
"rulesAdd": "Add rule",
|
||||
"rulesReorder": "Drag to reorder",
|
||||
"rulesAddTitle": "Create rule",
|
||||
"rulesEditTitle": "Edit rule",
|
||||
"rulesName": "Rule name",
|
||||
"rulesEnabled": "Rule enabled",
|
||||
"rulesMatchMode": "Match mode",
|
||||
"rulesMatchAll": "All conditions (AND)",
|
||||
"rulesMatchAny": "Any condition (OR)",
|
||||
"rulesMatchAnyLabel": "OR",
|
||||
"rulesStopOnMatch": "Stop after match (first match wins)",
|
||||
"rulesStopOnMatchBadge": "FIRST",
|
||||
"rulesConditions": "Conditions",
|
||||
"rulesActions": "Actions",
|
||||
"rulesAddCondition": "+ Add condition",
|
||||
"rulesAddAction": "+ Add action",
|
||||
"rulesSave": "Save rule",
|
||||
"rulesExampleHint": "Example: Unsubscribe status = OK + List-Unsubscribe = * → Action: Move to \"Newsletter-Abgemeldet\".",
|
||||
"remove": "Remove",
|
||||
"ruleConditionUnsubscribeStatus": "Unsubscribe status",
|
||||
"ruleConditionScore": "Newsletter score",
|
||||
"ruleConditionScorePlaceholder": "e.g. >=2",
|
||||
"ruleConditionHeaderMissing": "Header missing",
|
||||
"ruleConditionHeaderMissingPlaceholder": "Header name (e.g. List-Unsubscribe)",
|
||||
"ruleUnsubStatusAny": "Any",
|
||||
"ruleUnsubStatusOk": "OK",
|
||||
"ruleUnsubStatusDryRun": "Simulated",
|
||||
"ruleUnsubStatusFailed": "Failed",
|
||||
"ruleUnsubStatusSkipped": "Skipped",
|
||||
"ruleUnsubStatusDuplicate": "Skipped (duplicate)",
|
||||
"ruleUnsubStatusDisabled": "Disabled",
|
||||
"ruleActionMarkRead": "Mark as read",
|
||||
"ruleActionMarkUnread": "Mark as unread",
|
||||
"rulesOverview": "Rules overview",
|
||||
"rulesEmpty": "No rules yet.",
|
||||
"jobsTitle": "Jobs",
|
||||
"jobsEmpty": "No jobs yet.",
|
||||
"jobCandidatesTitle": "Result details",
|
||||
"jobCandidatesHint": "Shows each newsletter candidate with actions, unsubscribe outcome, and metadata.",
|
||||
"jobCandidatesGroupBy": "Group by",
|
||||
"jobCandidatesGroupDomain": "Sender domain",
|
||||
"jobCandidatesGroupFrom": "From address",
|
||||
"jobCandidatesGroupListId": "List-ID",
|
||||
"jobCandidatesGroupNone": "No grouping",
|
||||
"jobCandidatesGroupsEmpty": "No newsletter candidates yet.",
|
||||
"jobCandidatesShowSignals": "Show details",
|
||||
"jobCandidatesCount": "{{count}} candidates",
|
||||
"jobCandidatesLoadMore": "Load more",
|
||||
"jobCandidatesBack": "Back to groups",
|
||||
"jobCandidatesRefresh": "Refresh",
|
||||
"jobCandidatesUnknown": "Unknown",
|
||||
"jobCandidatesSubject": "Subject",
|
||||
"jobCandidatesFrom": "From",
|
||||
"jobCandidatesListId": "List-ID",
|
||||
"jobCandidatesDate": "Date",
|
||||
"jobCandidatesActions": "Actions",
|
||||
"jobCandidatesUnsubscribe": "Unsubscribe",
|
||||
"jobCandidatesUnsubscribeNone": "No List-Unsubscribe header",
|
||||
"jobCandidatesUnsubscribeDisabled": "Disabled",
|
||||
"jobCandidatesUnsubscribeDryRun": "Simulated",
|
||||
"jobCandidatesUnsubscribeOk": "OK",
|
||||
"jobCandidatesUnsubscribeFailed": "Failed",
|
||||
"jobCandidatesUnsubscribeDuplicate": "Skipped (duplicate)",
|
||||
"resultsTitle": "Result details",
|
||||
"resultsHint": "Open a detailed list of all detected emails with a preview of each message.",
|
||||
"resultsOpen": "Open results",
|
||||
"resultsGroups": "Groups",
|
||||
"resultsGroupsDisabled": "Grouping disabled. Switch to a grouping option to see categories.",
|
||||
"resultsItems": "Messages",
|
||||
"resultsPreview": "Preview",
|
||||
"resultsSelectGroup": "Select a group to load its messages.",
|
||||
"resultsSelectItem": "Select a message to preview it.",
|
||||
"resultsPreviewLoading": "Loading preview...",
|
||||
"resultsPreviewEmpty": "No preview text available.",
|
||||
"resultsSearch": "Search subject/from/list",
|
||||
"resultsFilterAll": "All statuses",
|
||||
"resultsReviewedAll": "All",
|
||||
"resultsReviewed": "Reviewed",
|
||||
"resultsUnreviewed": "Unreviewed",
|
||||
"resultsExportCsv": "CSV",
|
||||
"resultsExportGroupCsv": "Group CSV",
|
||||
"resultsSelectAll": "All",
|
||||
"resultsMarkSelectedReviewed": "Selected reviewed",
|
||||
"resultsMarkSelectedUnreviewed": "Selected unreviewed",
|
||||
"resultsBulkSelect": "Unreviewed",
|
||||
"resultsBulkMarkReviewed": "All reviewed",
|
||||
"resultsDeleteSelected": "Delete selected",
|
||||
"resultsAttachments": "Attachments",
|
||||
"resultsDownloadAttachment": "Download",
|
||||
"resultsHistory": "Unsubscribe history",
|
||||
"resultsUnsubscribeDetails": "Unsubscribe details",
|
||||
"resultsUnsubscribeStatus": "Status",
|
||||
"resultsUnsubscribeMethod": "Method",
|
||||
"resultsUnsubscribeTarget": "Target",
|
||||
"resultsUnsubscribeMessage": "Result",
|
||||
"resultsListId": "List-ID",
|
||||
"resultsListUnsubscribe": "List-Unsubscribe",
|
||||
"resultsListUnsubscribePost": "List-Unsubscribe-Post",
|
||||
"resultsMailtoSubject": "Mailto subject",
|
||||
"resultsMailtoBody": "Mailto body",
|
||||
"resultsRequestMethod": "Request method",
|
||||
"resultsRequestUrl": "Request URL",
|
||||
"resultsResponseStatus": "Response status",
|
||||
"resultsResponseRedirect": "Redirect",
|
||||
"resultsMailtoVia": "Mail sent via",
|
||||
"resultsMailtoTo": "Mailto",
|
||||
"resultsMailtoReplyTo": "Reply-To",
|
||||
"resultsMailtoListUnsubscribe": "List-Unsubscribe header",
|
||||
"resultsUnsubscribeReason": "Reason",
|
||||
"resultsUnsubscribeError": "Error",
|
||||
"resultsLive": "Live",
|
||||
"resultsStatic": "Static",
|
||||
"resultsBackToJob": "Back to job",
|
||||
"jobCandidatesActionApplied": "Applied",
|
||||
"jobCandidatesActionDryRun": "Simulated",
|
||||
"jobCandidatesActionFailed": "Failed",
|
||||
"jobCandidatesActionSkipped": "Skipped",
|
||||
"jobCandidatesSignals": "Signals",
|
||||
"jobCandidatesScore": "Score",
|
||||
"jobCandidatesScoreHint": "Score is derived from subject, sender, header signals, and the newsletter detection model.",
|
||||
"jobCandidatesHeaderSignals": "Headers",
|
||||
"jobCandidatesSubjectSignals": "Subject matches",
|
||||
"jobCandidatesFromSignals": "From matches",
|
||||
"jobCandidatesPrecedenceSignal": "Bulk/List precedence",
|
||||
"jobEventCleanupStarted": "Cleanup started",
|
||||
"jobEventCleanupFinished": "Cleanup finished",
|
||||
"jobEventConnecting": "Connecting to {{email}}",
|
||||
"jobEventListingGmail": "Listing Gmail messages",
|
||||
"jobEventListedGmail": "Listed {{count}} Gmail messages so far",
|
||||
"jobEventPreparedGmail": "Prepared {{count}} Gmail messages",
|
||||
"jobEventResumeGmail": "Resuming Gmail cleanup at {{current}}/{{total}}",
|
||||
"jobEventProcessingGmail": "Processing {{count}} Gmail messages",
|
||||
"jobEventNoGmail": "No Gmail messages to process",
|
||||
"jobEventFoundMailboxes": "Found {{count}} mailboxes",
|
||||
"jobEventScanningMailbox": "Scanning {{mailbox}}",
|
||||
"jobEventPreparedImap": "Prepared {{count}} IMAP messages",
|
||||
"jobEventResumeImap": "Resuming IMAP cleanup at {{current}}/{{total}}",
|
||||
"jobEventProcessingImap": "Processing {{count}} IMAP messages",
|
||||
"jobEventNoImap": "No IMAP messages to process",
|
||||
"jobEventDetectedCandidates": "Detected {{count}} newsletter candidates",
|
||||
"jobEventProcessed": "Processed {{current}}/{{total}}",
|
||||
"jobEventProcessedCount": "Processed {{current}}",
|
||||
"jobEventGmailActionAppliedList": "Gmail action applied: {{actions}}",
|
||||
"jobEventGmailActionApplied": "Gmail action applied: {{action}}",
|
||||
"jobEventGmailActionSkippedNoChanges": "Gmail action skipped: no label changes",
|
||||
"jobEventGmailActionFailedSimple": "Gmail action failed: {{error}}",
|
||||
"jobEventGmailActionFailed": "Gmail action failed ({{action}}): {{error}}",
|
||||
"jobEventImapActionFailed": "IMAP action failed ({{action}}): {{error}}",
|
||||
"jobEventDryRunAction": "Simulate only: {{action}}",
|
||||
"jobEventCanceledByAdmin": "Job canceled by admin",
|
||||
"jobEventCanceledBeforeStart": "Job canceled before start",
|
||||
"jobEventFailed": "Job failed: {{error}}",
|
||||
"loadingCandidates": "Loading candidates...",
|
||||
"jobsProgress": "Progress",
|
||||
"jobsEta": "ETA",
|
||||
"jobsEtaDone": "Done",
|
||||
"jobsEtaQueued": "Queued",
|
||||
"jobsEtaRecalculating": "Recalculating ETA…",
|
||||
"jobsEtaCalculating": "Calculating…",
|
||||
"jobDetailsTitle": "Job details",
|
||||
"jobNoEvents": "No events yet.",
|
||||
"jobEvents": "Job events",
|
||||
@@ -128,7 +294,13 @@
|
||||
"phaseProcessingPending": "Waiting for processing.",
|
||||
"phaseUnsubscribePending": "Waiting for unsubscribe.",
|
||||
"phaseUnsubscribeDisabled": "Unsubscribe disabled for this job.",
|
||||
"phaseUnsubscribeSummary": "Unsubscribed {{ok}} · Failed {{failed}} · Dry run {{dryRun}} ({{total}} total).",
|
||||
"phaseUnsubscribeSummary": "Unsubscribed {{ok}} · Failed {{failed}} · Simulated {{dryRun}} ({{total}} total).",
|
||||
"phaseUnsubscribeSummaryWithProcessed": "Unsubscribed {{ok}} · Failed {{failed}} · Simulated {{dryRun}} ({{total}} candidates, {{processed}}/{{overall}} processed).",
|
||||
"phaseUnsubscribeSummaryNoDryRun": "Unsubscribed {{ok}} · Failed {{failed}} ({{total}} total).",
|
||||
"phaseUnsubscribeSummaryNoDryRunWithProcessed": "Unsubscribed {{ok}} · Failed {{failed}} ({{total}} candidates, {{processed}}/{{overall}} processed).",
|
||||
"phaseUnsubscribeDryRunPending": "Simulation: waiting for unsubscribe checks.",
|
||||
"phaseUnsubscribeDryRunSummary": "Simulation: {{dryRun}} unsubscribe checks ({{total}} total).",
|
||||
"phaseUnsubscribeDryRunSummaryWithProcessed": "Simulation: {{dryRun}} unsubscribe checks ({{total}} candidates, {{processed}}/{{overall}} processed).",
|
||||
"phaseStatusActive": "Active",
|
||||
"phaseStatusDone": "Done",
|
||||
"phaseStatusPending": "Pending",
|
||||
@@ -173,6 +345,7 @@
|
||||
"statusRunning": "Running",
|
||||
"statusQueued": "Queued",
|
||||
"statusSucceeded": "Succeeded",
|
||||
"statusFinished": "Cleanup finished",
|
||||
"statusFailed": "Failed",
|
||||
"statusCanceled": "Canceled",
|
||||
"oauthStatusLabel": "OAuth status"
|
||||
@@ -250,11 +423,14 @@
|
||||
"toastMailboxDeleted": "Mailbox deleted.",
|
||||
"toastRuleSaved": "Rule saved.",
|
||||
"toastRuleDeleted": "Rule deleted.",
|
||||
"toastRuleOrderSaved": "Rule order updated.",
|
||||
"toastDeleteSelected": "{{deleted}} deleted · {{missing}} missing · {{failed}} failed",
|
||||
"toastCleanupStarted": "Cleanup job started.",
|
||||
"toastLoggedOut": "Logged out.",
|
||||
"toastExportQueued": "Export queued.",
|
||||
"toastExportReady": "Export ready.",
|
||||
"toastExportFailed": "Export failed.",
|
||||
"toastDownloadFailed": "Download failed.",
|
||||
"toastExportPurged": "Expired exports purged.",
|
||||
"toastExportDeleted": "Export deleted.",
|
||||
"toastTenantUpdated": "Tenant updated.",
|
||||
@@ -270,5 +446,6 @@
|
||||
"toastSettingsSaved": "Settings saved.",
|
||||
"toastSettingsFailed": "Settings save failed.",
|
||||
"confirmMailboxDelete": "Delete mailbox {{email}}? This will remove all related data.",
|
||||
"confirmDeleteSelected": "Delete {{count}} selected messages? Messages might already be deleted.",
|
||||
"adminDeleteJobConfirm": "Delete this job and all its events?"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user