Skip to content
Back to skills

Translation Strings

ASecurity

Use when reviewing a codebase for internationalisation readiness, setting up an i18n library, or preparing strings for a new locale.

  • 74,358 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 5, 2026
developmentjavascriptgojavafrontend

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add thedaviddias/Front-End-Checklist --skill translation-strings --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Translation Strings?

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

Security grade badge for Translation Strings
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thedaviddias-translation-strings/badge)](https://www.skillsdirectory.com/skills/thedaviddias-translation-strings)

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: translation-strings
description: "Use when reviewing a codebase for internationalisation readiness, setting up an i18n library, or preparing strings for a new locale."
metadata:
  category: javascript
  priority: medium
  difficulty: intermediate
  estimatedTime: "30"
  source: frontendchecklist.io
  url: https://frontendchecklist.io/rules/javascript/translation-strings
---

# Write internationalisation-friendly translation strings

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/rules/javascript/translation-strings

Files in this skill

  • SKILL.md1.9 KB
  • references/rule.md7.5 KB

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…