Skip to content
Back to skills

I18n Integrity

ASecurity

Translation integrity: every key present in every language, no hardcoded strings, consistent placeholders and plurals. Runs when user-facing text changes.

  • 24 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 3, 2026
ai-agentsgobash

Security analysis

A100/100

Scanned October 3, 2026

npx -y skills add crewforth/crewforth --skill i18n-integrity --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of I18n Integrity?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for I18n Integrity
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/crewforth-i18n-integrity/badge)](https://www.skillsdirectory.com/skills/crewforth-i18n-integrity)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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 the next line; why it sits in the body: AGENT_TEMPLATE.md -->
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. Languages: the set the project declares (e.g. in `CLAUDE.md` or the locale directory).

## 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).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…