name: asc-subscription-localization 描述: 使用asc批量本地化订阅和应用内购买在所有App Store语言环境下的显示名称。当您希望为每种语言填充订阅/IAP名称而无需手动点击App Store Connect时使用。
ASC 订阅本地化
使用此技能批量创建或更新订阅、订阅组和应用内购买在所有App Store Connect语言环境下的显示名称(和描述)。这消除了在App Store Connect中逐个点击每种语言手动设置相同显示名称的繁琐过程。
前置条件
- 已配置认证(
asc auth login或ASC_*环境变量)。 - 知道您的应用ID(
ASC_APP_ID或--app)。 - 订阅组和订阅已存在。
支持的App Store语言环境
以下是App Store Connect支持订阅和IAP本地化的语言环境:
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
工作流程:批量本地化订阅
1. 解析ID
# 查找订阅组
asc subscriptions groups list --app "APP_ID" --output table
# 查找组内的订阅
asc subscriptions list --group "GROUP_ID" --output table
2. 检查现有本地化
asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output table
这显示哪些语言环境已设置名称。仅创建缺失语言环境的本地化。
3. 为所有缺失语言环境创建本地化
对于每个尚未有本地化的语言环境,运行:
asc subscriptions localizations create \
--subscription-id "SUB_ID" \
--locale "LOCALE" \
--name "显示名称"
例如,为所有语言环境设置“Monthly Pro”:
# 每个语言环境一个命令(跳过已存在的)
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"
4. 验证
asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output table
工作流程:批量本地化订阅组
订阅组也有自己的每种语言环境的显示名称(这是用户在订阅管理表中看到的“组名称”)。
1. 检查现有组本地化
asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output table
2. 为缺失语言环境创建
asc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "组显示名称"
可选:为组设置自定义应用名称:
asc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "组显示名称" \
--custom-app-name "我的应用"
3. 验证
asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output table
工作流程:批量本地化应用内购买
IAP有自己的本地化命令,模式相同。
1. 解析IAP ID
asc iap list --app "APP_ID" --output table
2. 检查现有本地化
asc iap localizations list --iap-id "IAP_ID" --paginate --output table
3. 为缺失语言环境创建
asc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "显示名称"
可选描述:
asc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "解锁所有功能" \
--description "一次性购买以解锁所有高级功能"
4. 验证
asc iap localizations list --iap-id "IAP_ID" --paginate --output table
更新现有本地化
要更改现有本地化的显示名称:
订阅
asc subscriptions localizations update --id "LOC_ID" --name "新名称"
订阅组
asc subscriptions groups localizations update --id "LOC_ID" --name "新组名称"
应用内购买
asc iap localizations update --id "LOC_ID" --name "新名称"
要批量更新,首先列出现有本地化,提取ID,然后更新每个。
批量本地化应用中的所有订阅
对于包含多个订阅组和订阅的完整应用:
# 1. 列出所有组
asc subscriptions groups list --app "APP_ID" --paginate
# 2. 为每个组本地化组本身
# (重复上述组本地化工作流程)
# 3. 为每个组列出订阅
asc subscriptions list --group "GROUP_ID" --paginate
# 4. 为每个订阅本地化它
# (重复上述订阅本地化工作流程)
代理行为
- 始终首先列出现有本地化,以避免重复创建错误。
- 跳过已有本地化的语言环境;仅创建缺失的。
- 当用户提供单个显示名称时,将其用于所有语言环境(相同名称各处使用)。
- 当用户提供每种语言环境的翻译名称时,为每种使用语言特定名称。
- 如果提供描述,请在创建时传递
--description;否则省略。 - 使用
--output table进行验证步骤,以便用户可视化确认。 - 使用默认JSON输出进行中间自动化步骤。
- 批量创建后,始终运行列表命令以验证完整性。
- 对于具有许多订阅的应用,按组顺序处理,以保持输出可读。
- 如果对某个语言环境的创建调用失败,记录语言环境和错误,然后继续剩余语言环境。批量完成后,报告所有失败,以便用户处理。
注意事项
- 订阅显示名称是用户在订阅管理表和在购买对话框中看到的内容。
- 为已有本地化的语言环境创建本地化将失败;始终先检查。
- 没有批量API;每种语言环境需要单独的创建调用。
- 在列表命令上使用
--paginate以确保返回所有现有本地化。 - 如果您只有应用名称而非ID,请使用
asc-id-resolver技能。