From 98e97e3cf214c96cdefd99bfedd6724f0b85c41c Mon Sep 17 00:00:00 2001 From: Paul Nothaft Date: Mon, 22 Jun 2026 22:40:13 +0200 Subject: [PATCH] fix(i18n): replace ASCII quote with U+201D in DE perGuestLimitsDesc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI's frontend test job failed with "Failed to parse JSON file, invalid JSON syntax found at position 163854" on de.json:3041. The German description used „…" — the opening „ (U+201E) was correct, but the closing was an ASCII " (U+0022) which the JSON parser treated as the string terminator, leaving "-Abläufe..." as garbage outside the string. Replace with the proper German closing quote " (U+201D). 84/84 vitest suite now passes locally. End-to-end smoke against a dev backend with migration 141 applied confirms the modal renders correctly on desktop (centered card) + mobile (bottom slide-up) and the backend returns the structured 403 on the 11th-click cap hit. Also flagging adjacent: origin/beta has a pre-existing duplicate `Mail` import in frontend/src/pages/admin/SettingsPage.tsx (lines 20 + 58 from commit 69367b45) that breaks Vite dev's Babel parser but passes prod esbuild — out of scope for this PR, separate fix needed. --- frontend/src/i18n/locales/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/i18n/locales/de.json b/frontend/src/i18n/locales/de.json index f58ae48e..0f2b9671 100644 --- a/frontend/src/i18n/locales/de.json +++ b/frontend/src/i18n/locales/de.json @@ -3038,7 +3038,7 @@ "favorites": "Favoriten", "favoritesDesc": "Fotos als Favoriten markieren", "perGuestLimits": "Limits pro Gast", - "perGuestLimitsDesc": "Begrenzen, wie viele Fotos jeder Gast favorisieren oder liken kann — praktisch für „Wählen Sie Ihre Top-N fürs Album"-Abläufe. 0 = unbegrenzt. Eine Senkung unter den aktuellen Stand eines Gasts lässt vorhandene Einträge bestehen; nur neue Hinzufügungen werden blockiert, bis er welche entfernt.", + "perGuestLimitsDesc": "Begrenzen, wie viele Fotos jeder Gast favorisieren oder liken kann — praktisch für „Wählen Sie Ihre Top-N fürs Album“-Abläufe. 0 = unbegrenzt. Eine Senkung unter den aktuellen Stand eines Gasts lässt vorhandene Einträge bestehen; nur neue Hinzufügungen werden blockiert, bis er welche entfernt.", "maxFavoritesPerGuest": "Max. Favoriten pro Gast", "maxFavoritesPerGuestHint": "0 = unbegrenzt", "maxLikesPerGuest": "Max. Likes pro Gast",