Write internationalisation-friendly translation strings

SkillDev tools

Translation-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.

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

  1. Have a JavaScript codebase with user-visible strings to review or translate.
  2. Add the translation-strings skill to the agent's available skills.
  3. Ask the agent to review the codebase for internationalisation readiness, set up an i18n library, or prepare strings for a new locale.
  4. 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