Files
GearBox/.planning/phases/34-i18n-foundation/34-08-SUMMARY.md
Jean-Luc Makiola f4e93bf554 docs(34-08): complete German translation gap closure plan summary
- 58 missing German keys added across 5 de/*.json files
- 19/19 i18n parity tests pass
- 1 deviation: fixed JSON syntax error from smart quotes
2026-04-18 13:29:38 +02:00

4.2 KiB

phase, plan, subsystem, tags, dependency_graph, tech_stack, key_files, decisions, metrics
phase plan subsystem tags dependency_graph tech_stack key_files decisions metrics
34-i18n-foundation 08 i18n
i18n
german
locale
gap-closure
requires provides affects
34-06
34-07
german-locale-parity
src/client/locales/de
added patterns
json-locale-files
i18n-key-parity
created modified
src/client/locales/de/common.json
src/client/locales/de/settings.json
src/client/locales/de/threads.json
src/client/locales/de/setups.json
src/client/locales/de/collection.json
Used single quotes instead of German-style „ „ curly quotes in dangerZoneDescription to avoid JSON syntax errors
duration completed tasks_completed tasks_total files_modified
~8 minutes 2026-04-18 1 1 5

Phase 34 Plan 08: German Translation Gap Closure Summary

One-liner: Added 58 missing German translation keys across 5 de/*.json locale files to achieve full key parity with English, fixing fallback display for home, profile, threads, setups, and collection sections.

Objective

Close the German translation gap identified in VERIFICATION.md — plans 34-06/34-07 wired useTranslation into routes and fixed umlaut encoding, but never added corresponding German translations for the new English keys.

Tasks Completed

Task Name Commit Files
1 Add 58 missing German translations to 5 de/*.json files 23172f7 de/common.json, de/settings.json, de/threads.json, de/setups.json, de/collection.json

Key Changes

de/common.json — 34 keys added

  • home.* (3 keys): popularSetups, recentlyAdded, trendingCategories
  • imageUpload.* (4 keys): clickToAdd, invalidType, tooLarge, uploadFailed
  • profile.* (27 keys): full profile management section including account info, password management, danger zone

de/settings.json — 4 keys added

  • currency.suggestion: currency region suggestion with {{symbol}} and {{code}} interpolation
  • currency.switch: switch button label
  • showConversions.title + showConversions.description: price conversion toggle

de/threads.json — 11 keys added

  • card.candidates + card.candidates_one: pluralized candidate count with {{count}} interpolation
  • planning.* (9 keys): full planning section with step-by-step guidance

de/setups.json — 3 keys added

  • card.by: attributed author with {{name}} interpolation
  • card.anonymous: anonymous attribution
  • impact.compareWith: setup comparison prompt

de/collection.json — 6 keys added

  • tabs.setups: setups tab label
  • totals.totalWeight + totals.totalCost: totals bar labels
  • classificationBadge.base + classificationBadge.worn + classificationBadge.consumable: classification badge labels

Verification

bun test tests/i18n/locales.test.ts
19 pass, 0 fail (previously 14 pass, 5 fail)

ASCII umlaut fallback check: 0 matches (no regressions).

Deviations from Plan

Auto-fixed Issues

1. [Rule 1 - Bug] Fixed JSON syntax error from smart quotes in dangerZoneDescription

  • Found during: Task 1 — test run revealed SyntaxError: JSON Parse error: Expected '}'
  • Issue: The German translation for dangerZoneDescription used German-style curly double-quotes „Gelöschter Benutzer" — the closing " (U+201C) was parsed by the JSON parser as the string-closing delimiter, causing a syntax error at line 115
  • Fix: Replaced curly quotes with straight single quotes: 'Gelöschter Benutzer'
  • Files modified: src/client/locales/de/common.json
  • Commit: 23172f7

Known Stubs

None — all translation keys have real German text values, no placeholders.

Threat Flags

None — plan modifies static bundled locale JSON files only. No network endpoints, auth paths, or schema changes introduced.

Self-Check: PASSED

  • src/client/locales/de/common.json — exists and valid JSON
  • src/client/locales/de/settings.json — exists and valid JSON
  • src/client/locales/de/threads.json — exists and valid JSON
  • src/client/locales/de/setups.json — exists and valid JSON
  • src/client/locales/de/collection.json — exists and valid JSON
  • Commit 23172f7 exists
  • bun test tests/i18n/locales.test.ts: 19 pass, 0 fail