AppStore元数据本地化Skill asc-localize-metadata

此技能用于自动将App Store元数据(如描述、关键词、更新内容、副标题等)翻译并同步到多种语言,利用大型语言模型(LLM)进行高质量翻译,并通过asc命令行工具实现自动化流程。适用于移动应用发布和本地化场景,关键词:App Store、本地化、翻译、元数据、LLM、自动化、asc CLI、iOS开发、移动应用营销。

移动开发 0 次安装 0 次浏览 更新于 3/13/2026

name: asc-localize-metadata description: 使用LLM翻译和asc CLI自动将App Store元数据(描述、关键词、更新内容、副标题)翻译并同步到多种语言。当需要本地化应用的App Store列表、翻译应用描述或向App Store Connect添加新语言时使用。

asc 本地化元数据

使用此技能来拉取英文(或任何源语言)的App Store元数据,使用LLM进行翻译,并将翻译推回App Store Connect — 全部自动化。

命令发现和输出约定

  • 始终使用 --help 确认特定 asc 版本的标志:
    • asc localizations --help
    • asc localizations download --help
    • asc localizations upload --help
    • asc app-info set --help
  • 优先使用显式长标志(--app--version--version-id--type--app-info)。
  • 默认输出是JSON;仅用于人工验证步骤时使用 --output table
  • 优先使用基于ID的确定性操作。除非用户明确同意,不要通过 head -1 “选择第一行”。

前提条件

  • 认证配置(asc auth loginASC_* 环境变量)
  • 知道您的应用ID(使用 asc apps list 查找)
  • 至少有一个语言环境(通常是en-US)在App Store Connect中已有元数据

支持的语言环境

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-Hant

两种类型的元数据

版本本地化(每个版本)

字段:descriptionkeywordswhatsNewsupportUrlmarketingUrlpromotionalText

应用信息本地化(应用级别,持久)

字段:namesubtitleprivacyPolicyUrlprivacyChoicesUrlprivacyPolicyText

工作流程

步骤1:解析ID

# 查找应用ID
asc apps list --output table

# 查找最新版本ID
asc versions list --app "APP_ID" --state READY_FOR_DISTRIBUTION --output table
# 或用于可编辑版本:
asc versions list --app "APP_ID" --state PREPARE_FOR_SUBMISSION --output table

# 查找应用信息ID(用于应用级别字段如name/subtitle)
asc app-infos list --app "APP_ID" --output table

注意:

  • 版本本地化字段(描述、关键词、whatsNew等)是每个版本的。
  • 应用信息字段(name、subtitle、隐私URL/文本)是应用级别的,使用 --type app-info
  • 如果只有名称(应用名称、版本字符串)并需要确定性ID,使用 asc-id-resolver

步骤2:下载源语言环境

# 下载版本本地化到本地 .strings 文件
# (描述、关键词、whatsNew、promotionalText、supportUrl、marketingUrl等)
asc localizations download --version "VERSION_ID" --path "./localizations"

# 下载应用信息本地化到本地 .strings 文件
# (name、subtitle、privacyPolicyUrl、privacyChoicesUrl、privacyPolicyText等)
asc localizations download --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"

这将创建文件如 ./localizations/en-US.strings./app-info-localizations/en-US.strings。如果下载不可用,单独读取字段:

# 列出版本本地化以查看现有语言环境及其内容
asc localizations list --version "VERSION_ID" --output table

步骤3:使用LLM翻译

对于每个目标语言环境,翻译源文本。遵循以下规则:

翻译指南

  • 语调和寄存器:始终使用正式、礼貌的语言。在语言区分的地方使用正式的“您”形式(俄语:«вы»,德语:«Sie»,法语:«vous»,西班牙语:«usted»,荷兰语:«u»,意大利语:«Lei»,葡萄牙语:«você» 正式等)。App Store描述是专业的营销文案 — 切勿使用随意或非正式寄存器。
  • 描述:自然翻译,调整语调以适应本地市场。保持格式(换行、项目符号、表情符号)。保持在4000字符内。
  • 关键词:不要字面翻译。研究该语言环境的用户会搜索什么。逗号分隔,总最大100字符。无重复,不包括应用名称(Apple会自动添加)。
  • 更新内容:翻译发布说明。保持简洁。最大4000字符。
  • 促销文本:翻译营销钩子。最大170字符。这可以在不发布新版本的情况下更新。
  • 副标题:翻译或适配标语。最大30字符 — 这非常紧凑,可能需要创意适配。
  • 名称:通常保留原始应用名称。仅当用户明确要求时翻译。最大30字符。

LLM翻译提示模板

对于每个目标语言环境,使用此方法:

将以下App Store元数据从{source_locale}翻译到{target_locale}。

规则:
- 描述:自然、流畅的翻译。保留格式(换行、项目符号、表情符号)。最大4000字符。
- 关键词:不要字面翻译。选择母语者在App Store中会搜索的关键词。逗号分隔,总最大100字符。不包括应用名称。
- 更新内容:自然翻译发布说明。最大4000字符。
- 促销文本:翻译营销标语。最大170字符。
- 副标题:创意适配标语以适合最大30字符。
- 名称:保留原始应用名称,除非明确要求翻译。最大30字符。
- 使用正式、礼貌的语言和正式的“您”形式(俄语:вы,德语:Sie,法语:vous,西班牙语:usted,荷兰语:u等)。App Store文案是专业营销 — 切勿使用非正式寄存器。
- 尊重文化背景。英语中的 playful 语调可能需要为正式市场(如 ja、de-DE)调整。

源({source_locale}):
描述:"""
{描述}
"""

关键词:{关键词}

更新内容:"""
{更新内容}
"""

促销文本:{促销文本}

名称:{名称}

副标题:{副标题}

步骤4:上传翻译

选项A:通过 .strings 文件(批量)

在适当的目录中为每个语言环境创建一个 .strings 文件。

版本本地化示例:

// nl-NL.strings
"描述" = "Je app-beschrijving hier";
"关键词" = "wiskunde,kinderen,tafels,leren";
"更新内容" = "Bugfixes en verbeteringen";
"促销文本" = "Leer de tafels van vermenigvuldiging!";

然后上传版本本地化:

asc localizations upload --version "VERSION_ID" --path "./localizations"

应用信息本地化示例:

// nl-NL.strings
"副标题" = "Leer tafels spelenderwijs";

然后上传应用信息本地化:

asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"

选项B:通过单独命令(精细控制)

# 版本本地化字段(精细控制)。
# 优先传递显式版本ID以获得确定性。
asc app-info set --app "APP_ID" --version-id "VERSION_ID" --locale "nl-NL" \
  --描述 "Je beschrijving..." \
  --关键词 "wiskunde,kinderen,tafels" \
  --更新内容 "Bugfixes en verbeteringen"

对于应用级别字段:

# 副标题/名称(应用信息本地化)通过应用信息本地化管理。
# 使用应用信息本地化 .strings + 上传流程(没有 `asc app-infos localizations ...` 命令)。
#
# 1) 编辑:./app-info-localizations/nl-NL.strings
# "副标题" = "Leer tafels spelenderwijs";
#
# 2) 上传:
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"

步骤5:验证

# 检查所有语言环境是否存在
asc localizations list --version "VERSION_ID" --output table

# 检查应用信息本地化
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --output table

字符限制(上传前强制检查!)

字段 限制
名称 30
副标题 30
关键词 100(逗号分隔)
描述 4000
更新内容 4000
促销文本 170

始终验证 翻译文本在上传前符合限制。截断的文本看起来不专业。如果翻译超过限制,缩短它 — 不要在中途截断。

完整示例:添加 nl-NL 和 ru 到 Roxy Math

# 1) 确定性解析ID(不要自动选择“第一行”)
# 如果只有名称,使用 asc-id-resolver 技能。
asc apps list --output table
APP_ID="APP_ID_HERE"

asc versions list --app "$APP_ID" --state PREPARE_FOR_SUBMISSION --output table
VERSION_ID="VERSION_ID_HERE"

asc app-infos list --app "$APP_ID" --output table
APP_INFO_ID="APP_INFO_ID_HERE"

# 2) 下载英文源(或您选择的源语言环境)
asc localizations download --version "$VERSION_ID" --path "./localizations"
asc localizations download --app "$APP_ID" --type app-info --app-info "$APP_INFO_ID" --path "./app-info-localizations"

# 3) 读取 en-US.strings,翻译到 nl-NL 和 ru(LLM步骤)

# 4) 写入 nl-NL.strings 和 ru.strings 到:
#    - ./localizations/(版本本地化字段)
#    - ./app-info-localizations/(副标题/名称/隐私字段)

# 5) 上传所有
asc localizations upload --version "$VERSION_ID" --path "./localizations"
asc localizations upload --app "$APP_ID" --type app-info --app-info "$APP_INFO_ID" --path "./app-info-localizations"

# 6) 验证
asc localizations list --version "$VERSION_ID" --output table
asc localizations list --app "$APP_ID" --type app-info --app-info "$APP_INFO_ID" --output table

代理行为

  1. 始终从阅读源语言环境开始 — 切勿从记忆或假设翻译。
  2. 首先检查现有本地化 — 除非用户要求更新,否则不要覆盖现有翻译。
  3. 版本与应用信息不同 — 版本字段位于 --version "VERSION_ID" 下;副标题/名称/隐私位于 --app ... --type app-info 下。
  4. 优先使用确定性ID — 除非明确请求,不要通过 head -1 选择ID;使用 --output table 进行选择或 asc-id-resolver
  5. 上传前验证字符限制。计算每个字段的字符数。如果超过限制,重新翻译更短。
  6. 关键词是特殊的 — 不要字面翻译。研究适合语言环境的搜索词。像该语言用户在App Store中搜索一样思考。
  7. 在上传前向用户显示翻译 — 呈现所有字段 × 语言环境的摘要表以供批准。未经确认不要推送。
  8. 如果翻译多种语言,一次处理一个语言环境 — 更容易审查和捕获错误。
  9. 如果某个语言环境上传失败,记录错误,继续其他语言环境,最后报告所有失败。
  10. 对于更新现有本地化 — 下载当前,显示将更改的差异,获得批准,然后上传。

注意

  • 版本本地化绑定到特定版本。如果版本不存在,先创建它。
  • promotionalText 可以随时更新,无需新版本提交。
  • whatsNew 仅与更新相关,不适用于第一个版本。
  • 如果只有应用/版本名称而不是ID,使用 asc-id-resolver 技能。
  • 对于非翻译元数据操作,使用 asc-metadata-sync 技能。
  • 对于订阅/IAP显示名称本地化,使用 asc-subscription-localization 技能。