Skip to content
Agent Orchestration
Skill

/localize

Full localization pipeline: scan for hardcoded strings, extract and manage string tables, validate translations, generate translator briefings, run cultural/sensitivity review, manage VO localization, test RTL/platform requirements, enforce string freeze, and report coverage.

From plugin
claude-code-game-studios
25k73 skills49 agents
Install
$ npx -y skills add Donchitos/Claude-Code-Game-Studios --skill localize --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/localize

Context preview

The summary Claude sees to decide when to auto-load this skill.

Full localization pipeline: scan for hardcoded strings, extract and manage string tables, validate translations, generate translator briefings, run cultural/sensitivity review, manage VO localization, test RTL/platform requirements, enforce string freeze, and report coverage.

SKILL.md

localize.SKILL.md
name: localize
description: "Full localization pipeline: scan for hardcoded strings, extract and manage string tables, validate translations, generate translator briefings, run cultural/sensitivity review, manage VO localization, test RTL/platform requirements, enforce string freeze, and report coverage."
argument-hint: "[scan|extract|validate|status|brief|cultural-review|vo-pipeline|rtl-check|freeze|qa]"
user-invocable: true
agent: localization-lead
allowed-tools: Read, Glob, Grep, Write, Bash, Task, AskUserQuestion
model: sonnet

Localization Pipeline

Localization is not just translation — it is the full process of making a game feel native in every language and region. Poor localization breaks immersion, confuses players, and blocks platform certification. This skill covers the complete pipeline from string extraction through cultural review, VO recording, RTL layout testing, and localization QA sign-off.

**Modes:**

  • `scan` — Find hardcoded strings and localization anti-patterns (read-only)
  • `extract` — Extract strings and generate translation-ready tables
  • `validate` — Check translations for completeness, placeholders, and length
  • `status` — Coverage matrix across all locales
  • `brief` — Generate translator context briefing document for an external team
  • `cultural-review` — Flag culturally sensitive content, symbols, colours, idioms
  • `vo-pipeline` — Manage voice-over localization: scripts, recording specs, integration
  • `rtl-check` — Validate RTL language layout, mirroring, and font support
  • `freeze` — Enforce string freeze; lock source strings before translation begins
  • `qa` — Run the full localization QA cycle before release

If no subcommand is provided, output usage and stop. Verdict: **FAIL** — missing required subcommand.

---

Phase 2A: Scan Mode

Search `src/` for hardcoded user-facing strings:

  • String literals in UI code not wrapped in a localization function (`tr()`, `Tr()`, `NSLocalizedString`, `GetText`, etc.)
  • Concatenated strings that should be parameterized
  • Strings with positional placeholders (`%s`, `%d`) instead of named ones (`{playerName}`)
  • Format strings that mix locale-sensitive data (numbers, dates, currencies) without locale-aware formatting

Search for localization anti-patterns:

  • Date/time formatting not using locale-aware functions
  • Number formatting without locale awareness (`1,000` vs `1.000`)
  • Text embedded in images or textures (flag asset files in `assets/`)
  • Strings that assume left-to-right text direction (positional layout, string assembly order)
  • Gender/plurality assumptions baked into string logic (must use plural forms or gender tokens)
  • Hardcoded punctuation (e.g. `"You won!"` — exclamation styles vary by locale)

Report all findings with file paths and line numbers. This mode is read-only — no files are written.

---

Phase 2B: Extract Mode

  • Scan all source files for localized string references
  • Compare against the existing string table in `assets/data/strings/`
  • Generate new entries for strings not yet keyed
  • Suggest key names following the convention: `[category].[subcategory].[description]`
  • Example: `ui.hud.health_label`, `dialogue.npc.merchant.greeting`, `menu.main.play_button`
  • Each new entry must include a `context` field — a translator comment explaining:
  • Where it appears (which screen, which scene)
  • Maximum character length
  • Any placeholder meaning (`{playerName}` = the player's chosen display name)
  • Gender/plurality context if applicable

Output a diff of new strings to add to the string table.

Present the diff to the user. Ask: "May I write these new entries to `assets/data/strings/strings-en.json`?"

If yes, write only the diff (new entries), not a full replacement. Verdict: **COMPLETE** — strings extracted and written.

---

Phase 2C: Validate Mode

Read all string table files in `assets/data/strings/`. For each locale, check:

  • **Completeness** — key exists in source (en) but no translation for this locale
  • **Placeholder mismatches** — source has `{name}` but translation omits it or adds extras
  • **String length violations** — translation exceeds the character limit recorded in the source `context` field
  • **Plural form count** — locale requires N plural forms; translation provides fewer
  • **Orphaned keys** — translation exists but nothing in `src/` references the key
  • **Stale translations** — source string changed after translation was written (flag for re-translation)
  • **Encoding** — non-ASCII characters present and font atlas supports them (flag if uncertain)

Report validation results grouped by locale and severity. This mode is read-only — no files are written.

---

Phase 2D: Status Mode

  • Count total localizable strings in the source table
  • Per locale: count translated, untranslated, stale (source changed since translation)
  • Generate a coverage matrix:
## Localization Status
Generated: [Date]
String freeze: [Active / Not yet called / Lifted]

| Locale | Total | Translated | Missing | Stale | Coverage |
|--------|-------|-----------|---------|-------|----------|
| en (source) | [N] | [N] | 0 | 0 | 100% |
| [locale] | [N] | [N] | [N] | [N] | [X]% |

### Issues
- [N] hardcoded strings found in source code (run /localize scan)
- [N] strings exceeding character limits
- [N] placeholder mismatches
- [N] orphaned keys
- [N] strings added after freeze was called (freeze violations)

This mode is read-only — no files are written.

---

Phase 2E: Brief Mode

Generate a translator context briefing document. This document is sent to the external translation team or localisation vendor alongside the string table export.

Read:

  • `design/gdd/` — extract game genre, tone, setting, character names
  • `assets/data/strings/strings-en.json` — the source string table
  • Any existing lore or narrative documents in `design/narrative/`

Generate `production/localization/translator-brief-[locale]-[date].md`:

# Translator Brief — [Game Name] —
Read more
Ships withclaude-code-game-studios

Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.

Get the whole plugin

Other skills on claude-code-game-studios.