Write internationalisation-friendly translation strings
SkillDev toolsTranslation-strings is a skill for AI agents that guides work on internationalisation in JavaScript codebases. It covers reviewing code for i18n readiness, setting up an i18n library, and preparing strings for a new locale. It explains why string concatenation breaks translations and how ICU MessageFormat handles word order, pluralisation, and gender.
Available today. Use it from your connected AI after setup.
No other account needed.
Have a JavaScript codebase with user-visible strings to review or translate.
Then ask your AI: use the Write internationalisation-friendly translation strings skill
What your AI can do with it
- Review components and utility functions for hardcoded user-visible strings
- Detect string concatenation involving translated text and missing plural forms
- Replace concatenated strings with ICU MessageFormat patterns
- Move pluralisation handling from conditionals into the i18n library
- Advise on descriptive, feature-scoped translation keys
- Explain how ICU MessageFormat handles variable word order, pluralisation, and gender
Getting started
- Have a JavaScript codebase with user-visible strings to review or translate.
- Add the translation-strings skill to the agent's available skills.
- Ask the agent to review the codebase for internationalisation readiness, set up an i18n library, or prepare strings for a new locale.
- Consult references/rule.md for implementation details, code examples, and framework-specific guidance.
What this skill tells your AI
The instructions your AI receives, as published by thedaviddias/front-end-checklist in skills/translation-strings/SKILL.md and read by ahel’s review.
Naive string concatenation produces untranslatable sentences because word order varies dramatically across languages. A pattern like "Found " + count + " results" cannot be translated correctly into languages where the number appears in a different position or where the noun form changes depending on the count. Bad i18n strings force translators to work around developer mistakes — or simply leave content untranslated.
Quick Reference
- Never concatenate translated strings with variables — use named placeholders
- Use ICU MessageFormat for pluralisation, gender, and select patterns
- Keep translation keys descriptive and scoped to their feature context
- Extract all user-visible strings — do not hardcode any copy in components
Check
Check whether translation strings use proper message formatting with placeholders rather than string concatenation.
Fix
Replace concatenated translation strings with ICU message format patterns and ensure pluralisation is handled via the library, not conditionals.
Explain
Explain why string concatenation breaks translations and how ICU MessageFormat handles variable word order, pluralisation, and gender.
Code Review
Review components and utility functions for hardcoded user-visible strings, string concatenation involving translated text, and missing plural forms.
For full implementation details, code examples, and framework-specific guidance,
see references/rule.md.
Rule page: https://frontendchecklist.io/en/rules/javascript/translation-strings
Signals
- GitHub stars
- 74k
- Forks
- 7k
- Last commit
- Aug 2026
Questions
- When should this skill be used?
- When reviewing a codebase for internationalisation readiness, setting up an i18n library, or preparing strings for a new locale.
- Why is string concatenation a problem for translations?
- Word order varies across languages, and noun forms can change with counts. A pattern like "Found " + count + " results" cannot be translated correctly, forcing translators to work around the mistake or leave content untranslated.
Advanced
- Item type
- skill
- Key
translation-strings- Source
- github.com/thedaviddias/front-end-checklist