agentleFS
CaduS0uzaCaduS0uza/qa-supreme/skills/i18n-l10n-testing/SKILL.md

i18n-l10n-testing

Skill1 starsChanged 2 months agoMITView on GitHub

Test internationalization and localization — missing keys, text expansion, RTL layout, plural rules, date/number/currency formatting, timezone handling, and locale-dependent bugs. Use when the product ships in more than one language or region.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Interpolation safety: every placeholder present in every locale.

    line 17

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

i18n & l10n

Localization bugs are invisible in the developer's locale and obvious to every affected user.

Automated checks

  • Missing keys: fail the build on any key present in the default locale and absent elsewhere, and on any hardcoded user-facing string in the source (lint rule).
  • Unused keys: dead translations cost money to maintain.
  • Pseudo-localization: render [!!! Ŧḗẋŧ ḗẋpȧȧƞḓḗḓ !!!] — 40% longer, accented, bracketed. One pass over the app exposes truncation, clipping and untranslated strings at once.
  • Interpolation safety: every placeholder present in every locale; no locale silently drops {count}.

Layout under translation

German and Finnish expand ~35% over English; Japanese contracts. Test the longest realistic translation of every button, tab and label — a nav that wraps to two lines at de-DE is a layout bug, not a translation issue.

RTL (ar, he, fa) is not a mirror of the CSS: check icon direction, progress and slider direction, text alignment, punctuation placement, and that numbers and embedded Latin words read correctly. Use logical CSS properties (margin-inline-start) and assert dir="rtl" renders without overlap.

Formatting

ThingTrap
Dates03/04/2026 is March 4 or April 3 depending on locale. Assert with Intl.DateTimeFormat, never string equality
Numbers1.234,56 vs 1,234.56; Indian grouping 12,34,567
Currencysymbol position, spacing, and the fact that formatting is not conversion
PluralsPolish and Arabic have more than two plural forms — test each category, not just 1 and 2
Sortinglocale-aware collation (Intl.Collator), not byte order
Names & addressesno first/last assumption, no fixed postcode format

Timezones (the silent data corruption)

Store UTC, render local. Test: a user in Pacific/Auckland creating a record at 23:30 local sees it under today, not yesterday. Run the suite under at least one non-UTC timezone in CI (TZ=Pacific/Auckland) — it catches an entire class of off-by-one-day bugs that a UTC-only CI never will.

Output

Per locale: missing keys, truncations found (with screenshots), formatting failures, RTL layout defects. Never report "translations look fine" — report the locales actually exercised.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.