Skip to main content

On This Page

How Locale Files Drift Behind English and How to Fix It Automatically

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

Your locale files are drifting behind English and nobody reviews it

Isabelle Hue highlights how teams add new English strings but forget other locales, causing missing keys like auth.signin.button to appear in production screenshots.

Why This Matters

In most projects, internationalization is treated as an afterthought—new keys get added to the source locale without updating translations for French, German, Spanish, etc., leading to silent UI failures that only surface via user complaints or raw key names on screen. Manual backfills by humans or LLMs often mangle placeholders like {name} or {{count}} and strip inline HTML (<b>), introducing runtime interpolation errors that pass code review unnoticed until they hit production.

Key Insights

  • Issue scale: A single PR that adds one English string can quietly fall out of sync across multiple locales; over months this creates dozens of missing keys.
  • Placeholder mangling risk: Both human translators and AI models frequently localize placeholders (e.g., turning {name} into something non‑interpolatable), breaking app logic at runtime.
  • Inline HTML stripping risk: Strings containing <b> or other markup are often reworded or stripped during translation backfill.
  • I18n Autopilot solution (2026): A GitHub App reads the source locale on each PR, identifies only missing keys per locale, translates them while preserving placeholders/HTML exactly, commits changes back to the branch.

Practical Applications

  • Automated translation gap fixing – Use i18n Autopilot on GitHub PRs so missing translations are filled before merge without manual intervention.
  • Avoiding broken interpolations – By preserving {name} / {{count}} exactly during translation generation, the tool prevents common runtime crashes caused by mangled placeholders.
  • Catch‑up without drift – Teams using flat (locales/en.json) or nested (locales/en/<namespace>.json) structures can keep all languages synchronized automatically release after release.

References:

Continue reading

Next article

7 Code Quality Checkers for Vibecoded Projects: AI-Generated Code Needs Its Own Audit Stack

Related Content