cmux-localization — Claude Code skill: UI string localization
A skill for managing translations of user-facing strings in your interface. Runs an audit whenever you change button text, menus, tooltips, or error messages.
npx skills add manaflow-ai/cmux --skill cmux-localization -a claude-codeWhat cmux-localization does
cmux-localization handles localization of UI strings: settings rows, menus, shortcut metadata, schema text, command help, alerts, tooltips, and web messages. When you add or change user-facing copy, the skill runs ./scripts/localize-changes, discovers changed localization keys, and prepares a translation packet. You fill in translated values or confirm that an existing translation is still correct, and the script remembers your decision.
The skill ensures every user string is localized to nine macOS languages: English, German, French, Arabic, Spanish, Traditional and Simplified Chinese, Korean, and Japanese. English and Japanese are always required. Strings live in Resources/Localizable.xcstrings, validated through scripts/localization_catalog.py check, and imported via scripts/localization_catalog.py merge.
Core rule: never write bare strings in SwiftUI Text(), Button(), or dialogs. Use String(localized:"key.name", defaultValue:"text") with keys in Resources/Localizable.xcstrings. Before finishing any UI or help text change, run the audit and resolve all script flags.
What it helps with
- verify all UI strings are translated into supported macOS languages
- find missed bare strings in Swift and web code
- manage translation packets and confirm old translations remain accurate
- ensure plural forms translate correctly for each language
- record exceptions for strings that should not be translated
Example prompts for the agent
- I added a new button label to the UI, run localization and show me what needs translating
- Check that all my UI strings are localized to nine macOS languages before I open a pull request
- I changed alert text, run the audit and tell me where translations are needed
How to install cmux-localization
1Skills CLI (Vercel)
npx skills add manaflow-ai/cmux --skill cmux-localization -a claude-code2Manually: put the files in place
~/.claude/skills/cmux-localization/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/cmux-localization/
1Skills CLI (Vercel)
npx skills add manaflow-ai/cmux --skill cmux-localization -a codex2Manually: put the files in place
.agents/skills/cmux-localization/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add manaflow-ai/cmux --skill cmux-localization -a cursor2Manually: put the files in place
.cursor/skills/cmux-localization/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install manaflow-ai/cmux cmux-localization2Manually: put the files in place
.github/skills/cmux-localization/SKILL.md1Skills CLI (Vercel)
npx skills add manaflow-ai/cmux --skill cmux-localization -a gemini-cli2Platform CLI
gemini skills install https://github.com/manaflow-ai/cmux --path skills/cmux-localizationManually: put the files in place
.devin/skills/cmux-localization/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add manaflow-ai/cmux --skill cmux-localization -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set12
The whole set →Similar
Questions about cmux-localization
How do I install cmux-localization in Claude Code?
Run npx skills add manaflow-ai/cmux --skill cmux-localization -a claude-code. The skill will be available at ~/.claude/skills/cmux-localization/SKILL.md.
What does cmux-localization do?
It manages localization of user-facing strings in cmux: settings rows, menus, shortcuts, schema text, command help, alerts, tooltips, and web messages. It checks that each string is translated to nine macOS languages and reminds you when you change text that needs new translations.
Which languages must be translated?
Nine languages: English, German, French, Arabic, Spanish, Traditional and Simplified Chinese, Korean, and Japanese. English and Japanese are always required. If a string should not be translated, add a record to scripts/localization-allowed-omissions.json.