App Store localization checklist by market
Going into a new country? See which markets need native-language metadata, exactly which fields to localize, and the real App Store & Google Play length limits for each. You don't need an account.
Pick a market
Germany
Localize fullyLocal language: German
Users in Germany expect German metadata. Localize fully (title, subtitle/short description, keyword field, description, screenshots, and release notes) in native-quality copy, not machine translation.
What to localize, and the real store limits
Localization covers more than the description. These are the fields each platform indexes or shows, with the actual limits. Both stores count characters, and Apple counts every script the same, so a non-Latin keyword field holds far more terms than an English one.
| Field | App Store | Google Play | Localize? |
|---|---|---|---|
| App title | 30 chars | 30 chars | Yes: indexed + the first thing users read |
| Subtitle (iOS) | 30 chars | — | Yes: second-strongest indexed field |
| Short description (Android) | — | 80 chars | Yes: indexed + shown above the fold |
| Keyword field (iOS, hidden) | 100 chars | — | Yes: translate AND re-research per language |
| Description | 4,000 chars | 4,000 chars | Yes: indexed on Play; term frequency matters |
| Promotional text (iOS) | 170 chars | — | Yes: editable without a new release |
| Screenshots + captions | per device | per device | Yes: captions AND the in-app UI shown |
| What's New / release notes | 4,000 chars | 500 chars | Yes: localized notes read as a maintained app |
Translate and re-research keywords per language. People search in their own words, not a literal translation of your English terms.
The localization checklist
- Pick your target markets. Start with the countries already sending you the most installs, then the biggest stores in your category.
- Localize the indexed text fields in the local language: title, subtitle (iOS) or short description (Android), the full description, and the hidden iOS keyword field. Use native-quality copy. Machine translation reads wrong and can hurt conversion in Native-tier markets.
- Re-research keywords per language. Search terms differ by language and culture, not just spelling, so translate the meaning, then check volume + difficulty in that market.
- Localize your screenshots: both the captions AND the in-app UI shown in them. Screenshots in the wrong language are the most common localization miss.
- Localize "What's New" / release notes so the listing reads as an actively maintained app in every store.
- Respect the real per-platform limits. Both stores count characters, and Apple charges the same for every script, so a Japanese or Cyrillic keyword field fits more terms than its English original. Use the table above.
- Keep the brand name consistent across markets; localize the descriptive words around it, not the name itself.
Should you localize, by market
| Market | Local language | Recommendation |
|---|---|---|
| United States | English | English is fine |
| United Kingdom | English | English is fine |
| Australia | English | English is fine |
| Canada | English (+ French in Québec) | Recommended |
| Germany | German | Localize fully |
| France | French | Localize fully |
| Spain | Spanish | Localize fully |
| Italy | Italian | Localize fully |
| Poland | Polish | Localize fully |
| Netherlands | Dutch (English widely read) | Recommended |
| Sweden | Swedish (English widely read) | Recommended |
| Russia | Russian | Localize fully |
| Turkey | Turkish | Localize fully |
| Brazil | Brazilian Portuguese | Localize fully |
| Mexico | Latin-American Spanish | Localize fully |
| Japan | Japanese | Localize fully |
| South Korea | Korean | Localize fully |
| China (mainland) | Simplified Chinese | Localize fully |
| Taiwan | Traditional Chinese | Localize fully |
| Thailand | Thai | Localize fully |
| Indonesia | Indonesian | Localize fully |
| Vietnam | Vietnamese | Localize fully |
| India | English (+ Hindi & regional) | Recommended |
| Saudi Arabia | Arabic (right-to-left) | Localize fully |
Don't translate your metadata. Localize it.
ASOScan's AI writes title, subtitle, and description that read native in German, Japanese, Brazilian Portuguese, and every other market, graded by language tier rather than machine-translated. It also tracks your rank in every country you target.
Run a free ASO scanApp localization FAQ
Do I need to localize my app for every country?
No. English-speaking markets (US, UK, Australia) work with your English listing. Prioritize the markets where the local language is dominant (Germany, Japan, France, South Korea, Brazil, China and similar), because users there expect and search in their own language. Start with the countries already sending you installs.
Is translating my description enough to localize?
No. Localizing means the title, subtitle/short description, keyword field, description, screenshots (captions and the in-app UI), and release notes, in native-quality copy. It also means re-researching keywords in the local language, because people search in their own words, not a literal translation of your English terms.
What are the App Store and Google Play character limits?
App Store: title 30 characters, subtitle 30 characters, hidden keyword field 100 characters, promotional text 170 characters, description 4,000 characters. Google Play: title 30 characters, short description 80 characters, full description 4,000 characters. Apple counts characters rather than bytes and charges the same for every script, so a Japanese or Arabic field holds as many characters as an English one, and usually far more terms.
Should I machine-translate my app metadata?
For markets where the local language dominates, machine translation reads unnatural and can lower conversion and trust. Use native-quality copy. ASOScan generates metadata graded by market-language tier so it reads native in each country, never a literal machine translation.
Is this localization checklist free?
Yes. It is completely free, needs no signup, and runs entirely in your browser. It is one of ASOScan's free ASO tools.