Skip to the content

localization

Write an app Product's App Store metadata for its priority storefronts — title, subtitle, keywords field, description per locale — and choose which storefronts deserve it.

Written by Kwern, after the skill of the same name in Eronred's aso-skills, MIT. Updated 2026-10-05.

The file, as Kwern runs it

Nothing below is rewritten or cut. The description a model routes on comes first, then the file itself. The whole thing, frontmatter included, is at /skills/localization.md.

description

Write an app Product's App Store metadata for its priority storefronts — title, subtitle, keywords field, description per locale — and choose which storefronts deserve it. Use for "localize my listing", "which countries should I target", "translate my metadata", "expand to Germany/Japan". For the primary storefront use metadata-optimization.

Bring the Product's listing to the storefronts where visitors already arrive and convert least. Output is one listing Proposal per field and Locale, which Kwern writes to App Store Connect when the User approves it, plus a per-storefront metadata package with the reasoning, saved with save_output. Keywords in another language are researched, never translated: "budget tracker" is "Haushaltsbuch" in German and "家計簿" in Japanese, two different concepts.

Gather

  1. read_context — markets the Foundation doc names, whether the app UI is localized and in which languages, voice, competitors.
  2. connector_asc_analytics when the ASC Connector exists — impressions, product page views, downloads and conversion per territory, 30 days plus trend. Without it, take the markets from the Foundation doc; without those, start from the tier-1 list in the references.
  3. connector_asc_localizations when the ASC Connector exists — every locale already localized, primary first, with its title, subtitle, keywords field, description and promotional text; a locale whose text repeats another locale's is a copy, not a localization. Without it, iTunes Lookup through fetch_url (https://itunes.apple.com/lookup?id=<App Store id>&country=<storefront>) returns the name and description visitors of that storefront read, and the subtitle and the keywords field stay unknown; say so in the package.
  4. connector_apple_ads_search_terms when the Apple Ads Connector runs campaigns in the storefront — the terms locals search and convert on. Without it, infer from local competitors and reviews.
  5. The competitors in each priority storefront, through fetch_url on iTunes Search (https://itunes.apple.com/search?term=<name>&entity=software&country=<storefront>&limit=1) — how they phrase their name and description in that language.
  6. app_store_reviews per storefront — the vocabulary users write in, and a quotable line per language.

Choose the storefronts

Score each candidate on the territory data: high impressions with low conversion is the strongest signal (visitors arrive, the listing loses them); then downloads trend, whether the app UI speaks the language, and how many competitors are localized there. Take the top three to five; state the score per storefront. The locale codes, the storefronts each locale covers, and the tier lists are in references/storefronts.md — read it before naming a locale, because one locale serves several countries and the default locale serves every storefront without its own.

Write per storefront

Field limits, indexing, formulas and the mistakes to flag are in ../metadata-optimization/references/field-rules.md; they hold in every locale, and character limits count characters, so CJK and Cyrillic fit fewer words. Cultural checks for description, screenshots and pricing are in references/cultural-adaptation.md — read it when the storefront differs in script, formality or currency from the primary one.

Per storefront, in this order:

  1. Keyword set — five to ten local terms with the search intent behind each, drawn from search terms, competitors and reviews; the English equivalent beside each so the User can verify with a native speaker.
  2. Title and subtitle — brand plus the local #1 keyword, benefit-led subtitle, formulas from the field rules; a translated tagline that carries no searched term is replaced.
  3. Keywords field — built from the local set, singular forms, zero words repeated from title and subtitle.
  4. Description — adapted, with the hook rewritten for the local framing, local social proof when it exists, and a review quote in the language.
  5. Promotional text — for the local moment (holiday, season, event).

Every field arrives with a back-translation line so the User can read it.

Output: per-storefront metadata package

For each priority storefront: locale code, the storefronts it covers, the score and its reason, then every field with chars/limit, keywords covered, back-translation, and a one-line rationale. Then:

  • Priority matrix — territory × impressions, conversion, trend, UI localized, competitor localization, score.
  • Before / after — the current localization per field when connector_asc_localizations or iTunes Lookup returned one.
  • Creative to-do — the captions and pricing screens screenshot-optimization and app-preview-video must re-render per storefront.
  • Apply — which fields need a version the User can still edit in App Store Connect: title, subtitle, keywords field and description do; the promotional text does not.

Propose

Each field you write is one propose per Locale, with appStoreField (name for the title, subtitle, keywords, description, promotionalText) and the locale code in locale: content is the field in that language, whole, and why names the local keywords it covers and the territory signal behind the storefront. A Locale the listing lacks is added by the first Proposal approved for it.

Done when every field of every priority storefront has its Proposal, each storefront has every field within its limit, every local keyword appears once across title, subtitle and keywords field, every field carries a back-translation, and the package names the data it lacked (territory analytics, keywords field, search terms) when a Connector was absent.

  • metadata-optimization — the primary-storefront package this Skill mirrors.
  • screenshot-optimization — captions per storefront.
  • app-preview-video — preview captions and re-recording per storefront.
  • seasonal-aso — local holidays that drive the promotional text.

What it discloses

The Skill reads these files only when it needs them, so the model spends nothing on them the rest of the time.

  • references/cultural-adaptation.md

  • references/storefronts.md

From your accounts to a proposal

  1. 01

    Connect what it reads

    Give the ASO agent the accounts it works on. Kwern never asks for a password, and an agent missing a connection says so instead of guessing.

  2. 02

    The loop runs weekly

    Before it writes a word it reads the foundation doc, which holds the positioning, the audience and the voice, and whatever its connectors return that day.

  3. 03

    The localization skill runs

    The agent activates it when the run calls for it, and what the model then reads is the file on this page, word for word.

  4. 04

    A proposal waits for you

    Nothing is published and nothing is spent until you approve it. Approve and Kwern posts it where it holds the keys; where it does not, it hands you the text and the link.

The file, the agency, and the agent

On your ownAn agencyKwern
The methodWhatever you remember to do that weekTheirs, and you never get to read itThis file, open on this page
Who runs itYou, when there is timeAn account manager, between other accountsThe ASO agent, weekly
What it readsWhat you can pull by handWhat you remembered to send themYour connected accounts and your foundation doc
What comes outA draft, sometimesA deck, and a report at the end of the monthA proposal you approve or throw away
What it costsYour eveningsA retainerOne subscription, and the model on your own key

Questions about localization

Pair it with

The other skills the same agents reach for during a run.

aso
When the user wants to audit or optimize an App Store or Google Play listing.
competitor-profiling
When the user wants to research, profile, or analyze competitors from their URLs.
copywriting
When the user wants to write, rewrite, or improve marketing copy for any page, including homepage, landing pages,…
app-icon-optimization
Brief and evaluate an app Product's App Store icon for tap-through in search and browse.
app-preview-video
Storyboard an app Product's App Store preview video — the 15–30 s autoplay clip in search and on the product page —…
category-positioning
Recommend the App Store primary and secondary category for an app Product, scoring truth fit, competitive density,…
custom-product-pages
Plan an app Product's Custom Product Pages — one brief per audience with the ad groups it serves, screenshot plan and…
in-app-events
Plan an app Product's App Store In-App Events — one brief per event (name, descriptions, badge, dates, purpose) plus…
metadata-optimization
Rewrite an app Product's App Store metadata — title, subtitle, keywords field, description, promotional text.
rating-prompt-strategy
Design when and to whom an app Product asks for a rating so the volume of 4–5 star ratings rises.
review-management
Analyze an app Product's App Store reviews into themes and draft replies as "Reply to review" Proposals.
screenshot-optimization
Plan an app Product's App Store screenshot set — per-slot message, caption copy, order, device sizes — plus A/B…
seasonal-aso
Build an app Product's seasonal calendar and, per moment, the keyword, promotional text and screenshot changes with…

Someone is asking for what you built today.

On Reddit, on X, in ChatGPT's answers. Kwern finds them every morning and drafts the reply in your voice; you decide what goes out.