Translate
- Determine the requested keys and English values from the user or
public/translations/en/default.json. Discover supported languages frompublic/translations/; do not rely on a stale language count. - Translate each value naturally, preserving placeholders, brand names, technical terms, and HTML. Keep terminology consistent across related keys.
- For a small change, prepare the maps directly. For substantial batches, delegate independent translation generation to at most four
translatoragents. Give each child its keys and a unique temporary map path. Children generate maps only; they never update locale files. - One writer validates and applies the maps, one key at a time. Include all supported languages and English. Review the dry-run diff before writing:
node scripts/update-translations.js --key <key> --map <unique-map.json> --include-en --dry
node scripts/update-translations.js --key <key> --map <unique-map.json> --include-en --write
- The update script rejects a concurrent writer. Wait for the owner to finish and rerun against current files; never remove a live lock or bypass it. See
docs/agent-playbooks/translations.mdfor interrupted-lock recovery. - Verify every requested key/language and placeholder after applying all maps. Remove only this task's temporary maps and report any uncertain translation.
Do not manually rewrite individual locale files. English fallback is allowed only for technical terms, brand names, or placeholders. Use --delete for an authorized key removal; use --audit --dry to inspect unused keys before an authorized --audit --write.