From dffb68efe53d2831e6a1154cc9467ab3de3cbcb2 Mon Sep 17 00:00:00 2001 From: Michelle Date: Sun, 28 Jun 2026 22:28:37 +0200 Subject: [PATCH] fix: move resetPassword email locales to server i18n The password reset email is rendered server-side via emaili18n.js, which loads translations from server/i18n. The email.resetPassword keys only existed in the frontend src/i18n locales, so t() returned the raw key paths in the sent email. Move the EN/DE block to the server locales and drop the unused copy from the frontend. Co-Authored-By: Claude Opus 4.8 (1M context) --- server/i18n/de.json | 7 +++++++ server/i18n/en.json | 7 +++++++ src/i18n/de.json | 7 ------- src/i18n/en.json | 7 ------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/server/i18n/de.json b/server/i18n/de.json index 611a59f..932c594 100644 --- a/server/i18n/de.json +++ b/server/i18n/de.json @@ -11,6 +11,13 @@ "validity": "Dieser Link ist 24 Stunden gültig.", "footer": "Falls du dich nicht registriert hast, kannst du diese E-Mail ignorieren." }, + "resetPassword": { + "subject": "{appName} - Passwort zurücksetzen", + "intro": "Du hast angefordert, dein Passwort zurückzusetzen. Klicke auf den Button, um ein neues Passwort festzulegen:", + "button": "Passwort zurücksetzen", + "validity": "Dieser Link ist 1 Stunde gültig.", + "footer": "Falls du das nicht angefordert hast, kannst du diese E-Mail ignorieren – dein Passwort bleibt unverändert." + }, "invite": { "subject": "{appName} - Du wurdest eingeladen", "title": "Du wurdest eingeladen", diff --git a/server/i18n/en.json b/server/i18n/en.json index c588052..9595cb8 100644 --- a/server/i18n/en.json +++ b/server/i18n/en.json @@ -11,6 +11,13 @@ "validity": "This link is valid for 24 hours.", "footer": "If you didn't register, please ignore this email." }, + "resetPassword": { + "subject": "{appName} - Reset your password", + "intro": "You requested to reset your password. Click the button below to set a new one:", + "button": "Reset Password", + "validity": "This link is valid for 1 hour.", + "footer": "If you didn't request this, you can safely ignore this email — your password will remain unchanged." + }, "invite": { "subject": "{appName} - You've been invited", "title": "You have been invited", diff --git a/src/i18n/de.json b/src/i18n/de.json index e45ea44..cfe3ed5 100644 --- a/src/i18n/de.json +++ b/src/i18n/de.json @@ -666,13 +666,6 @@ "validity": "Dieser Link ist 24 Stunden gültig.", "footer": "Falls du dich nicht registriert hast, kannst du diese E-Mail ignorieren." }, - "resetPassword": { - "subject": "{appName} - Passwort zurücksetzen", - "intro": "Du hast angefordert, dein Passwort zurückzusetzen. Klicke auf den Button, um ein neues Passwort festzulegen:", - "button": "Passwort zurücksetzen", - "validity": "Dieser Link ist 1 Stunde gültig.", - "footer": "Falls du das nicht angefordert hast, kannst du diese E-Mail ignorieren – dein Passwort bleibt unverändert." - }, "invite": { "subject": "{appName} - Du wurdest eingeladen", "title": "Du wurdest eingeladen! 🎉", diff --git a/src/i18n/en.json b/src/i18n/en.json index 5ea6b37..fb9b069 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -666,13 +666,6 @@ "validity": "This link is valid for 24 hours.", "footer": "If you didn't register, please ignore this email." }, - "resetPassword": { - "subject": "{appName} - Reset your password", - "intro": "You requested to reset your password. Click the button below to set a new one:", - "button": "Reset Password", - "validity": "This link is valid for 1 hour.", - "footer": "If you didn't request this, you can safely ignore this email — your password will remain unchanged." - }, "invite": { "subject": "{appName} - You've been invited", "title": "You've been invited! 🎉",