i18n Extractor Skill: Lift Strings Without Breaking Layouts
Lifts hardcoded UI strings into the catalog with stable keys and the project's t() call. Bulk i18n extractions tend to break layouts because nobody validates each replacement in context.
An installable i18n-extractor skill. Walks the changed UI, lifts hardcoded text into the catalog, and replaces the literals with the project's t() call.
What It Does
- Diff-scoped — only the strings in your change, no codebase sweep
- Detects your i18n library — react-i18next, next-intl, react-intl, formatjs
- Stable keys, not English —
board.empty.title, not the sentence itself - No machine translation — non-source languages get TODO markers
Install in 30 Seconds
Pick your tool above and download:
- Claude Code:
~/.claude/skills/i18n-extractor/SKILL.md - OpenAI Codex CLI: append to
AGENTS.md - Cursor: append to
.cursorrules
Same content, three install paths. Reload and ask for the audit on your next change.
Why This Skill Earns Its Keep
Bulk i18n extractions tend to break layouts because nobody validates each replacement in context. This skill keeps the scope small — your diff only — and refuses to machine-translate, because the wrong translation is worse than no translation at all.
Install once, run before every push.