Skip to main content

Command menu

Jump to a page or search the catalog

AI Tools & Scripts

Translation Files Check

Check translation files before a language ships: placeholders that differ from the base, files that will not load, broken ICU plurals, apostrophes that hide {0}, and missing or untranslated keys in JSON, YAML, .po, .arb, .strings and Android XML.

$5.00

What you get: 1 file · 58.15 KB · ZIP

See purchase options

Product description

One translator turns {name} into {nom}, writes L'application in an Android strings.xml, or drops the other branch of an ICU plural, and the app shows a raw placeholder, the build stops, or a screen fails for every user of that language. This skill finds those mistakes, and the quieter gaps such as missing keys, copied English text and Arabic plurals with only one and other, before you ship.

Your agent runs a scanner on your project. It reads locale JSON (i18next, next-intl, vue-i18n, react-intl, Laravel, Chrome extensions), Rails and Symfony YAML, gettext .po, Flutter .arb, Apple .strings and .stringsdict, Android res/values XML and Java .properties. It groups the files that translate each other, picks the base language from file and folder names (en, en-US, values/, a bundle without a language suffix, or the Flutter template file), says which base it used, and compares every other language with it. It reads ICU MessageFormat, knows the CLDR plural forms of each language and the placeholder style of each format, tells a real plural set from an ordinary key such as payment.other, reads 100%ige as text rather than a placeholder, and handles Arabic and other right-to-left text. It never runs your app or a translation tool. It returns BLOCK, REVIEW, or NOT FLAGGED, with the file, line, reason, and a safer approach. Secrets are never printed.

What it checks

BLOCK (fix before shipping)

  • I01: placeholders that differ from the base text ({name}, {{count}}, %s, %1$d, %(name)s, %@, {0}), including a changed type such as %d to %s, a plural form that drops an argument other than the count, and an ICU plural that never shows its number

  • I02: files that will not load or build: JSON, YAML, .po and .strings syntax errors, duplicate msgids, duplicate keys in Symfony YAML, unescaped Android apostrophes, duplicate Android resources, ARB @@locale mismatches

  • I03: ICU messages that cannot be read (unbalanced braces, no other option, unknown plural category) and plural sets without other

  • I04: apostrophes that make {0} or {name} print as written in Java MessageFormat and ICU messages

  • I05: script tags, event handlers or javascript: links inside a translation

REVIEW (check before release)

  • I11: keys missing from a translation

  • I12: keys the base file does not have

  • I13: empty translations

  • I14: text copied unchanged from the base language

  • I15: HTML or rich-text tags that differ from the base text

  • I16: keys written twice in one file

  • I17: plural forms a language needs (Arabic, Russian, Polish and others), and .po plural counts that differ from nplurals

  • I18: fuzzy .po entries

  • I19: a Rails root key or .po Language header that names another language than the file

What's included

  • The scanner (Python 3.9+, standard library only)

  • A rules guide with the reason and safer approach for each rule

  • A risky and a safe example project (web, Android, iOS, Django, Rails and Spring files with Arabic, German and French translations), and the real report the scanner produces on the risky one

Limits

It reads each file as written: translations loaded at run time, keys built in code, and whether the app renders a message as text or HTML are not checked. Each file is compared only with the base file of its own group, so keys moved between files show as missing and extra. XLIFF, .resx, .xcstrings, Qt .ts, JSON5 and TOML locale files are not read. Untranslated text is found by a heuristic. NOT FLAGGED is not a guarantee.

Contents

One ZIP file with 37 files: SKILL.md, the scanner in scripts/ (8 Python files), references/rules.md (every rule with its reason and safer approach), and examples/ (26 example files plus report.md, the real scanner output on the risky example).

How to use: This is an agent skill: a folder with a SKILL.md file and Python scripts that an AI coding agent such as Claude Code, Cursor, or Codex CLI can run. Unzip it into your agent's skills folder (for Claude Code: ~/.claude/skills/), then ask your agent to check your project. The scripts also run on their own with Python 3.9 or newer, with nothing to install. They read your files only: no network access, and nothing is sent anywhere.

What you get

1 file · 58.15 KB

  • translation-files-check-1.0.0.zipZIP · 58.15 KB

Included in Getly ProGet Pro

LicenseCommercial use allowed
PublishedNov 12, 2026
File size58.15 KB
File formatZIP
Versionv1.0

Tags

i18nlocalizationtranslationgettextflutterai agent skill
R
RR HH

Frequently asked questions

Do I get access instantly?

Yes. This is a digital product - you can download it right after checkout, straight from your library.

Can I use it for commercial projects?

Yes. Commercial use is allowed: use it in your own business and in things you sell. You may not resell or redistribute the file itself.

What's your refund policy?

You can request a refund within 30 days. If something isn't right, request it from your order and the Getly team reviews it.

What file formats and sizes will I get?

You'll download 1 file - ZIP - 58.15 KB in total.

Do I get free updates?

Yes - when the seller ships a new version, you can re-download the latest files from your library at no extra cost. Check the changelog for recent updates.

Price

$5.00