feat: Postfach-Formular in den Einstellungen

Server, Port, Benutzer und Passwort eintragen, Verbindung testen, Ordner
danach aus der echten Liste des Postfachs waehlen. Je Absender wird ein
Zielkonto zugeordnet – ohne Zuordnung uebernimmt Certain nichts, denn
dieselbe Adresse kann je nach Konto etwas anderes bedeuten.

Der Hinweis am Passwortfeld sagt, was passiert, wenn das Server-Geheimnis
getauscht wird, und empfiehlt ein App-Passwort statt des echten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-22 20:00:06 +02:00
co-authored by Claude Opus 5
parent fc6ee2f345
commit 8e41cce9a2
6 changed files with 306 additions and 0 deletions
+30
View File
@@ -493,5 +493,35 @@
"viaShortcut": "via shortcut",
"discard": "Discard",
"discardConfirm": "Discard this capture? The booking is deleted. The entry stays marked as discarded so the statement still recognises the payment later."
},
"mailbox": {
"title": "Mailbox for payment emails",
"intro": "Raiffeisen and Revolut send an email for transfers. Certain fetches them and puts them into the inbox as suggestions – only what you approve gets booked. Card payments in a shop are not emailed by the banks; use the shortcut capture under “My account” for those.",
"add": "Add mailbox",
"name": "Label",
"namePlaceholder": "e.g. Receipts",
"host": "IMAP server",
"port": "Port",
"username": "Username",
"password": "Password",
"passwordKeep": "Password (leave empty to keep)",
"passwordHint": "Stored encrypted. The key derives from the server secret: if that is replaced, you must enter the password again. Prefer an app password over your real one.",
"folder": "Folder",
"folderHint": "After a connection test you can pick from the real folders here.",
"doneFolder": "Move to after processing",
"doneFolderPlaceholder": "empty = do not move",
"pollMinutes": "Fetch every … minutes",
"test": "Test connection",
"testOk": "Connection works – {{n}} folders found.",
"fetchNow": "Fetch now",
"fetched": "{{neu}} new, {{unklar}} unclear.",
"lastPoll": "last fetched",
"neverPolled": "never fetched",
"lastError": "Error",
"delete": "Remove mailbox",
"deleteConfirm": "Remove mailbox “{{name}}”? Payments already captured stay.",
"noSenders": "No sender mapped yet – without a mapping nothing is taken over.",
"noAccount": "no account",
"fromPlaceholder": "Sender contains, e.g. raiffeisen.ch"
}
}