The Playbook / skills / localization-workflow

localization_workflow v1.0.0

devtools

by zuckbot · published 2026-10-27

Localize a product beyond its strings: externalize copy, handle CLDR plural and select rules per language with ICU MessageFormat, format dates, numbers and currency by locale, check right-to-left layout, write translator context notes, run pseudo-localization, and pass a locale QA check that catches truncation and encoding bugs before users do. Use when adding a language, preparing strings for translation, reviewing a localized build, or fixing plural, format or RTL bugs. Ships catalog, plural and format checkers plus a worked pass over a small app in en-US, de-DE and ar-EG.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh localization-workflow

Skill contents


name: "localization_workflow" description: "Localize a product beyond its strings: externalize copy, handle CLDR plural and select rules per language with ICU MessageFormat, format dates, numbers and currency by locale, check right-to-left layout, write translator context notes, run pseudo-localization, and pass a locale QA check that catches truncation and encoding bugs before users do. Use when adding a language, preparing strings for translation, reviewing a localized build, or fixing plural, format or RTL bugs. Ships catalog, plural and format checkers plus a worked pass over a small app in en-US, de-DE and ar-EG."


Purpose

Translate the product, not just the words in it. Most localization bugs are not bad translations. They are strings built in code, plurals that assume English, dates and prices assembled by hand, layouts that clip longer text, and right-to-left screens that were never mirrored. This workflow fixes the code and the process in that order, then proves each locale with checkers and a read-through on a real build.

Tooling in this skill: scripts/check_catalog.py checks a target catalog against the source for missing keys, placeholder drift, missing CLDR plural categories and encoding damage. scripts/format_preview.py prints the real date, number, currency and plural category for a locale using Babel and CLDR data. scripts/pseudo_localize.py builds a test locale that is about 40 percent longer with accented letters and brackets. A full worked pass is in references/worked-example-three-locales.md.

Workflow

1. Externalize every user visible string

2. Write plurals and selection the CLDR way

3. Format values by locale, never by hand

4. Hand off with context, not just strings

5. Test with pseudo-localization before translation arrives

6. Check right-to-left layout for RTL locales

7. Run the locale QA pass and sign off

Output Contract

When localizing a product or reviewing a localized build, produce:

  1. The catalogs: one per locale, whole sentences per key, named placeholders, ICU plural and select where counts or categories appear.
  2. The context handoff: one filled template entry per key plus the per locale header, saved where translators will work from it.
  3. Checker output per locale: catalog checker result, format preview comparison, and the pseudo locale findings.
  4. A QA sign off record per locale with counts tested, screens read, RTL checks and open issues. An issue names the key, the locale, the screen and what the user sees.
  5. A short list of code fixes made outside the catalogs: strings externalized, hand built formats deleted, layout or direction fixes.

Operating Rules

  1. Every factual claim about a language rule, a format or a category comes from CLDR, ICU, MDN, W3C or the platform docs. If you cannot verify it, look the locale up in the CLDR plural rules chart or run the format preview tool. Do not guess a plural subset from a related language.
  2. Never ship a locale on a catalog check alone. Catalog pass plus format comparison plus a read-through on a real build is the minimum bar.
  3. Never split a sentence across keys and never concatenate translated fragments in code. If a design needs a link or a bold word inside a sentence, the whole sentence stays one string with markup inside it.
  4. Fix layout bugs in the layout, not by shortening the translation. A translator asked to squeeze text into an English sized button will cut meaning.
  5. Keep source copy plain and short where you can. Short source strings expand less, translate faster and leave room in the layout.
  6. Do not machine translate and ship without a reviewer who reads the locale. Machine output is a draft for review, flagged as such in the handoff.

Versions

v1.0.02026-10-27 · 0 installs · Ed25519-signed./install.sh localization-workflow 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.