asc-subscription-localization
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseASC Subscription Localization
ASC 订阅本地化
Use this skill to bulk-create or bulk-update display names (and descriptions) for subscriptions, subscription groups, and in-app purchases across all App Store Connect locales. This eliminates the tedious manual process of clicking through each language in App Store Connect to set the same display name.
使用此技能可批量创建或更新所有App Store Connect区域的订阅、订阅组和内购项目的显示名称(及描述)。这省去了在App Store Connect中逐个点击每种语言来设置相同显示名称的繁琐手动操作。
Preconditions
前置条件
- Auth configured (or
asc auth loginenv vars).ASC_* - Know your app ID (or
ASC_APP_ID).--app - Subscription groups and subscriptions already exist.
- 已配置认证(或
asc auth login环境变量)。ASC_* - 知晓你的应用ID(或
ASC_APP_ID参数)。--app - 订阅组和订阅已创建。
Supported App Store Locales
App Store支持的区域
These are the locales supported by App Store Connect for subscription and IAP localizations:
ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US,
es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it,
ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk,
sv, th, tr, uk, vi, zh-Hans, zh-Hant以下是App Store Connect支持的订阅和内购本地化区域:
ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US,
es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it,
ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk,
sv, th, tr, uk, vi, zh-Hans, zh-HantWorkflow: Bulk-Localize a Subscription
工作流:批量本地化订阅
1. Resolve IDs
1. 解析ID
bash
undefinedbash
undefinedFind subscription groups
查找订阅组
asc subscriptions groups list --app "APP_ID" --output table
asc subscriptions groups list --app "APP_ID" --output table
Find subscriptions within a group
查找组内的订阅
asc subscriptions list --group "GROUP_ID" --output table
undefinedasc subscriptions list --group "GROUP_ID" --output table
undefined2. Check existing localizations
2. 检查现有本地化内容
bash
asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output tableThis shows which locales already have a name set. Only create localizations for missing locales.
bash
asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output table此命令会显示哪些区域已设置名称。仅为缺失的区域创建本地化内容。
3. Create localizations for all missing locales
3. 为所有缺失区域创建本地化内容
For each locale that does not already have a localization, run:
bash
asc subscriptions localizations create \
--subscription-id "SUB_ID" \
--locale "LOCALE" \
--name "Display Name"For example, to set "Monthly Pro" across all locales:
bash
undefined对于每个尚未创建本地化的区域,运行:
bash
asc subscriptions localizations create \
--subscription-id "SUB_ID" \
--locale "LOCALE" \
--name "Display Name"例如,为所有区域设置“Monthly Pro”:
bash
undefinedOne command per locale (skip any that already exist)
每个区域对应一条命令(跳过已存在的区域)
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ar-SA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ca" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "cs" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "da" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "de-DE" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "el" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-AU" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-CA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-GB" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-ES" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-MX" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-CA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-FR" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "he" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hr" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hu" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "id" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "it" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ja" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ko" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ms" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "nl-NL" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "no" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pl" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-BR" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-PT" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ro" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ru" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sk" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sv" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "th" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "tr" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "uk" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "vi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hans" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hant" --name "Monthly Pro"
undefinedasc subscriptions localizations create --subscription-id "SUB_ID" --locale "ar-SA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ca" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "cs" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "da" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "de-DE" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "el" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-AU" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-CA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-GB" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-ES" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-MX" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-CA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-FR" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "he" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hr" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hu" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "id" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "it" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ja" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ko" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ms" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "nl-NL" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "no" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pl" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-BR" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-PT" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ro" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ru" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sk" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sv" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "th" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "tr" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "uk" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "vi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hans" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hant" --name "Monthly Pro"
undefined4. Verify
4. 验证
bash
asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output tablebash
asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output tableWorkflow: Bulk-Localize a Subscription Group
工作流:批量本地化订阅组
Subscription groups also have their own display name per locale (this is the "group name" shown to users in the subscription management sheet).
订阅组也有各区域对应的显示名称(即用户在订阅管理界面看到的“组名称”)。
1. Check existing group localizations
1. 检查现有组本地化内容
bash
asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output tablebash
asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output table2. Create for missing locales
2. 为缺失区域创建
bash
asc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "Group Display Name"Optional: set a custom app name for the group:
bash
asc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "Group Display Name" \
--custom-app-name "My App"bash
asc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "Group Display Name"可选:为组设置自定义应用名称:
bash
asc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "Group Display Name" \
--custom-app-name "My App"3. Verify
3. 验证
bash
asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output tablebash
asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output tableWorkflow: Bulk-Localize an In-App Purchase
工作流:批量本地化内购项目
IAPs have their own localization commands with the same pattern.
内购项目的本地化命令遵循相同模式。
1. Resolve IAP ID
1. 解析内购ID
bash
asc iap list --app "APP_ID" --output tablebash
asc iap list --app "APP_ID" --output table2. Check existing localizations
2. 检查现有本地化内容
bash
asc iap localizations list --iap-id "IAP_ID" --paginate --output tablebash
asc iap localizations list --iap-id "IAP_ID" --paginate --output table3. Create for missing locales
3. 为缺失区域创建
bash
asc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "Display Name"Optional description:
bash
asc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "Unlock All Features" \
--description "One-time purchase to unlock all premium features"bash
asc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "Display Name"可选添加描述:
bash
asc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "Unlock All Features" \
--description "One-time purchase to unlock all premium features"4. Verify
4. 验证
bash
asc iap localizations list --iap-id "IAP_ID" --paginate --output tablebash
asc iap localizations list --iap-id "IAP_ID" --paginate --output tableUpdating Existing Localizations
更新现有本地化内容
To change the display name for existing localizations:
如需修改现有本地化的显示名称:
Subscriptions
订阅
bash
asc subscriptions localizations update --id "LOC_ID" --name "New Name"bash
asc subscriptions localizations update --id "LOC_ID" --name "New Name"Subscription Groups
订阅组
bash
asc subscriptions groups localizations update --id "LOC_ID" --name "New Group Name"bash
asc subscriptions groups localizations update --id "LOC_ID" --name "New Group Name"In-App Purchases
内购项目
bash
asc iap localizations update --id "LOC_ID" --name "New Name"To bulk-update, list existing localizations first, extract the IDs, then update each one.
bash
asc iap localizations update --id "LOC_ID" --name "New Name"批量更新时,需先列出所有现有本地化内容,提取ID后逐个更新。
Bulk-Localize All Subscriptions in an App
批量本地化应用中所有订阅
For a full app with multiple subscription groups and subscriptions:
bash
undefined对于包含多个订阅组和订阅的完整应用:
bash
undefined1. List all groups
1. 列出所有组
asc subscriptions groups list --app "APP_ID" --paginate
asc subscriptions groups list --app "APP_ID" --paginate
2. For each group, localize the group itself
2. 为每个组执行组本地化流程
(repeat group localization workflow above)
(重复上述组本地化工作流)
3. For each group, list subscriptions
3. 为每个组列出订阅
asc subscriptions list --group "GROUP_ID" --paginate
asc subscriptions list --group "GROUP_ID" --paginate
4. For each subscription, localize it
4. 为每个订阅执行订阅本地化流程
(repeat subscription localization workflow above)
(重复上述订阅本地化工作流)
undefinedundefinedAgent Behavior
Agent 行为规范
- Always list existing localizations first to avoid duplicate creation errors.
- Skip locales that already have a localization; only create missing ones.
- When the user provides a single display name, use it for all locales (same name everywhere).
- When the user provides translated names per locale, use the locale-specific name for each.
- If a description is provided, pass on create. Otherwise omit it.
--description - Use for verification steps so the user can visually confirm.
--output table - Use default JSON output for intermediate automation steps.
- After bulk creation, always run the list command to verify completeness.
- For apps with many subscriptions, process them sequentially per group to keep output readable.
- If a create call fails for a locale, log the locale and error, then continue with the remaining locales. After the batch completes, report all failures together so the user can address them.
- 始终先列出已有的本地化内容,以避免重复创建错误。
- 跳过已存在本地化内容的区域,仅为缺失的区域创建。
- 当用户提供单个显示名称时,将其应用于所有区域(所有区域使用相同名称)。
- 当用户提供各区域的翻译名称时,为每个区域使用对应的本地化名称。
- 若提供了描述,在创建时传入参数;否则省略该参数。
--description - 验证步骤使用格式,方便用户直观确认。
--output table - 中间自动化步骤使用默认的JSON输出格式。
- 批量创建完成后,务必运行列表命令验证完整性。
- 对于包含多个订阅的应用,按组依次处理,以保持输出可读性。
- 若某区域的创建调用失败,记录该区域和错误信息,然后继续处理剩余区域。批量操作完成后,统一报告所有失败情况,以便用户处理。
Notes
注意事项
- Subscription display names are what users see on the subscription management sheet and in purchase dialogs.
- Creating a localization for a locale that already exists will fail; always check first.
- There is no bulk API; each locale requires a separate create call.
- Use on list commands to ensure all existing localizations are returned.
--paginate - Use the skill if you only have app names instead of IDs.
asc-id-resolver
- 订阅显示名称是用户在订阅管理界面和购买对话框中看到的内容。
- 为已存在本地化内容的区域创建新的本地化会失败;务必先检查。
- 目前没有批量API;每个区域需要单独调用创建命令。
- 列表命令中使用参数,确保返回所有已有的本地化内容。
--paginate - 若你只有应用名称而非ID,可使用技能。
asc-id-resolver