npx skills add ...
npx skills add rorkai/app-store-connect-cli-skills --skill asc-localize-metadata
Automatically translate and sync App Store metadata (description, keywords, what's new, subtitle) to multiple languages using LLM translation and asc CLI. Use when asked to localize an app's App Store listing, translate app descriptions, or add new languages to App Store Connect.
npx skills add rorkai/app-store-connect-cli-skills --skill asc-localize-metadata
Use this skill to pull English (or any source locale) App Store metadata, translate it with LLM, and push translations back to App Store Connect — all automated.
--help for the exact asc version:
asc localizations --helpasc localizations download --helpasc localizations upload --helpasc apps info edit --help--app, --version, --version-id, --type, --app-info).--output when the format matters.head -1 unless the user explicitly agrees.asc auth login or ASC_* env vars)asc apps list to find it)App Store Connect locales for version and app-info localizations:
Fields: description, keywords, whatsNew, supportUrl, marketingUrl, promotionalText
Fields: name, subtitle, privacyPolicyUrl, privacyChoicesUrl, privacyPolicyText
Notes:
--type app-info.asc-id-resolver.This creates files like ./localizations/en-US.strings and ./app-info-localizations/en-US.strings. If download is unavailable, read fields individually:
For each target locale, translate the source text. Follow these rules:
For each target locale, use this approach:
Create a .strings file per locale in the appropriate directory.
Version localization example:
Then upload version localizations:
App-info localization example:
Then upload app-info localizations:
For app-level fields:
| Field | Limit |
|---|---|
| Name | 30 |
| Subtitle | 30 |
| Keywords | 100 (comma-separated) |
| Description | 4000 |
| What's New | 4000 |
| Promotional Text | 170 |
Always validate translated text fits within limits before uploading. Truncated text looks unprofessional. If translation exceeds the limit, shorten it — do not truncate mid-sentence.
--version "VERSION_ID"; subtitle/name/privacy live under --app ... --type app-info.head -1 unless explicitly requested; use --output table for selection or asc-id-resolver.promotionalText can be updated anytime without a new version submission.whatsNew is only relevant for updates, not the first version.asc-id-resolver skill if you only have app/version names instead of IDs.asc-metadata-sync skill for non-translation metadata operations.asc-subscription-localization skill instead.