How to Localize Your Store Listing — App Store Metadata in Git, Auto-Registered
00要約Overview
01物語Story
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?
02解決Solution
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.
03結果Result
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.