CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/i18n-string-coverage

Build-an-X workflow that scans source code for untranslated strings - finds hardcoded user-facing text not wrapped in the i18n function (`t()`, `i18n.t`, `gettext`, `__()`, etc.), maps gaps to the team's translation file, reports per-language coverage (en: 100%; fr: 87%; es: 60%), gates per-PR for new untranslated strings. Use when the product ships in multiple locales and the team needs continuous coverage tracking.

79

Quality

99%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

coverage-report.mdreferences/

i18n coverage report template

Fill this from a run: the per-locale block comes from the Step 3 diff, the untranslated-strings block from the Step 2 scan. Post it as a PR comment or a scheduled coverage summary.

i18n coverage report - <sha>

Locales: 5 (en source + 4 targets) Total keys (en): 542 Untranslated source strings: 18 (newly flagged)

Per-locale coverage

LocaleCoverageMissing keysOrphan keysRecent additions
de100%02+5
fr98%120+5
es87%710+5
ja60%2180+5

New untranslated strings in this PR

FileLineStringSuggested key
src/checkout/PromoBanner.tsx18"Apply your discount"checkout.promo.banner_cta
src/cart/EmptyCart.tsx12"Your cart is empty"cart.empty_message

Orphan keys (in locale file but not in source)

These keys exist in de.json but no longer in source - likely deprecated. Recommend deletion:

  • legacy.old_promo_text
  • legacy.old_checkout_button

SKILL.md

tile.json