Skip to content

Fix missing i18n translations in admin UI and custom sections#162

Merged
vincentmakes merged 1 commit into
mainfrom
claude/analyze-hardcoded-text-OGa8v
May 4, 2026
Merged

Fix missing i18n translations in admin UI and custom sections#162
vincentmakes merged 1 commit into
mainfrom
claude/analyze-hardcoded-text-OGa8v

Conversation

@vincentmakes
Copy link
Copy Markdown
Owner

Description

This PR fixes hardcoded English strings in the admin interface that were bypassing the i18n system and appearing in English regardless of the user's selected locale. The issue affected:

  1. Custom section item links: "View →" text in grid/list layouts and "Learn More →" in card layouts were hardcoded, while the public-side renderer already used t('view_link') and t('learn_more')
  2. Custom section UI: "Manage Items" button text was hardcoded
  3. Item row action tooltips: "Toggle Visibility", "Edit", "Delete", and "Drag to reorder" titles across Experience, Certifications, Education, Skills, Projects, and custom-section item rows were all hardcoded

These strings also leaked into browser-printed PDFs, showing English text regardless of locale selection.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • Translation (new or updated language files)

Changes Made

  • Replaced all hardcoded English strings in public/shared/admin.js with t(...) calls
  • Added 4 new i18n keys to all 8 locale files:
    • action.manage_items
    • action.edit
    • action.delete
    • action.drag_to_reorder
  • Reused existing keys: view_link, learn_more, action.toggle_visibility
  • Updated version to 1.49.3 in package.json and version.json
  • Added changelog entries for both 1.49.2 and 1.49.3

Checklist

  • I have tested my changes locally (npm test passes)
  • Version has been bumped in all 3 files (package.json, package-lock.json, version.json)
  • CHANGELOG.md has been updated with new entries
  • All user-visible strings now use t('key') instead of hardcoded English
  • New i18n keys added to all 8 locale files (en, de, fr, nl, es, it, pt, zh)
  • Key parity maintained across all locales (enforced by tests/frontend.test.js)

Test Plan

Existing frontend tests verify i18n key parity across all 8 locale files. The changes ensure that:

  • Admin UI respects the user's selected locale
  • Custom section previews and printed PDFs display text in the correct language
  • No new hardcoded English strings are introduced

https://claude.ai/code/session_01NTce1xfN8xiRcHWqoZaeV5

Several user-visible strings in public/shared/admin.js bypassed the i18n
system and stayed in English regardless of the user's selected locale,
also leaking into browser-printed PDFs. The admin-side renderer had
drifted from the public-side renderer in public/shared/scripts.js, which
already routed the same strings through t(...). Affected:

- "View →" link on grid- and list-layout custom-section items.
- "Learn More →" link on cards-layout custom-section items.
- "Manage Items" button on every custom section.
- title tooltips on per-row Toggle Visibility / Edit / Delete /
  drag-handle controls across Experience, Certifications, Education,
  Skills, Projects, and custom-section item rows.

All call sites now go through t(...). Reused existing keys view_link,
learn_more, and action.toggle_visibility; added action.manage_items,
action.edit, action.delete, and action.drag_to_reorder to all 8 locale
files so key parity (enforced by tests/frontend.test.js) is preserved.

Fixes #161

https://claude.ai/code/session_01NTce1xfN8xiRcHWqoZaeV5
@vincentmakes vincentmakes force-pushed the claude/analyze-hardcoded-text-OGa8v branch from 330027b to c4d1061 Compare May 4, 2026 19:28
@vincentmakes vincentmakes merged commit d50589f into main May 4, 2026
3 checks passed
@vincentmakes vincentmakes deleted the claude/analyze-hardcoded-text-OGa8v branch May 4, 2026 19:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants