fix: Saldo-Abgleich erklaert die Abweichung verstaendlich
Die Meldung nannte nur Zahlen ("Laut Datei / errechnet / Differenz") und
sagte nicht, was zu tun ist. Sie beschreibt jetzt in Worten, was nicht
aufgeht und ab welcher Zeile beide auseinanderlaufen.
Dazu ein Hinweis auf die haeufigste Ursache, wenn kein Zeilenfilter
gesetzt ist: Revolut legt Giro, Erspartes und Anlagekonto in EINE Datei,
jedes mit eigener Kontostand-Spalte. Ohne Filter springt die Spalte
zwischen den Produkten und der Abgleich kann gar nicht aufgehen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -347,9 +347,9 @@
|
|||||||
"skipCurrency": "andere Währung",
|
"skipCurrency": "andere Währung",
|
||||||
"colBalance": "Kontostand (laufend)",
|
"colBalance": "Kontostand (laufend)",
|
||||||
"reconOk": "Saldo-Abgleich stimmt: alle {{n}} Schritte passen zur Kontostand-Spalte der Datei.",
|
"reconOk": "Saldo-Abgleich stimmt: alle {{n}} Schritte passen zur Kontostand-Spalte der Datei.",
|
||||||
"reconDiff": "Saldo-Abgleich weicht ab. Laut Datei: {{file}} · errechnet: {{app}} · Differenz: {{diff}}.",
|
"reconDiff": "Der Kontostand geht nicht auf. Die Datei endet bei {{file}}, aus den Zeilen errechnet sich aber {{app}} – es fehlen bzw. sind {{diff}} zu viel.",
|
||||||
"reconFirst": "Erste Abweichung am {{date}} bei „{{payee}}“: Bank {{expected}}, erkannt {{actual}}.",
|
"reconFirst": "Ab dem {{date}} laufen beide auseinander, bei „{{payee}}“: Die Kontostand-Spalte der Datei springt um {{expected}}, die Zeile selbst weist {{actual}} aus.",
|
||||||
"reconOpening": "Anfangssaldo laut Datei: {{value}} (trage ihn beim Konto ein, damit der Stand stimmt).",
|
"reconOpening": "Vor der ersten Zeile stand die Datei bei {{value}}. Trage das beim Konto als Anfangssaldo ein, mit einem Stichtag am Tag davor.",
|
||||||
"needsTarget": "Gegenkonto wählen",
|
"needsTarget": "Gegenkonto wählen",
|
||||||
"filterColumn": "Nur Zeilen aus Spalte",
|
"filterColumn": "Nur Zeilen aus Spalte",
|
||||||
"filterValue": "mit dem Wert",
|
"filterValue": "mit dem Wert",
|
||||||
@@ -357,7 +357,8 @@
|
|||||||
"filterNone": "— kein Filter —",
|
"filterNone": "— kein Filter —",
|
||||||
"filterHint": "Revolut legt alle Pockets (Giro, Erspartes, Anlagekonto …) in EINE Datei, jedes mit eigenem Kontostand. Filtere hier auf ein Produkt und lege für die anderen eigene Konten an – sonst zählen die Pocket-Bewegungen doppelt.",
|
"filterHint": "Revolut legt alle Pockets (Giro, Erspartes, Anlagekonto …) in EINE Datei, jedes mit eigenem Kontostand. Filtere hier auf ein Produkt und lege für die anderen eigene Konten an – sonst zählen die Pocket-Bewegungen doppelt.",
|
||||||
"removeEntry": "Eintrag entfernen",
|
"removeEntry": "Eintrag entfernen",
|
||||||
"removeEntryConfirm": "Den Verlaufs-Eintrag „{{file}}“ entfernen? Die Buchungen sind bereits zurückgenommen."
|
"removeEntryConfirm": "Den Verlaufs-Eintrag „{{file}}“ entfernen? Die Buchungen sind bereits zurückgenommen.",
|
||||||
|
"reconMixedHint": "Enthält die Datei mehrere Konten oder Produkte? Revolut legt Giro, Erspartes und Anlagekonto in EINE Datei, jedes mit eigener Kontostand-Spalte. Dann greift der Abgleich erst, wenn du oben den Zeilenfilter setzt (z. B. Produkt = Giro) und die übrigen Produkte einzeln einliest."
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"show": "Passwort anzeigen",
|
"show": "Passwort anzeigen",
|
||||||
|
|||||||
@@ -347,9 +347,9 @@
|
|||||||
"skipCurrency": "other currency",
|
"skipCurrency": "other currency",
|
||||||
"colBalance": "Balance (running)",
|
"colBalance": "Balance (running)",
|
||||||
"reconOk": "Balance check passes: all {{n}} steps match the file's balance column.",
|
"reconOk": "Balance check passes: all {{n}} steps match the file's balance column.",
|
||||||
"reconDiff": "Balance check failed. Per file: {{file}} · computed: {{app}} · difference: {{diff}}.",
|
"reconDiff": "The balance doesn't add up. The file ends at {{file}}, but the rows add up to {{app}} – {{diff}} missing or too much.",
|
||||||
"reconFirst": "First mismatch on {{date}} at “{{payee}}”: bank {{expected}}, detected {{actual}}.",
|
"reconFirst": "They start to diverge on {{date}} at “{{payee}}”: the file's balance column moves by {{expected}}, while the row itself states {{actual}}.",
|
||||||
"reconOpening": "Opening balance per file: {{value}} (enter it on the account so the balance matches).",
|
"reconOpening": "Before the first row the file stood at {{value}}. Enter that as the account's opening balance, dated the day before.",
|
||||||
"needsTarget": "pick account",
|
"needsTarget": "pick account",
|
||||||
"filterColumn": "Only rows from column",
|
"filterColumn": "Only rows from column",
|
||||||
"filterValue": "with value",
|
"filterValue": "with value",
|
||||||
@@ -357,7 +357,8 @@
|
|||||||
"filterNone": "— no filter —",
|
"filterNone": "— no filter —",
|
||||||
"filterHint": "Revolut puts every pocket (Current, Savings, Investments …) into ONE file, each with its own balance. Filter to one product here and create separate accounts for the others – otherwise pocket movements are counted twice.",
|
"filterHint": "Revolut puts every pocket (Current, Savings, Investments …) into ONE file, each with its own balance. Filter to one product here and create separate accounts for the others – otherwise pocket movements are counted twice.",
|
||||||
"removeEntry": "Remove entry",
|
"removeEntry": "Remove entry",
|
||||||
"removeEntryConfirm": "Remove the history entry “{{file}}”? Its transactions have already been undone."
|
"removeEntryConfirm": "Remove the history entry “{{file}}”? Its transactions have already been undone.",
|
||||||
|
"reconMixedHint": "Does the file hold several accounts or products? Revolut puts current, savings and investment into ONE file, each with its own balance column. The check only works once you set the row filter above (e.g. Product = Current) and import the other products separately."
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"show": "Show password",
|
"show": "Show password",
|
||||||
|
|||||||
@@ -615,6 +615,10 @@ export default function Import() {
|
|||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
{/* Häufigste Ursache: mehrere Konten in einer Datei, kein Zeilenfilter. */}
|
||||||
|
{config.filter_column == null && (
|
||||||
|
<div className="muted small">{t("import.reconMixedHint")}</div>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<div className="muted small">
|
<div className="muted small">
|
||||||
|
|||||||
Reference in New Issue
Block a user