App Store localization: a practical guide for indie developers
· 10 min read
App Store localization means writing your product page metadata in App Store Connect (app name, subtitle, keywords, description, promotional text, What's New, screenshots and app previews) separately for each language and locale you want to reach. App Store Connect supports 50 of them. It is a different job from localizing the app itself in Xcode. Start with the three fields that decide search (name, subtitle, keywords), written natively for each locale rather than translated word for word, then do the first screenshots, then everything else.
We build a localization tool and ship our own apps through App Store Connect, so this guide sticks to what Apple documents and what we've run into ourselves. Where a topic needs more room, we link to a dedicated post instead of cramming it in here.
What can you localize on an App Store product page?
Almost all of the text and media on the page. The table covers the fields in App Store Connect, with limits from Apple's App information and Platform version information references.
| Field | Limit | Where it shows | Used for App Store search | Change without a new version |
|---|---|---|---|---|
| App name | 2–30 characters | Product page, search results, install sheet | Yes | No |
| Subtitle | 30 characters | Under the name across the App Store | Yes | No |
| Keywords | 100 characters | Nowhere (hidden) | Yes | No |
| Promotional text | 170 characters | Above the description | No (Apple says so) | Yes |
| Description | 4,000 characters | Product page | Not on Apple's list | No |
| What's New | 4,000 characters | Version history on the product page | No | Set per version |
| Support URL, Marketing URL | URL | Product page links | No | No |
| Privacy Policy URL, Privacy Choices URL | URL | App Privacy section | No | No |
App Store Connect Help describes the keyword limit as 100 bytes and Apple's marketing pages as 100 characters. Our App Store character limits post covers every field and the edge cases.
The media is localized per language too:
- Screenshots: at least one and up to 10 per device size, per localization (screenshot specifications). If you only upload the largest required size, App Store Connect scales them down for smaller devices.
- App previews: up to three per localization and device size, each up to 30 seconds. They autoplay muted on the product page (Apple's product page guidance).
Beyond the default product page, Apple's required, localizable and editable properties list marks these as localizable as well:
- In-app events: name (30 characters), short description (50), long description (120), plus the event card and details page media (Offer in-app events).
- Custom product pages: up to 70 per app, each with its own screenshots, previews, promotional text and keywords, and each localizable (Configure multiple product page versions).
- Product page optimization tests: treatments can run in all your localizations or only the ones you pick.
- In-App Purchases and subscriptions: display name and description, and the subscription group display name.
- Game Center: achievement names and pre-earned and earned descriptions, and leaderboard names and score format suffixes.
A few things are not per-language: price (set per storefront, not per language), age rating, category and the app icon. The icon lives in your binary.
App Store localization vs localizing the app binary
These are two separate lists, and the product page shows both.
Your listing localizations are the languages you add in App Store Connect. They decide which name, subtitle, screenshots and description a visitor sees. Apple's Localize app information page states it plainly: languages on the App Information page are app metadata, which is different from localizing your binary in Xcode.
The Languages row in the product page's information section lists the languages your app itself supports, and Apple reads it from the build. An Apple DTS engineer put it this way in January 2025: "The value of the Languages field in the App Store is determined by the existence of the .lproj folders in your app bundle." Apps that don't use .lproj folders get the list inferred from CFBundleLocalizations in Info.plist.
Two consequences follow:
- You can localize the listing without localizing the app. A Japanese product page for an app whose Languages row says "English" is allowed, and for apps with very little UI text it can still be worth doing. Say in the description that the interface is in English, so nobody downloads expecting Japanese and feels misled.
- Third-party SDKs can add languages you don't support. If a dependency ships its own
fr.lproj, French can appear in the Languages row. Check the.lprojfolders in the bundle you actually submitted, not in your project.
How to add a localization in App Store Connect
You need the Account Holder, Admin, App Manager or Marketing role, and an app version in an editable state (for example Prepare for Submission). The steps from Apple's help page:
- In Apps, select the app and open the version you're preparing.
- Click the primary language at the top right to open the language menu.
- Scroll to Not Localized, hover over the language and click +.
- Fill in the version fields: description, keywords, promotional text, What's New and the URLs. Upload localized screenshots (pick the language from the same menu in the media section). Click Save.
- Click App Information in the sidebar, switch to the new language and enter the localized name and subtitle. Check the Privacy Policy URL. Click Save.
- Submit the version. The new language goes through App Review with it.
Adding a language on the version page also adds it under App Information and to your other platforms. When you add a language, App Store Connect pre-fills its screenshots and other properties with the primary language's values, except the description and keywords. That's convenient, and it's also how English screenshots end up on a German page for years.
If nothing matches a visitor's language, Apple shows the next most relevant localization, and failing that, the primary language.
Which fields matter for search and which for conversion?
Search runs on a short list. Apple's App Store search guidance says results depend on "text relevance (matches for your app's title, subtitle, keywords, and primary category), as well as user behavior (downloads, ratings and reviews, and more)." So for ASO localization, the name, subtitle and keyword field are the whole text game, and they're per locale. Apple also says promotional text "doesn't affect your app's search ranking". The description isn't on the list; Apple only says it's used for web search engine results.
There's a complication: a storefront can index more than one localization. Apple's App Store localizations reference gives each storefront a default language plus additional ones, and the US storefront alone lists nine additional languages. How keywords combine across those is covered in App Store keywords localization.
Conversion happens on what people see before they tap:
- The name and subtitle sit in every search result.
- Depending on orientation, the first one to three screenshots appear in search results when there's no app preview, according to Apple's product page guidance.
- On the product page, Apple calls the first sentence of the description "the most important", because it's what people read without tapping "more".
- Promotional text sits at the top, and you can change it without a release.
Some ASO vendors say Apple began reading screenshot caption text for search in mid-2025. Apple hasn't documented this, and a test of 64 caption phrases by ConsultMyApp found "no strong evidence Apple is broadly indexing screenshot titles". Localize captions because people read them, not for ranking.
The order we'd localize in
This is the sequence we use and recommend. It puts effort where search and conversion are decided and leaves the long text for last.
- Pick the languages. The English variants come first because they're nearly free (see the next section). After that, it's a judgment call about your category and where your users already are; which languages to localize your app into goes through how we decide.
- Name, subtitle and keywords. Research these per locale. Look at what local competitors call themselves and which words people in that market use for the problem. Keep the brand part of the name, and localize the descriptive part.
- The first three screenshots. Translate the caption text and re-export. If your UI is localized, capture localized UI too.
- Promotional text. It's short, and you can change it whenever you like, so it's a good place for something time-bound.
- Description. Machine translation plus a read-through by a fluent speaker is usually fine here. Spend the care on the first sentence.
- What's New. Write a template you can reuse for routine releases, so you're not translating "Bug fixes and improvements" into 20 languages every two weeks.
- In-app events, custom product pages and In-App Purchase names, once the main page is in good shape.
Common App Store localization mistakes
Translating keywords literally. A translation of your English keyword list is a list of the words a translator would choose, not the words people type into the search field. The right word in Brazil may not be the dictionary translation of the English one, and some terms (often tech and gaming words) stay in English. Research keywords in each locale, don't translate them.
Overflowing the character limits. German and Finnish copy often runs longer than the English. "Build habits that stick" is 23 characters; a straight German translation, "Gewohnheiten aufbauen, die bleiben", is 34 and won't fit in a 30-character subtitle. "Gewohnheiten, die bleiben" (25) does. Asian scripts go the other way: a Japanese subtitle can say a lot more in 30 characters, so filling it with a literal translation wastes space. Check counts in every language before you push, because App Store Connect won't save a field that's over its limit.
Forgetting UK, Australian and Canadian English. This is the cheapest fix on the list. In Apple's storefront table, English (U.K.) is the default language in 135 of the 175 storefronts, including the UK, Ireland, India, Singapore and South Africa. Australia and New Zealand default to English (Australia), and Canada to English (Canada). Only the United States defaults to English (U.S.). Adding en-GB, en-AU and en-CA gives you three more keyword fields and lets you fix spelling: "Track your favourite colours" reads right in London, "Track your favorite colors" doesn't.
Leaving screenshots in English. A new localization inherits the primary language's screenshots, so nothing forces you to replace them. A product page with German text and English screenshots looks unfinished, and the screenshots are what people look at first.
Repeating words across fields. Apple's guidance is not to repeat words from the app name, subtitle or category in the keyword field. The same goes for every locale: if "Tagebuch" is in your German name, it doesn't need to be in your German keywords.
A Languages row that doesn't match the listing. Either way round it confuses people. Check the .lproj folders in the submitted build after every SDK update.
App Store Connect localization at scale with the API
Doing this by hand for 10 languages is a long afternoon of copying and pasting. For 50 languages, plus every release's What's New, it stops being realistic. Apple's localization page points to the answer: "You can use the App Store Connect API to automate your metadata upload and management for multiple localizations."
The resources map neatly onto the App Store Connect pages:
| API resource | Fields |
|---|---|
appInfoLocalizations |
name, subtitle, privacyPolicyUrl, privacyChoicesUrl, privacyPolicyText |
appStoreVersionLocalizations |
description, keywords, promotionalText, whatsNew, supportUrl, marketingUrl |
appScreenshotSets and appPreviewSets |
Screenshots and previews per version localization and device size |
appEventLocalizations, appCustomProductPageLocalizations |
In-app events and custom product pages |
| Game Center localization resources | Achievement and leaderboard names and descriptions |
Each localization is identified by its locale code (de-DE, pt-BR, zh-Hans, en-GB); App Store Connect languages has all 50. The usual flow is to find the version in Prepare for Submission, list its localizations, then PATCH the ones that exist and POST new ones with a locale and their attributes. Support URL and Privacy Policy URL are required for every localization, and in our experience a localization created through the API doesn't pick them up from the primary language. Send them yourself, even when they're identical. You'll need an API key with the Admin or App Manager role, created under Users and Access → Integrations (our walkthrough).
There are a few ways to use the API without writing the client yourself. fastlane's open-source deliver uploads metadata from text files in a folder per locale, which suits a CI pipeline. Loci, our Mac app, does the translation step as well: it pulls your listing, translates name, subtitle, description, keywords, promotional text, What's New and Game Center achievements and leaderboards into any of the 50 languages, and pushes them back, filling the new languages' URLs from the main language.
A checklist before you submit
en-GB,en-AUanden-CAexist, with local spelling.- Name, subtitle and keywords were researched per locale, not translated, and no word repeats across the three.
- Every field fits its limit in every language.
- The first three screenshots are localized in your main languages.
- Support and Privacy Policy URLs are filled in for every localization.
- The Languages row (the
.lprojfolders in the build) matches what the description promises. - What's New is written for every language you added.
FAQ
Does localizing my App Store listing translate my app?
No. Localizations you add in App Store Connect only change the product page metadata (name, subtitle, keywords, description, screenshots and so on). The app's own interface is localized in Xcode, and the Languages row on the product page comes from the .lproj folders in your app bundle.
How many languages can an App Store listing be localized into?
50. Apple added 11 languages in March 2026 (Bangla, Gujarati, Kannada, Malayalam, Marathi, Odia, Punjabi, Slovenian, Tamil, Telugu and Urdu), taking App Store Connect from 39 to 50 metadata localizations.
Do I need to submit a new app version to add a language?
Yes. You can only add or edit languages while a version is in an editable state, and the localized name, subtitle, keywords, description and screenshots go live with that version after App Review. Promotional text can be changed at any time after that.
Which App Store fields affect search ranking?
Apple lists the app name, subtitle, keywords and primary category as the text relevance signals, alongside user behaviour such as downloads and ratings. Apple says promotional text does not affect ranking, and the description isn't on its list.
What do people see if my listing isn't localized into their language?
Apple shows the next most relevant localization you have. If none fits, they see your metadata in the primary language set on the App Information page.
Keep reading
App Store Connect languages: all 50, with locale codes
App Store Connect languages: all 50 metadata localizations with API locale codes (en-US, zh-Hans, pt-BR), the 11 added in 2026, and where each shows.
Which languages to localize your app into first (2026)
Which languages to localize your app into first: a framework built on App Store spending by country, English reach and cost, plus a 5/10/long-tail plan.
App Store keyword localization: 100 characters per locale
App Store keyword localization gives every locale its own 100-character field, and some storefronts index several locales. Apple's table, rules and an example.