1.2.2 · Dev Platform

How to Localize Your Store Listing — App Store Metadata in Git, Auto-Registered

2026.07.12~5 min

00Overview

01Story

Situation

1.2.1 localized the app itself. Next is the listing that puts it on the store: title, subtitle, description, keywords.

Complication

These, too, need registering per language. One language, fine — type it into the dashboard. Fifty languages, and hand entry stops being an option. And keywords can't just be translated: they have to be swapped for each country's local search terms — ASO (App Store Optimization) — or they simply don't work.

Question

How do you manage, and register, listing data in dozens of languages?

02Solution

Criteria

  • Listing data managed in one place, in Git
  • AI can translate to fit each language's culture and search behavior
  • Registration with the store is automatic

Answer

The listing metadata lives in one config file per app (store.config.json.txt), managed in Git. Starting from the Japanese source, AI translates into 50 locales with meaning intact (not machine translation), and GitHub Actions registers everything through the App Store Connect API. Keywords are packed to the 100-character limit per language and swapped for that country's local search terms, optimizing ASO.

Reason

Because listing data can be managed exactly like source code. In a file, history and diffs are trackable, Actions can register it automatically, and hand-entry mistakes vanish. Even the character limits (title 30 / subtitle 30 / description 4000 / keywords 100, and so on) become a validation script.

It's text. So the code discipline applies:
collect it in one place, and automate it.

There is a second gain in letting AI translate: a literal translation gives you phrasing that doesn't fit the culture and words nobody searches for. Let AI translate the meaning, and each locale gets its own tone and its own search terms. Sensitive topics can be handled per region, too — kept in keywords everywhere for search reach, while the description mentions them only as plainly as each country is comfortable with.

Options

  • Type it into each store dashboard — fine at one or two languages. But hand work collapses as languages grow, and leaves no history. Hence Git + auto-registration from the start.

03Result

Good

With the machinery in place, adding a language is "translate, then run the registration workflow." Even at fifty languages, the marginal cost of one more barely moves. Character-limit checks and local-keyword optimization ride on the script and the AI.

Bad

Automation brings its own accidents. A stray double-quote in a translation breaks the config's JSON; a description runs past its limit. So every write is followed by a verification step — reload the JSON to prove it still parses, and re-check every field against its limit.

Follow-up

Text — the app and the listing — is done. What remains is the toughest customer: images. Continued in 1.2.3 How to localize app screenshots.