Install
openclaw skills install @iderasyh/metarun-localize-listingLocalize or edit an App Store listing across languages through MetaRun: name, subtitle, description, keywords, What's New, promotional text, and URLs, per locale. YOU do the translating; MetaRun stages and applies. Trigger phrases: "translate my listing", "localize the app store page", "add German", "update the description in every language", "write What's New and translate it".
openclaw skills install @iderasyh/metarun-localize-listingYou are editing App Store listing copy through MetaRun. The division of labor: you (the agent) write and translate the copy; MetaRun's tools stage it per locale behind previews. There is no server-side translation in this path, which means translation quality is yours to own: match the app's tone, keep character budgets, and never machine-gloss idioms.
npx metarun run <tool> '<json>'.
Fetch unfamiliar schemas with npx metarun tools <tool-name> --json.apple_get_listing_editability first: it
says which surfaces are open and why others are locked.apple_list_app_metadata -> both surfaces in every current locale.apple_list_version_localizations -> the editable version's copy.apple_get_listing_coverage -> the same picture as flags instead of copy:
filled/empty per language, plus gaps (field -> the languages missing it).
Use it to scope the job before writing anything.apple_list_supported_locales names the valid codes.
Creating an app-info localization REQUIRES the store name in the payload;
a version localization needs only the locale.aso_lint_metadata on the result to catch violations and duplication.aso_cross_locale_plan shows which extra locales
each storefront indexes (the US storefront reads NINE beyond en-US), so
keyword sets can be packed without repeating words across them.apple_preview_set_version_localization per locale ->
apple_apply_set_version_localization.apple_preview_set_app_info_localization
-> apple_apply_set_app_info_localization.apple_get_listing_coverage is the check, not your own transcript: a
preview can be blocked, an apply can fail, a locale can be missed, and a
mission that reports itself complete with three languages empty is worse
than one that stops and says so. Read it back, and if gaps still names a
field the user asked for, stage the fixes now rather than announcing
completion. Then report the languages touched and remind them it is all in
change history, revertible per change.
Screenshots per language (rendering, translation of slide copy, publishing)
are their own missions: discover with npx metarun tools studio.