summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-22 21:18:09 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-22 21:19:28 +0200
commit9dfa50890655273212c0753f9702b7403095ef18 (patch)
tree90788131e8c8b9b77b20c30beb7a7474a844ec05 /app
parent954d5989bb04f32aeb2627b70647d773011e4092 (diff)
Verweise auf Impressum und Datenschutzerklärung in der Fußzeile
Die Web-App führte bislang keinerlei Verweis auf die Anbieterkennzeichnung und die Erklärung zum Datenschutz. Beides liegt außerhalb der App vor und wird nunmehr aus der Fußzeile heraus verlinkt. - index.html: dritter Absatz in <footer> mit zwei Verweisen auf https://matthias.benkard.de/about und https://matthias.benkard.de/privacy, durch ein Mittelpunktzeichen getrennt. Kein target="_blank", weil die App an keiner anderen Stelle damit arbeitet. Dazu die Regel footer .legal{margin-top:6px} im Stilblatt. - Zwei neue Schlüssel footer.imprint und footer.privacy in sämtlichen dreiundzwanzig ausgelieferten Wörterbüchern, jeweils in der Sprache selbst und nicht als deutsches Lehnwort, soweit die Sprache eine eigene Wendung hergibt. Die Keilschriftfassung ist über akk-keilschrift.js neu erzeugt worden, nicht von Hand geändert; in der Umschriftquelle steht „awât epišim" und „awât naṣāri ṭuppātim", letzteres in dieser Form, weil der Silbenvorrat des Bauskriptes „ar" nicht kennt. - Der Schlüsselbestand steigt von 459 auf 461; die Angabe in den Dateiköpfen ist entsprechend berichtigt. - Die Fassung des Service Workers ist von av-v25 auf av-v26 hochgezählt. Geprüft ist die Schlüsselgleichheit aller dreiundzwanzig Wörterbücher gegen i18n.de.js sowie die Auflösbarkeit sämtlicher data-i18n-Schlüssel des HTML. pruefe.js konnte nicht laufen, weil jsdom fehlt und die Nachinstallation an root-eigenen Dateien im npm-Zwischenspeicher scheitert; der Rechenkern ist von der Änderung ohnehin nicht berührt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'app')
-rw-r--r--app/i18n.akk-x-ob.js4
-rw-r--r--app/i18n.akk-x-ob.translit.js4
-rw-r--r--app/i18n.bar.js4
-rw-r--r--app/i18n.de-x-amt.js4
-rw-r--r--app/i18n.de-x-sales.js4
-rw-r--r--app/i18n.de.js2
-rw-r--r--app/i18n.en.js2
-rw-r--r--app/i18n.eo.js4
-rw-r--r--app/i18n.eu.js4
-rw-r--r--app/i18n.fr.js2
-rw-r--r--app/i18n.gmh.js4
-rw-r--r--app/i18n.goh.js4
-rw-r--r--app/i18n.got.js4
-rw-r--r--app/i18n.grc.js4
-rw-r--r--app/i18n.ine-x-proto.js4
-rw-r--r--app/i18n.ja.js2
-rw-r--r--app/i18n.jbo.js4
-rw-r--r--app/i18n.la.js2
-rw-r--r--app/i18n.nds.js4
-rw-r--r--app/i18n.nl.js2
-rw-r--r--app/i18n.sa.js4
-rw-r--r--app/i18n.tok.js4
-rw-r--r--app/i18n.tr.js4
-rw-r--r--app/i18n.uk.js4
-rw-r--r--app/index.html3
-rw-r--r--app/service-worker.js2
26 files changed, 70 insertions, 19 deletions
diff --git a/app/i18n.akk-x-ob.js b/app/i18n.akk-x-ob.js
index be82919..211aa69 100644
--- a/app/i18n.akk-x-ob.js
+++ b/app/i18n.akk-x-ob.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Wörterbuch Altbabylonisch — KEILSCHRIFT, ERZEUGT (459 Schlüssel).
+ Wörterbuch Altbabylonisch — KEILSCHRIFT, ERZEUGT (461 Schlüssel).
ERZEUGTE DATEI — nicht von Hand ändern. Quelle ist
i18n.akk-x-ob.translit.js; nach jeder Änderung dort neu bauen:
@@ -290,6 +290,8 @@ window.I18N_AKK_X_OB = {
'sb.up': '𒀀𒈾 𒂊𒇷𒅖 𒀀𒈾 𒀀𒉿𒋾𒅎 𒂵𒈪𒅕𒋾𒅎',
'footer.1': '<b>𒆷 𒀀𒉿𒀜 𒈪𒅅𒋛𒅎, 𒆷 𒀀𒉿𒀜 𒊕𒁺.</b> 𒁾𒁍𒌝 𒆷 𒊑𒅅𒋧 𒅆. 𒍣𒅎𒁕𒌈 𒊭 2026 𒀀𒈾 𒊕𒁺 𒂠𒋆 𒊭 𒅆𒁍𒋾𒅎 𒄿𒈾 𒀸𒊑 𒈠𒁺𒋾𒅎 𒆷 𒃵𒊏𒀜; 𒁲𒈾𒌈 𒊭 𒌅𒆰𒋾𒅎 𒈠𒁲𒋾𒅎 𒄿𒈾 "𒉺𒁕𒀭 𒈪𒈾𒋾𒅎 → 𒁕𒀭𒉡𒌈 𒊭 𒁲𒈾𒋾𒅎" 𒊭𒀜𒊏 𒌋 𒄿𒈾 𒀭𒉏 𒅔𒈾𒀝𒆠𒊏.',
'footer.2': '𒇷𒅁𒁉 𒈪𒈾𒋾𒅎 𒅖𒋼𒂗 𒀀𒈾 𒅖𒋼𒂗 𒅖𒌅 𒁾 𒉺𒉏 𒇷𒆪𒌝 𒌋 𒀀𒈾 𒊭𒆷𒀸 𒈪𒀉𒄩𒊏𒋾𒅎 𒀀𒁲 𒍠 𒊭 𒄿𒇷𒅎 𒈠𒍣 (𒈾𒅗𒊒𒌝 𒊏𒁍𒌝 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': '𒀀𒉿𒀜 𒂊𒁉𒋆',
+ 'footer.privacy': '𒀀𒉿𒀜 𒈾𒍝𒊑 𒁾𒉺𒋾𒅎',
/* ---------------- Die drei Optionen ---------------- */
'opt.bav.name': '𒇽-𒈦 𒊭 𒂍 𒅆𒅁𒊑𒅎 (𒈾𒅗𒊒𒌝 𒊭 𒀉)',
diff --git a/app/i18n.akk-x-ob.translit.js b/app/i18n.akk-x-ob.translit.js
index db9ed94..342f2be 100644
--- a/app/i18n.akk-x-ob.translit.js
+++ b/app/i18n.akk-x-ob.translit.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Wörterbuch Altbabylonisch — UMSCHRIFT, QUELLE (459 Schlüssel).
+ Wörterbuch Altbabylonisch — UMSCHRIFT, QUELLE (461 Schlüssel).
Diese Datei wird NICHT ausgeliefert. Sie ist die lesbare Quelle, aus
der akk-keilschrift.js die Keilschriftfassung i18n.akk-x-ob.js
@@ -282,6 +282,8 @@ window.I18N_AKK_X_OB = {
'sb.up': 'ana elīš ana awâtim gamirtim',
'footer.1': '<b>lā awât miksim, lā awât {SAG.DU}.</b> ṭuppum lā riksum šī. ṣimdatum ša 2026 ana {SAG.DU} eššim ša šībūtim ina ašrī mādûtim lā gamrat; dīnātum ša tukultim maṭītim ina "padān minâtim → dannūtum ša dīnātim" šaṭrā u ina annîm innakkirā.',
'footer.2': 'libbi minâtim ištēn ana ištēn ištu {DUB} panîm leqûm u ana šalāš mitharātim adi {ZAG} ša ilim maṣi (nakārum rabûm 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'awât epišim',
+ 'footer.privacy': 'awât naṣāri ṭuppātim',
/* ---------------- Die drei Optionen ---------------- */
'opt.bav.name': '{LU2}-{MASH} ša {E2} šiprim (nakārum ša {A2})',
diff --git a/app/i18n.bar.js b/app/i18n.bar.js
index 10d86a6..6a311ba 100644
--- a/app/i18n.bar.js
+++ b/app/i18n.bar.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Boarisches Weadabuach — VOLLSTÄNDIG (459 Schlissl).
+ Boarisches Weadabuach — VOLLSTÄNDIG (461 Schlissl).
D’Gsetzstejn stengan mit Vuasatz auf Hochdeitsch: des san d’Quejn und
a amtliche Iwasetzung gibt’s ned. Boarisch hod koa Rechtssprach —
dadéaweng bleim Fachwéata oft nah am Hochdeitschn, a frei dazuadenkte
@@ -435,6 +435,8 @@ window.I18N_BAR = {
'share.sub': 'Eahnare Ogom liang ausschließlich in dem Browser (<kbd>localStorage</kbd>). Nix werd iwatrong, es gibt koan Server und koan Tracker.',
'footer.1': '<b>Koa Steia- oda Aunlogeberodung.</b> A Modej is koa Vatrog. D’Rechtslogn 2026 zua reformiatn privatn Oitersvuasorg is a mehrare Stelln no ned endgültig gklärt; de Aunahma mit’m niadrigstn Vatraunsgrad steng unta „Rechawég → Belastborkeit vo de Aunahma“ und san dert aa zum ändan.',
'footer.2': 'Rechnakern oans zu oans iwatrong aus’m ursprünglichn Excel-Modej und gengan drei Testfäj auf Maschinngenauigkeit prüaft (grössde relative Obweichung 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Impressum',
+ 'footer.privacy': 'Datnschutzerklärung',
'metric.monat.desc': 'Konstante Monatszoihung iwa de ganze Auszoihungsphas mit demsejbm Weat, in heitiga Kaffkraft. De oazige Zoi, de si direkt mit Eahnam heitign Nettoeikomma vagleichn lasst.',
'metric.ertrag.desc': 'Wos de Mégglichkeit in heitiga Kaffkraft iwa an eignan Eisotz aussi obwirft: Barweat vo olle Netto-Leistunga minus Barweat vom Nettoaufwand.',
'metric.irr.desc': 'Renditn auf an tatsächlich eigsetztn Nettobetrog, nominal. Direkt vagleichboar mit da eigstejtn Bruttorenditn vom ETF — da Untaschied is gnau des, wos Fördarung und Obgom zsamm kostn oda bringan.',
diff --git a/app/i18n.de-x-amt.js b/app/i18n.de-x-amt.js
index 5f12dfe..055e94c 100644
--- a/app/i18n.de-x-amt.js
+++ b/app/i18n.de-x-amt.js
@@ -1,6 +1,6 @@
/* =====================================================================
Wörterbuch Deutsch, Register „Amtsdeutsch" (BCP 47 § 2.2.7,
- privater Untertag de-x-amt) — VOLLSTÄNDIG (459 Schlüssel).
+ privater Untertag de-x-amt) — VOLLSTÄNDIG (461 Schlüssel).
Keine Übersetzung, sondern eine Stilvariante derselben Sprache: exakt
dieselben Zahlen, Formeln und Paragraphen wie im Wörterbuch Deutsch
@@ -244,6 +244,8 @@ window.I18N_DE_X_AMT = {
'sb.up': 'Zurück zum Ergebnis (Seitenanfang)',
'footer.1': '<b>Es wird ausdrücklich darauf hingewiesen, dass mit der vorliegenden Anwendung weder eine steuerliche noch eine anlagebezogene Beratung im Sinne der einschlägigen berufsrechtlichen Vorschriften erbracht wird.</b> Ein Berechnungsmodell vermag eine auf den Einzelfall bezogene Beratung nicht zu ersetzen; ein Rechtsanspruch auf Richtigkeit der ausgewiesenen Beträge wird nicht begründet. Es wird ferner darauf hingewiesen, dass die Rechtslage 2026 betreffend die reformierte private Altersvorsorge in mehreren Punkten noch nicht abschließend geklärt ist. Diejenigen Annahmen, denen der geringste Vertrauensgrad beizumessen ist, sind unter „Rechenweg → Belastbarkeit der Annahmen" gesondert ausgewiesen und können dort im Einzelnen angepasst werden.',
'footer.2': 'Der Rechenkern ist unverändert und ohne inhaltliche Abweichung aus dem ursprünglichen, in Gestalt einer Tabellenkalkulation geführten Berechnungsmodell übernommen worden. Eine Überprüfung anhand dreier Testfälle hat ergeben, dass Übereinstimmung bis zur Maschinengenauigkeit besteht; die größte festgestellte relative Abweichung beträgt 1,3·10<sup>&minus;14</sup> und ist mithin als vernachlässigbar einzustufen.',
+ 'footer.imprint': 'Anbieterkennzeichnung',
+ 'footer.privacy': 'Erklärung zum Datenschutz',
/* ---------------- Die drei Gestaltungsvarianten ---------------- */
'opt.bav.name': 'Betriebliche Altersversorgung im Wege der Entgeltumwandlung',
diff --git a/app/i18n.de-x-sales.js b/app/i18n.de-x-sales.js
index c64a1a3..ee15bdd 100644
--- a/app/i18n.de-x-sales.js
+++ b/app/i18n.de-x-sales.js
@@ -1,6 +1,6 @@
/* =====================================================================
Wörterbuch Deutsch, Register „Vertrieb" (BCP 47 § 2.2.7, privater
- Untertag de-x-sales) — VOLLSTÄNDIG (459 Schlüssel).
+ Untertag de-x-sales) — VOLLSTÄNDIG (461 Schlüssel).
Keine Übersetzung, sondern eine Stilvariante derselben Sprache: exakt
dieselben Zahlen, Formeln und Paragraphen wie im Wörterbuch Deutsch
@@ -248,6 +248,8 @@ window.I18N_DE_X_SALES = {
'sb.up': 'Rauf zu Ihrem Ergebnis',
'footer.1': '<b>Wichtig und ehrlich: keine Steuer- oder Anlageberatung.</b> So gut unser Rechner ist — das persönliche Gespräch ersetzt er nicht, und das wollen wir auch gar nicht behaupten. Die Rechtslage 2026 zur reformierten privaten Altersvorsorge ist an einigen Stellen noch offen; wir verstecken das nicht, sondern legen die unsichersten Annahmen unter „Rechenweg → Belastbarkeit der Annahmen" komplett offen — und Sie dürfen jede einzelne davon selbst nachjustieren. So viel Transparenz bekommen Sie sonst nirgends!',
'footer.2': 'Unser Rechenkern? Eins zu eins aus dem geprüften ursprünglichen Excel-Modell übernommen und an drei Testfällen bis auf Maschinengenauigkeit bestätigt — größte Abweichung 1,3·10<sup>&minus;14</sup>. Das ist die vierzehnte Nachkommastelle. Genauer geht es auf diesem Planeten schlicht nicht. Vergleichen Sie das ruhig mit dem, was Ihnen sonst so vorgerechnet wird!',
+ 'footer.imprint': 'Impressum',
+ 'footer.privacy': 'Datenschutz',
/* ---------------- Die drei Optionen ---------------- */
'opt.bav.name': 'Ihre bAV per Entgeltumwandlung',
diff --git a/app/i18n.de.js b/app/i18n.de.js
index fd61603..0138013 100644
--- a/app/i18n.de.js
+++ b/app/i18n.de.js
@@ -230,6 +230,8 @@ window.I18N_DE = {
'sb.up': 'Nach oben zum Ergebnis',
'footer.1': '<b>Keine Steuer- oder Anlageberatung.</b> Ein Modell ist kein Vertrag. Die Rechtslage 2026 zur reformierten privaten Altersvorsorge ist an mehreren Stellen noch nicht abschließend geklärt; die Annahmen mit dem geringsten Vertrauensgrad stehen unter „Rechenweg → Belastbarkeit der Annahmen“ und sind dort auch änderbar.',
'footer.2': 'Rechenkern eins zu eins portiert aus dem ursprünglichen Excel-Modell und gegen drei Testfälle auf Maschinengenauigkeit geprüft (größte relative Abweichung 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Impressum',
+ 'footer.privacy': 'Datenschutzerklärung',
/* ---------------- Die drei Optionen ---------------- */
'opt.bav.name': 'bAV (Entgeltumwandlung)',
diff --git a/app/i18n.en.js b/app/i18n.en.js
index 9631e63..d6d9db4 100644
--- a/app/i18n.en.js
+++ b/app/i18n.en.js
@@ -229,6 +229,8 @@ window.I18N_EN = {
'sb.up': 'Back up to the result',
'footer.1': '<b>Not tax or investment advice.</b> A model is not a contract. The 2026 legal position on reformed private retirement provision is not settled in several respects; the assumptions with the lowest confidence are listed under „How it is calculated → Robustness of the assumptions“ and can be changed there.',
'footer.2': 'Calculation core ported one-to-one from the original Excel model and checked against three test cases to machine precision (largest relative deviation 1.3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Legal notice',
+ 'footer.privacy': 'Privacy policy',
/* ---------------- The three options ---------------- */
'opt.bav.name': 'Occupational pension (bAV, salary sacrifice)',
diff --git a/app/i18n.eo.js b/app/i18n.eo.js
index cb2a196..6b38dfd 100644
--- a/app/i18n.eo.js
+++ b/app/i18n.eo.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Esperanta vortaro — PLENA (459 ŝlosiloj).
+ Esperanta vortaro — PLENA (461 ŝlosiloj).
La leĝcitaĵoj restas germanaj intence: ili estas la primaraj fontoj kaj
ne havas oficialan tradukon. „bAV“ = Entgeltumwandlung, entreprena
pensiprovizo el la kruda salajro; ekzakta esperanta termino ne ekzistas,
@@ -436,6 +436,8 @@ window.I18N_EO = {
'share.sub': 'Viaj indikoj troviĝas ekskluzive en ĉi tiu retumilo (<kbd>localStorage</kbd>). Nenio estas transdonata, ne ekzistas servilo nek spurilo.',
'footer.1': '<b>Neniu imposta aŭ investa konsilo.</b> Modelo ne estas kontrakto. La laŭleĝa stato 2026 pri la reformita privata pensiprovizo ne estas ĉie fine klarigita; la supozoj kun la plej malalta fidindeco staras sub „Kalkulvojo → Fidindeco de la supozoj“ kaj estas tie ankaŭ ŝanĝeblaj.',
'footer.2': 'Kalkula kerno unu-al-unu portita el la origina Excel-modelo kaj kontrolita kontraŭ tri testkazoj ĝis maŝina precizeco (plej granda relativa devio 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Eldoninformoj',
+ 'footer.privacy': 'Deklaro pri privateco',
'metric.monat.desc': 'Konstanta monata pago tra la tuta elpagofazo kun la sama valoro, en hodiaŭa aĉetpovo. La sola nombro, kiu rekte kompareblas kun via hodiaŭa neta enspezo.',
'metric.ertrag.desc': 'Kion la eblo en hodiaŭa aĉetpovo rezultigas preter la propra investo: nuna valoro de ĉiuj netaj elpagoj minus nuna valoro de la neta elspezo.',
'metric.irr.desc': 'Rendimento sur la efektive investita neta sumo, nominala. Rekte komparebla kun la agordita kruda rendimento de la ETF — la diferenco estas ĝuste tio, kion subvencio kaj kotizoj kune kostas aŭ alportas.',
diff --git a/app/i18n.eu.js b/app/i18n.eu.js
index aa5b376..5a542c2 100644
--- a/app/i18n.eu.js
+++ b/app/i18n.eu.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Euskarazko hiztegia — OSOA (459 gako).
+ Euskarazko hiztegia — OSOA (461 gako).
Lege-aipamenak nahita alemanez daude: iturri primarioak dira eta ez dute
itzulpen ofizialik. „bAV“ = Entgeltumwandlung, soldata gordinetik
elikatzen den enpresa-pentsioa; euskaraz ez dago baliokide zehatzik,
@@ -434,6 +434,8 @@ window.I18N_EU = {
'share.sub': 'Zure datuak nabigatzaile honetan bakarrik daude (<kbd>localStorage</kbd>). Ez da ezer transmititzen, ez dago zerbitzaririk ez jarraipen-tresnarik.',
'footer.1': '<b>Ez da zerga- edo inbertsio-aholkularitza.</b> Eredu bat ez da kontratu bat. Diruz lagundutako pentsio pribatu erreformatuari buruzko 2026ko egoera juridikoa ez dago puntu batzuetan behin betiko argituta; konfiantza-maila baxuena duten hipotesiak «Kalkulu-bidea → Hipotesien sendotasuna» azpian daude, eta han alda daitezke.',
'footer.2': 'Kalkulu-nukleoa bat-batean jatorrizko Excel ereduetik transferitu da, eta hiru test-kasuren aurrean egiaztatu da makina-zehaztasunarekin (desbideratze erlatibo handiena 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Lege oharra',
+ 'footer.privacy': 'Pribatutasun-politika',
'metric.monat.desc': 'Ordainketa-fase osoan zehar balio berarekin ordaintzen den hileko prestazio konstantea, gaurko erosteko ahalmenean. Zure gaurko diru-sarrera garbiarekin zuzenean konpara daitekeen zenbaki bakarra.',
'metric.ertrag.desc': 'Aukerak gaurko erosteko ahalmenean, ekarpen propiotik haratago, zer ematen duen: ordainketa garbi guztien gaurko balioa ken gastu garbiaren gaurko balioa.',
'metric.irr.desc': 'Benetan inbertitutako zenbateko garbiaren errendimendua, nominala. ETFaren ezarritako errendimendu gordinarekin zuzenean konparagarria — diferentzia laguntzek eta kenkariek batera zenbat kostatzen edo ematen duten da, hain zuzen.',
diff --git a/app/i18n.fr.js b/app/i18n.fr.js
index 989cefc..597f20d 100644
--- a/app/i18n.fr.js
+++ b/app/i18n.fr.js
@@ -235,6 +235,8 @@ window.I18N_FR = {
'sb.up': 'Remonter au résultat',
'footer.1': '<b>Ni conseil fiscal ni conseil en placement.</b> Un modèle n’est pas un contrat. L’état du droit 2026 sur l’épargne retraite privée réformée n’est pas définitivement fixé sur plusieurs points ; les hypothèses les moins sûres figurent sous « Détail du calcul → Robustesse des hypothèses » et y sont modifiables.',
'footer.2': 'Moteur de calcul porté à l’identique depuis le modèle Excel d’origine et vérifié à la précision machine sur trois cas de test (écart relatif maximal 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Mentions légales',
+ 'footer.privacy': 'Politique de confidentialité',
/* ---------------- Les trois options ---------------- */
'opt.bav.name': 'bAV (abandon de salaire)',
diff --git a/app/i18n.gmh.js b/app/i18n.gmh.js
index a8cd51a..dca3616 100644
--- a/app/i18n.gmh.js
+++ b/app/i18n.gmh.js
@@ -1,5 +1,5 @@
/* =====================================================================
- DIUTSCH — Mittelhochdeutsch, VOLLSTÄNDIG (459 Schlüssel).
+ DIUTSCH — Mittelhochdeutsch, VOLLSTÄNDIG (461 Schlüssel).
Seit der zweiten Fassung auch die langen Erläuterungstexte übersetzt.
Von den drei historischen Stufen trägt das Mhd. Fließtext am besten:
Sachsenspiegel und städtisches Stadtrecht bieten echte Vorbilder für
@@ -480,6 +480,8 @@ window.I18N_GMH = {
'share.sub': 'Iuwer wort sint aleine in disem werke (<kbd>localStorage</kbd>). Niht wirt gesendet, enist deheiniu maht noch spehære.',
'footer.1': '<b>Enist niht rehtes noch schatzes rât.</b> Daz bilde enist niht triuwe. Rehtes stant 2026 nâch der niuwe der sînen sorge ist in manegen steten noch niht geendet; dise gesetzede mit minnestem getriuwe stânt under „Wec der rechenunge → Vestenunge der wænungen“ unde mügen dâ gewendet werden.',
'footer.2': 'Der rechenunge kerne ist aleine von dem êrsten Excel-bilde abegeleitet unde wider drî fresen nâch des sumeres rihte gekoret (meiste gelîche underscheit 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Von dem schrîbenden',
+ 'footer.privacy': 'Von der tougenheite huote',
'metric.monat.desc': 'Gelîchiu mânôtlîchiu gâbe al gülte-zît mit dem selben werte, nâch hiutigem werde. Ein mâze, daz man widermezzen mac mit iuwerem lûteren schatze nû.',
'metric.ertrag.desc': 'Daz, sô diz nâch hiutigem werde über iuwer eigen werc tuot: der wert nû aller lûteren gâben âne den wert nû der lûteren nütze.',
'metric.irr.desc': 'Wuocher an dem wærlîche gelegeten lûteren schatze, nâch namen. Widermezzet mit dem gesetzeten allen wuochere des ETF — der underscheit ist der, daz gâbe unde gelt zesamene kosten oder gebent.',
diff --git a/app/i18n.goh.js b/app/i18n.goh.js
index bd14f24..945b77d 100644
--- a/app/i18n.goh.js
+++ b/app/i18n.goh.js
@@ -1,5 +1,5 @@
/* =====================================================================
- DIUTISC — Althochdeutsch, VOLLSTÄNDIG (459 Schlüssel).
+ DIUTISC — Althochdeutsch, VOLLSTÄNDIG (461 Schlüssel).
Seit der zweiten Fassung auch die langen Erläuterungstexte übersetzt.
Notkers Fachprosa liefert Vorbilder für Bruch- und Verhältnisangaben,
aber keine für Paragraphenverweise oder mehrstufige Bedingungssätze;
@@ -484,6 +484,8 @@ window.I18N_GOH = {
'share.sub': 'Iuweriu wort sint eino in disemo werke (<kbd>localStorage</kbd>). Niowiht wirdit gisant, ni ist iemer noh gisehan.',
'footer.1': '<b>Ni ist ewa- odo scazes rat.</b> Daz bilidi ist ni triuwa. Rehtes stant 2026 zi der niuwera sinera sorgu ist in manegen steten noh ni giendot; disiu gisezzida mit minnistero gitruwidu stant untar „Weg der rehhanungu → Fastnissi dero wanungo“ inti mugun dar gikeret werdan.',
'footer.2': 'Der rehhanungu kerno ist eino fona demo êriston Excel-bilide abageleitit inti wider dri fresa nah des sumeres rihti gikoron (meisto gilih untarscheit 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Fona demo scrîbanten',
+ 'footer.privacy': 'Fona demo tougalnisses hialte',
'metric.monat.desc': 'Gilihiu manodlihiu gift al gelte-zit mit demo selben werde, nah hiutigemo werde. Ein mez, daz man widarmezzon mag mit iuweremo lutaren scazze nu.',
'metric.ertrag.desc': 'Daz, so disiu wisa nah hiutigemo werde ubar iuwer eigan werc tuot: der wert nu allero lutarero gifto ana den wert nu der lutaren nuzzida.',
'metric.irr.desc': 'Wuohhar an demo warlihho gilegiten lutaren scazze, nah namen. Widarmezzot mit demo gisezziten allen wuohhare des ETF — der untarscheit ist der, daz gift inti gelt saman koston odo geband.',
diff --git a/app/i18n.got.js b/app/i18n.got.js
index 07052d1..7656f60 100644
--- a/app/i18n.got.js
+++ b/app/i18n.got.js
@@ -1,5 +1,5 @@
/* =====================================================================
- GUTISKA RAZDA — Gotisch, VOLLSTÄNDIG (459 Schlüssel).
+ GUTISKA RAZDA — Gotisch, VOLLSTÄNDIG (461 Schlüssel).
Seit der zweiten Fassung auch die langen Erläuterungstexte, Fließtext-
Hinweise und Verdikt-Sätze übersetzt statt über tRaw() auf Deutsch
zurückzufallen. Für Fließtext gilt zwangsläufig ein niedrigerer
@@ -490,6 +490,8 @@ window.I18N_GOT = {
'share.sub': 'Þeina waurda sind ains in þamma waurstwa (<kbd>localStorage</kbd>). Ni waiht wairþiþ sandiþ, nist waldufni ni spaikulatjands.',
'footer.1': '<b>Ni ist gildis aiþþau faihu ragineins.</b> Frisahts nist triggwa. Witodis stojan 2026 bi niujein seina kararis in managam staþam ni ist andjis skeirjada; þo anahahona miþ minnistin trauainshugja standand undar „Wiga þizos rathjons → Swinþein þizo anahahano“ jah mahtjand jainar wandjan.',
'footer.2': 'Sa rathjons kern ains du ainamma ustauhans us þamma frumistin Excel-frisahtja jah wiþra þrins fraisteinins bi asanjis raihtein gakannids (maists galeiks missaleikeins 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Bi þamma taujandin',
+ 'footer.privacy': 'Bi fastan runos',
'metric.monat.desc': 'Samaleiks menoþis giba all gibos mel miþ þamma samin waírþa, bi himma daga waírþa. Þata aina rathjo, þatei mag galeikan miþ þeinamma hrainjamma faihau nu.',
'metric.ertrag.desc': 'Þatei sa wilja bi himma daga waírþa ufar eiginana anafilh gataujiþ: waírþ nu allaizo hrainjaizo gibo inuh waírþ nu þis hrainis wilwis.',
'metric.irr.desc': 'Wokrs ana þamma sunjeino galagidin hrainjamma faihau, bi namin. Galeiks miþ þamma gasatidin allamma wokra þis ETF — so missaleikeins ist bi sunjai þatei giba jah gibandeis samana kostjand aiþþau giband.',
diff --git a/app/i18n.grc.js b/app/i18n.grc.js
index 4dd9045..8581ae4 100644
--- a/app/i18n.grc.js
+++ b/app/i18n.grc.js
@@ -1,5 +1,5 @@
/* =====================================================================
- ΛΕΞΙΚΟΝ ΕΛΛΗΝΙΚΟΝ ΑΡΧΑΙΟΝ (πολυτονικόν) — ΠΛΗΡΕΣ (459 κλειδία).
+ ΛΕΞΙΚΟΝ ΕΛΛΗΝΙΚΟΝ ΑΡΧΑΙΟΝ (πολυτονικόν) — ΠΛΗΡΕΣ (461 κλειδία).
Seit der zweiten Fassung auch die langen Erläuterungstexte übersetzt.
Attische Prosa erlaubt echte Periodenbildung (μέν/δέ, ἐάν + Konjunktiv,
ὥστε + Infinitiv, Partizipialkonstruktionen), so dass die neuen
@@ -467,6 +467,8 @@ window.I18N_GRC = {
'share.sub': 'Τὰ σὰ δεδομένα μόνον ἐν τούτῳ τῷ προγράμματι κεῖται (<kbd>localStorage</kbd>). Οὐδὲν πέμπεται, οὐδεμία ἀρχὴ οὐδὲ κατάσκοπος.',
'footer.1': '<b>Οὔτε νόμιμος οὔτε χρηματιστικὴ συμβουλή ἐστιν.</b> Τὸ παράδειγμα οὐκ ἔστι πίστις. Ἡ νόμιμος κατάστασις τοῦ 2026 περὶ τῆς νεωστὶ ὡρισμένης θεραπείας ἐν πολλοῖς τόποις οὔπω τετέλεσται· αὗται αἱ ὑποθέσεις τῆς ἐλαχίστης πίστεως ὑπὸ τῇ «Ὁδῷ τοῦ λογισμοῦ → Βεβαιότητι τῶν ὑποθέσεων» κεῖνται καὶ ἐκεῖ μεταβάλλεσθαι δύνανται.',
'footer.2': 'Ὁ πυρὴν τοῦ λογισμοῦ μόνον ἐκ τοῦ πρώτου Excel-παραδείγματος εἴληπται καὶ πρὸς τρεῖς πείρας κατὰ τὴν ὀρθότητα τοῦ ἀθροίσματος ἐξητάσθη (μεγίστη διαφορὰ 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Περὶ τοῦ ποιήσαντος',
+ 'footer.privacy': 'Περὶ τῆς τῶν δεδομένων φυλακῆς',
'metric.monat.desc': 'Ἴση μηνιαία ἀπόδοσις πάντα τὸν χρόνον τῆς ἀποδόσεως τῇ αὐτῇ ἀξίᾳ, κατὰ τὴν νῦν ἀξίαν. Λόγος, ὃν τῷ καθαρῷ σου ἀργυρίῳ νῦν συγκρίνειν δύνασαι.',
'metric.ertrag.desc': 'Ὃ ἡ αἵρεσις κατὰ τὴν νῦν ἀξίαν ὑπὲρ τὴν ἰδίαν σου ἐργασίαν ποιεῖ· ἡ ἀξία νῦν πασῶν τῶν καθαρῶν ἀποδόσεων ἄνευ τῆς ἀξίας νῦν τῆς καθαρᾶς χρήσεως.',
'metric.irr.desc': 'Τόκος ἐπὶ τὸ ἀληθῶς τεθὲν καθαρὸν ἀργύριον, κατ᾽ ὄνομα. Συγκρίνεται σὺν τῷ ὡρισμένῳ τόκῳ τῷ ὅλῳ τοῦ ETF — ἡ διαφορὰ ἐστὶν ὅτι δόσις καὶ εἰσφορὰ ἅμα δαπανῶσιν ἢ δίδονται.',
diff --git a/app/i18n.ine-x-proto.js b/app/i18n.ine-x-proto.js
index cf043c7..8bd58f1 100644
--- a/app/i18n.ine-x-proto.js
+++ b/app/i18n.ine-x-proto.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Wörterbuch Urindogermanisch — VOLLSTÄNDIG (459 Schlüssel).
+ Wörterbuch Urindogermanisch — VOLLSTÄNDIG (461 Schlüssel).
SPRACHCODE. ine ist der ISO-639-5-Sammelcode für die indogermanische
Familie, nicht für die Grundsprache; einen eigenen ISO-Code hat das
@@ -280,6 +280,8 @@ window.I18N_INE_X_PROTO = {
'sb.up': '*úperi h₁éy, lipóm h₂éd',
'footer.1': '*<b>né teutodéh₃ti-wékʷos, né pék̑u-wékʷos.</b> *nóh₃mn̥ né dʰh₁tóm h₁ésti. *2026-osyo dʰéh₁mn̥ néwoi swé-ǵr̥h₂tupék̑wei so’i-loi né sm̥ dʰh₁tóm h₁ésti; ménesa mính₂u-ménesa „réh₁tyos pn̥tḗh₂s → ménesōm tólh₂mn̥“ h₁sónti, h₂éltromn̥ā-kʷe.',
'footer.2': '*réh₁tyos k̑ērd h₁óynom h₁óynom lipóm h₂epó bʰr̥tóm, tri-mn̥ mn̥dʰh₁tói dr̥k̑tóm (méǵh₂ h₂éltromn̥ 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': '*dʰh₁tṓr-bʰi',
+ 'footer.privacy': '*wid-mn̥-s pāsti-bʰi',
/* ---------------- Die drei Optionen ---------------- */
'opt.bav.name': '*wérǵoǵr̥h₂tupék̑u (pék̑u-h₂éltromn̥)',
diff --git a/app/i18n.ja.js b/app/i18n.ja.js
index 0bc2820..981e255 100644
--- a/app/i18n.ja.js
+++ b/app/i18n.ja.js
@@ -230,6 +230,8 @@ window.I18N_JA = {
'sb.up': '結果に戻る',
'footer.1': '<b>税務・投資の助言ではありません。</b>モデルは契約ではありません。改革後の私的老後保障をめぐる2026年の法状況にはまだ確定していない点がいくつもあります。信頼度のもっとも低い仮定は「計算の内訳 → 仮定の頑健性」にまとめてあり、そこで変更もできます。',
'footer.2': '計算部分は元のExcelモデルをそのまま移植し、3件のテストケースで機械精度まで一致を確認しています(相対誤差の最大は 1.3·10<sup>&minus;14</sup>)。',
+ 'footer.imprint': '運営者情報',
+ 'footer.privacy': 'プライバシーポリシー',
/* ---------------- 三つの選択肢 ---------------- */
'opt.bav.name': '企業年金(賃金転換)',
diff --git a/app/i18n.jbo.js b/app/i18n.jbo.js
index b2e9543..85aeb99 100644
--- a/app/i18n.jbo.js
+++ b/app/i18n.jbo.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Wörterbuch Lojban (ISO 639-3: jbo) — VOLLSTÄNDIG (459 Schlüssel).
+ Wörterbuch Lojban (ISO 639-3: jbo) — VOLLSTÄNDIG (461 Schlüssel).
Lojban ist syntaktisch eindeutig: die Grammatik ist eine kommen-
freie Sprache mit einem geprüften LALR(1)-Parser (camxes), es gibt
@@ -263,6 +263,8 @@ window.I18N_JBO = {
'sb.up': 'ko klama ga\'u lo se jalge',
'footer.1': '<b>ti na flalu ja sorcu stidi.</b> lo ciste na se javni .i lo 2026 flalu be lo cnino sivni gunsisti sorcu cu na mulno se jdice vi so\'i da .i lo sruma poi mleca la\'u se xusra cu zvati lo "lanli pluta → lo tsali be lo sruma" gi\'e ka\'e se galfi vi ti',
'footer.2': 'lo lanli midju cu se fukpi lo tanbo ciste gi\'e se cipra ci lo mupli co\'u lo minji preciso (lo zmadu parbi frica cu 1,3·10<sup>&minus;14</sup>)',
+ 'footer.imprint': 'lo finti',
+ 'footer.privacy': 'lo nu mipri se javni',
/* ---------------- Die drei Optionen ---------------- */
'opt.bav.name': 'lo gunka gunsisti sorcu (galfi lo sumji jdini)',
diff --git a/app/i18n.la.js b/app/i18n.la.js
index ffb1327..b8d8b3d 100644
--- a/app/i18n.la.js
+++ b/app/i18n.la.js
@@ -229,6 +229,8 @@ window.I18N_LA = {
'sb.up': 'Sursum ad exitum',
'footer.1': '<b>Non est consilium tributarium neque de collocando.</b> Exemplar non est contractus. Ius anni 2026 de provisione privata reformata pluribus locis nondum certum est; suppositiones minimae fidei sub „Ratio computandi → Firmitas suppositionum“ stant et ibi mutari possunt.',
'footer.2': 'Nucleus computandi ad litteram ex exemplari Excel pristino translatus et tribus casibus ad praecisionem machinae probatus (maxima discrepantia relativa 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'De auctore',
+ 'footer.privacy': 'De tutela datorum',
/* ---------------- Tres rationes ---------------- */
'opt.bav.name': 'Pensio operativa (conversio mercedis)',
diff --git a/app/i18n.nds.js b/app/i18n.nds.js
index 1a803c0..303a2ce 100644
--- a/app/i18n.nds.js
+++ b/app/i18n.nds.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Plattdüütsch Wöörbook — VULLSTÄNNIG (459 Slötels).
+ Plattdüütsch Wöörbook — VULLSTÄNNIG (461 Slötels).
De Gesettsteed’n staht mit Vördacht op Hoochdüütsch: dat sünd de
Hööftquellen un se hebbt keen amtliche Översetten. Plattdüütsch hett
keen Rechtssprook — dorüm blievt Fachwöör faken nah an’t Hoochdüütsche,
@@ -434,6 +434,8 @@ window.I18N_NDS = {
'share.sub': 'Ehr Angaven liggt alleen in disse Browser (<kbd>localStorage</kbd>). Nix ward överdragen, dat gifft keen Server un keen Tracker.',
'footer.1': '<b>Keen Steuer- oder Anlaagberaden.</b> En Modell is keen Vertrag. De Rechtslaag 2026 to de reformeerte private Öllersvörsorg is an mehr Steden noch nich sluttich klaart; de Annahmen mit den lüttsten Vertroensgraad staht ünner „Reekweg → Belastborkeit vun de Annahmen“ un sünd dor ok to ännern.',
'footer.2': 'Reekkeern een to een överdragen ut dat ursprüngliche Excel-Modell un gegen dree Testfäll op Maschienngenauigkeit pröövt (grötte relative Afwieken 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Impressum',
+ 'footer.privacy': 'Datenschuulverklären',
'metric.monat.desc': 'Kunstant Maandbetahlen över de hele Utbetahlensphaas mit den sülvigen Wart, in hüdige Koopkraft. De enkige Tall, de sik direkt mit Ehr hüdig Nettoinkamen verglieken lett.',
'metric.ertrag.desc': 'Wat de Mööglichkeit in hüdige Koopkraft över den egen Insatz erut afwirft: Barwart vun all Netto-Leisten minus Barwart vun de Nettoutgaav.',
'metric.irr.desc': 'Rendit op den wohrhaftig insetten Nettobetrag, nominaal. Direkt to verglieken mit de instellte Bruttorendit vun’n ETF — de Ünnerscheed is nau dat, wat Förderung un Afgaven tosamen kösten oder bringt.',
diff --git a/app/i18n.nl.js b/app/i18n.nl.js
index 2ecfd93..643c77d 100644
--- a/app/i18n.nl.js
+++ b/app/i18n.nl.js
@@ -232,6 +232,8 @@ window.I18N_NL = {
'sb.up': 'Omhoog naar de uitkomst',
'footer.1': '<b>Geen fiscaal of beleggingsadvies.</b> Een model is geen contract. De rechtstoestand 2026 rond het hervormde privépensioen is op meerdere punten nog niet definitief opgehelderd; de aannames met het laagste vertrouwen staan onder „Berekening → Houdbaarheid van de aannames“ en zijn daar ook aan te passen.',
'footer.2': 'Rekenkern één op één overgezet uit het oorspronkelijke Excel-model en tegen drie testgevallen op machineprecisie getoetst (grootste relatieve afwijking 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Colofon',
+ 'footer.privacy': 'Privacyverklaring',
/* ---------------- De drie opties ---------------- */
'opt.bav.name': 'bAV (salarisuitruil)',
diff --git a/app/i18n.sa.js b/app/i18n.sa.js
index 43b986e..5d42490 100644
--- a/app/i18n.sa.js
+++ b/app/i18n.sa.js
@@ -1,5 +1,5 @@
/* =====================================================================
- संस्कृतशब्दकोशः — PŪRṆA / VOLLSTÄNDIG (459 Schlüssel).
+ संस्कृतशब्दकोशः — PŪRṆA / VOLLSTÄNDIG (461 Schlüssel).
Seit der zweiten Fassung auch die langen Erläuterungstexte übersetzt.
Klassisches Sanskrit erlaubt sowohl Nominalstil (Kompositaketten) als
auch echte Konditional-/Kausalsätze (यदि...तर्हि, यतः, चेत्); für die
@@ -472,6 +472,8 @@ window.I18N_SA = {
'share.sub': 'तव विवरणानि केवलम् अस्मिन् अनुप्रयोगे तिष्ठन्ति (<kbd>localStorage</kbd>). किमपि न प्रेष्यते, न कोऽपि सर्वरः न वा गुप्तचरः।',
'footer.1': '<b>न विधिपरामर्शः, न धनपरामर्शः।</b> प्रतिरूपं विश्वासयोग्यं न भवति। 2026-वर्षस्य नूतनस्वपरिचर्याविषये विधिस्थितिः बहुषु स्थानेषु अद्यापि अनिश्चिता; एताः न्यूनतमविश्वासयुक्ताः प्रकल्पनाः „गणनामार्गः → प्रकल्पनानां दृढता“ इत्यत्र तिष्ठन्ति, तत्र परिवर्तयितुं शक्यन्ते च।',
'footer.2': 'गणनाया मूलं केवलं मूल-Excel-प्रतिरूपात् निष्कासितम्, त्रिभिः परीक्षाभिः योगस्य सत्यतायै परीक्षितं च (परमं भेदः 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'कर्तृविषये',
+ 'footer.privacy': 'दत्तांशरक्षाविषये',
'metric.monat.desc': 'सर्वं दानकालं तुल्यं मासिकं दानं तेनैव मूल्येन, अद्यतनक्रयशक्त्या। एकः अनुपातः, यं तव शुद्धधनेन इदानीं तुलयितुं शक्नोषि।',
'metric.ertrag.desc': 'यत् एतत् विकल्पः अद्यतनक्रयशक्त्या तव स्वकर्मणः उपरि करोति: सर्वेषां शुद्धदानानां वर्तमानमूल्यं शुद्धोपभोगशक्तेः वर्तमानमूल्यं विहाय।',
'metric.irr.desc': 'यथार्थतया स्थापितशुद्धधने वृद्धिः, नाममात्रेण। ETF-इत्यस्य निर्धारितया सम्पूर्णवृद्ध्या सह तुल्यते — भेदः तत्र यत् दानम् अंशदानं च सह व्ययन्ते वा दीयन्ते वा।',
diff --git a/app/i18n.tok.js b/app/i18n.tok.js
index 76896d0..ed684d1 100644
--- a/app/i18n.tok.js
+++ b/app/i18n.tok.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Wörterbuch Toki Pona (ISO 639-3: tok) — VOLLSTÄNDIG (459 Schlüssel).
+ Wörterbuch Toki Pona (ISO 639-3: tok) — VOLLSTÄNDIG (461 Schlüssel).
SCHRIFT. Gespeichert wird sitelen Lasina, also die ASCII-Umschrift.
Das ist bewusst so und nicht die zweitbeste Lösung: sitelen pona
@@ -270,6 +270,8 @@ window.I18N_TOK = {
'sb.up': 'o tawa sewi, tawa pini',
'footer.1': '<b>ni li sona ala pi mani lawa, li sona ala pi mani awen.</b> ilo nanpa li lipu ala. lipu lawa pi 2026 pi mani awen sin li ken ala pini lon ijo mute; nasin pi sona lili li lon "nasin nanpa → wawa pi nasin mi", li ken ante lon ni.',
'footer.2': 'nasin nanpa li kama tan lipu nanpa open, li lukin lon nasin tu wan, li sama lon nasin pi ilo sona (ante suli li 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'jan pali',
+ 'footer.privacy': 'nasin pi len sona',
/* ---------------- Die drei Optionen ---------------- */
'opt.bav.name': 'mani awen pali (pana tan mani ale)',
diff --git a/app/i18n.tr.js b/app/i18n.tr.js
index 9f44096..3987d79 100644
--- a/app/i18n.tr.js
+++ b/app/i18n.tr.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Türkçe sözlük — TAM (459 anahtar).
+ Türkçe sözlük — TAM (461 anahtar).
Kanun atıfları bilerek Almanca bırakıldı: birincil kaynak bunlar ve
resmî çevirileri yok. „bAV“ = Entgeltumwandlung, brüt ücretten yapılan
işyeri emeklilik kesintisi; Türk mevzuatında birebir karşılığı yok.
@@ -434,6 +434,8 @@ window.I18N_TR = {
'share.sub': 'Bilgileriniz yalnızca bu tarayıcıda tutulur (<kbd>localStorage</kbd>). Hiçbir şey aktarılmaz, ne sunucu ne de izleyici vardır.',
'footer.1': '<b>Vergi ya da yatırım danışmanlığı değildir.</b> Bir model, sözleşme değildir. Reforme edilmiş özel emeklilik birikimiyle ilgili 2026 hukuki durumu birçok noktada henüz kesin olarak açıklığa kavuşmamıştır; güven düzeyi en düşük varsayımlar „Hesap yolu → Varsayımların dayanıklılığı“ altında yer alır ve orada değiştirilebilir.',
'footer.2': 'Hesap çekirdeği birebir özgün Excel modelinden aktarılmış ve üç test durumuna karşı makine hassasiyetinde sınanmıştır (en büyük göreli sapma 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Künye',
+ 'footer.privacy': 'Gizlilik politikası',
'metric.monat.desc': 'Tüm ödeme evresi boyunca aynı değerle sabit aylık ödeme, bugünkü alım gücüyle. Bugünkü net gelirinizle doğrudan karşılaştırılabilen tek rakam.',
'metric.ertrag.desc': 'Seçeneğin bugünkü alım gücüyle kendi katkısının ötesinde ne getirdiği: tüm net ödemelerin bugünkü değeri eksi net yükün bugünkü değeri.',
'metric.irr.desc': 'Fiilen yatırılan net tutar üzerinden getiri, nominal. ETF’in ayarlanan brüt getirisiyle doğrudan karşılaştırılabilir — fark, teşvik ve kesintilerin birlikte ne kadar mal olduğu ya da kazandırdığıdır.',
diff --git a/app/i18n.uk.js b/app/i18n.uk.js
index 670476d..f75ecc5 100644
--- a/app/i18n.uk.js
+++ b/app/i18n.uk.js
@@ -1,5 +1,5 @@
/* =====================================================================
- Український словник — ПОВНИЙ (459 ключів).
+ Український словник — ПОВНИЙ (461 ключів).
Посилання на закони свідомо лишено німецькою: це первинні джерела, і
офіційного перекладу вони не мають. «bAV» — Entgeltumwandlung, тобто
корпоративна пенсія з брутто-зарплати; точного українського відповідника
@@ -434,6 +434,8 @@ window.I18N_UK = {
'share.sub': 'Ваші дані зберігаються виключно в цьому браузері (<kbd>localStorage</kbd>). Нічого не передається, немає ні сервера, ні трекерів.',
'footer.1': '<b>Це не податкова чи інвестиційна консультація.</b> Модель — не договір. Правовий стан 2026 щодо реформованого приватного пенсійного забезпечення в кількох місцях ще не остаточно з’ясований; припущення з найнижчим рівнем довіри наведено під «Хід обчислення → Надійність припущень», і там їх можна змінити.',
'footer.2': 'Розрахункове ядро перенесено один в один з первісної Excel-моделі і перевірено на трьох тестових випадках з машинною точністю (найбільше відносне відхилення 1,3·10<sup>&minus;14</sup>).',
+ 'footer.imprint': 'Вихідні дані',
+ 'footer.privacy': 'Політика приватності',
'metric.monat.desc': 'Стала місячна виплата протягом усієї фази виплат з однаковим значенням, у сьогоднішній купівельній спроможності. Єдине число, яке можна безпосередньо порівняти з вашим сьогоднішнім чистим доходом.',
'metric.ertrag.desc': 'Що варіант дає в сьогоднішній купівельній спроможності понад власний внесок: теперішня вартість усіх виплат нетто мінус теперішня вартість витрат нетто.',
'metric.irr.desc': 'Дохідність на фактично вкладену суму нетто, номінальна. Безпосередньо порівнянна з установленою валовою дохідністю ETF — різниця — це точно те, що разом коштують чи приносять пільги й відрахування.',
diff --git a/app/index.html b/app/index.html
index 2157be6..59f559e 100644
--- a/app/index.html
+++ b/app/index.html
@@ -402,6 +402,7 @@ tr.hl td{font-weight:700;background:var(--face-lt)}
footer{font-size:11px;line-height:1.5;margin-top:12px;background:var(--face);padding:8px 10px;
border:1px solid;border-color:var(--white) var(--gray) var(--gray) var(--white)}
+footer .legal{margin-top:6px}
kbd{font:11px var(--mono);background:var(--face);padding:0 4px;
border:1px solid;border-color:var(--white) var(--gray) var(--gray) var(--white)}
a{color:var(--navy)}
@@ -540,6 +541,8 @@ a{color:var(--navy)}
<p data-i18n-html="footer.2">Rechenkern eins zu eins portiert aus dem ursprünglichen Excel-Modell
und gegen drei Testfälle auf
Maschinengenauigkeit geprüft (größte relative Abweichung 1,3·10<sup>&minus;14</sup>).</p>
+ <p class="legal"><a href="https://matthias.benkard.de/about" rel="noopener" data-i18n="footer.imprint">Impressum</a>
+ &middot; <a href="https://matthias.benkard.de/privacy" rel="noopener" data-i18n="footer.privacy">Datenschutzerklärung</a></p>
</footer>
</div>
diff --git a/app/service-worker.js b/app/service-worker.js
index b1942b0..e088490 100644
--- a/app/service-worker.js
+++ b/app/service-worker.js
@@ -9,7 +9,7 @@
* Beim Ändern der App die Version hochzählen — sonst sieht ein bereits
* installierter Client die Änderung erst nach zwei Aufrufen.
*/
-const VERSION = 'av-v25';
+const VERSION = 'av-v26';
const ASSETS = [
'./',
'./index.html',