Lately, I’ve been letting AI agents write a lot of my code. It’s incredibly fast, but I noticed a silent problem: it’s ruining my i18n setup.
AI constantly makes these subtle mistakes:
Hardcoding strings directly into UI elements (e.g., placeholder="Submit")
Deleting components but leaving behind dead, orphaned translation keys
Hallucinating namespaces that don't exist
Standard grep or regex-based tools are blind to dynamic keys (t(benefit.key)) and framework-specific attributes. So, I built i18n-sharpen — an AST-based i18n linter that parses TS, JS, Vue, Svelte, and Astro like a real compiler.
It runs locally or on your CI, catches missing/dead keys, and prevents hardcoded strings from ever reaching production. It’s essentially a guardrail that lets your AI code fast without accumulating tech debt.
Read my full breakdown on why "AI-friendly codebases" need executable guardrails: https://hiennguyen.io/en/blog/post/why-i-built-i18n-sharpen/
Check out the open-source repo: https://github.com/Schalkez/i18n-sharpen

Top comments (0)