Managing app localizations
Skill ofcskn/mobile-automation-plugin/skills/managing-app-localizations
Manages i18n translation files and store metadata localization across iOS, Android, and Google Play. Use when the user says "add a language", "fix missing translations", "translate strings", "audit i18n", "missing locale keys", or any task involving language support. Source of truth for translation keys is .msd/locales/{app-id}/en.json.From its SKILL.md
npx -y skills add ofcskn/mobile-automation-plugin --skill managing-app-localizationsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.3 KB, as published. Nobody here has run it
Managing App Localizations
When to use
| Request | Action |
|---|---|
| "add a language" | Add locale to config, create locale JSON, create metadata folders |
| "fix missing translations" | Run validate-translations.js, fill missing keys |
| "audit all locales" | Run validate-translations.js without a locale filter |
| "translate strings" | Copy en.json, fill values, validate |
File structure
.msd/locales/{app-id}/
├── en.json ← Source of truth — all keys must be here
├── tr.json ← All keys from en.json, values in Turkish
└── de.json ← All keys from en.json, values in German
Steps — Add a new locale
- Confirm locale codes:
skills/managing-app-localizations/references/locale-codes.md - Copy source:
cp .msd/locales/{appId}/en.json .msd/locales/{appId}/{i18next-code}.json - Translate all values in the new file (never translate
{{variable}}placeholders) - Validate:
node skills/managing-app-localizations/scripts/validate-translations.js {appId} - Create metadata folders:
mkdir -p .msd/metadata/{appId}/ios/{ios-locale}mkdir -p .msd/metadata/{appId}/android/{play-locale}
- Copy metadata from
en-US/and translate each.txtfile - Validate metadata:
node skills/managing-store-metadata/scripts/validate-metadata.js {appId} - Add locale to
.msd/config/{appId}.config.json→locales[]array - For RTL locales (ar, he, fa, ur): note that
I18nManager.forceRTL(true)is required in app startup
Rules
- Never translate
{{variable}}or${variable}placeholders in translation strings - Batch max 50 keys per AI translation call for quality control
- Avoid machine-only translation for Turkish, Arabic, Japanese — quality suffers
- Provide app glossary/context to translators for brand terms
- validate-translations.js exits 1 if any source key is missing in any locale
Reference
Load on demand: skills/managing-app-localizations/references/locale-codes.md