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.
What you get: 1 file · 58.15 KB · ZIP
See purchase optionsProduct 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
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.
Included in Getly ProGet Pro
Tags
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



