Appstore metadata localizer
Skill Xopoko/build-swift-apps/skills/appstore-metadata-localizer
Use when App Store listing text must be translated or market-adapted across locales, including descriptions, keywords, What's New, subtitles, names, privacy text, and App Store Connect languages. Not for non-translation metadata edits, release-note drafting, or subscription/IAP display-name localization.From its SKILL.md
npx -y skills add Xopoko/build-swift-apps --skill appstore-metadata-localizerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- runs commandsInstructs the agent to run 3 commands, including `python3 "$PLUGIN_ROOT/skills/appstore-metadata-localizer/scripts/metadata_localization_lint.py" \ "./localizations" "./app-info-localizations" --recursive` and 2 more.
SKILL.md
2.3 KB, 422 tokens by cl100k_base, as published. Nobody here has run it
App Store Metadata Localizer
Pull source metadata, translate/adapt it, validate limits, get approval, then upload version or app-info localizations.
Use appstore-metadata-sync for canonical JSON field edits that are not translation-first. Use appstore-release-notes-writer when the requested artifact is only What's New or promotional text. Use appstore-subscription-localizer for subscription, group, or IAP display names.
Local Lint Helper
After writing or editing localized .strings or metadata JSON, run the bundled limit checker:
python3 "$PLUGIN_ROOT/skills/appstore-metadata-localizer/scripts/metadata_localization_lint.py" \
"./localizations" "./app-info-localizations" --recursive
The helper checks App Store field limits for name, subtitle, keywords, description, whatsNew, and promotionalText. It does not translate, rewrite files, upload, or call ASC. Pass --json for machine-readable output.
Workflow
- Confirm current
asc localizationsflags, then resolve app, version, and app-info IDs deterministically. - Download source and existing localizations; if download is unavailable, inspect with
asc localizations list. - Translate one target locale at a time from the source locale. Preserve formatting and meaning; do not translate from memory.
- Adapt keywords for native App Store search behavior instead of literal translation.
- Run
metadata_localization_lint.py, then show a field-by-locale summary table and wait for approval. - Upload only after approval, then verify with the matching
asc localizations listcommand.
Translation Rules
Use formal, professional App Store register. Keep the app name unchanged unless the user explicitly asks to translate it. For updates, download current localization, show a diff, get approval, then upload.
References
references/appstore-metadata-localizer.mdfor supported locales, detailed ASC commands, field scope,.stringsformat, and translation rules.
What ships with it: 1 file
6.3 KB alongside SKILL.md, 1 of them executable
scripts/
- metadata_localization_lint.pyruns6.3 KB
Gives 0 of the 12 instructions most translation skills give in 422 tokens
Counted across 286 of the 304 authors here whose files we hold, read 2026-09-06
- Preserve all markdown formattingin 8 of 286, across 5 files
- Use ICU message format for complex stringsin 8 of 286
- Preserve all numbers, dates, and amounts exactlyin 7 of 286
- Use CSS logical properties for RTL layoutsin 7 of 286
- Format dates, numbers, and currencies with FormatStylein 7 of 286, across 6 files
- Use locale-aware formatters for dates, numbers, and currencyin 7 of 286
- Merge translated chunks in orderin 6 of 286, across 3 files
- Use logical CSS properties instead of physical onesin 6 of 286
- Use leading and trailing, never left and rightin 6 of 286, across 5 files
- Use time-limited SAS URLs for document translationin 5 of 286, across 2 files
- Split long content at markdown block boundariesin 5 of 286, across 2 files
- Run first-time setup before any translation when preferences missingin 5 of 286, across 2 files
Said here and by no other author read
- Download source and existing localizations
- Translate one target locale at a time
- Preserve formatting and meaning
- Adapt keywords for App Store search behavior
- Run the lint script after writing localizations
- Show a field-by-locale summary table
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.