Translation integrity: every key present in every language, no hardcoded strings, consistent placeholders and plurals. Runs when user-facing text changes.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add byerlikaya/claude-starter-kit --skill i18n-integrity --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of I18n Integrity?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/byerlikaya-i18n-integrity-claude-starter-kit)More formats (shields.io, HTML) on the badges page.
---
name: i18n-integrity
description: |
Translation integrity: every key present in every language, no hardcoded strings, consistent placeholders
and plurals. Runs when user-facing text changes.
---
# Translation Integrity (i18n)
<!-- routing-eval reads this line; it lives in the BODY so the always-on skill LISTING stays inside
Claude Code's budget (1% of the context window) — an overflowing listing gets descriptions
truncated or dropped, which strips the very keywords a match depends on. -->
Trigger phrases: "i18n", "translation", "language file", "missing translation", "localization", "translate", "untranslated", "hardcoded string", "multi language", "multiple languages", "still in english", "locale"
Goal: no missing/broken text in any language. Default languages: **TR / EN / DE / RU** (the project sets these).
## Audit dimensions
- **Key parity:** every key has a counterpart in ALL languages; a missing/extra key = a finding.
- **No hardcoded strings:** user-facing text is not embedded in code, it comes from the language file.
- **Placeholder consistency:** `{name}`, `%s`, ICU `{count, plural, ...}` are identical in every language.
- **Plural rules:** language-specific plural forms (especially RU) are correct.
- **Empty/identical value:** an untranslated (identical to the source) placeholder value is flagged.
## Check (key-set comparison)
```bash
# Example: compare the key sets of JSON language files
for f in locales/*.json; do echo "== $f =="; jq -r 'keys[]' "$f" | sort > "/tmp/$(basename $f).keys"; done
diff /tmp/tr.json.keys /tmp/en.json.keys # differences = missing/extra keys
```
## DoD
- Key sets are equal across all languages; no hardcoded user text; placeholders are consistent.
- **Missing translation = red** (no deferral).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!