How to localize an iOS app, step by step
Follow these steps in order. Each one is something we do on client work.
- Use String Catalogs. Xcode's.xcstrings file holds strings and translations.
- Avoid hard-coded text. Use String(localized:) or LocalizedStringKey.
- Handle plurals. Use catalog plural variants.
- Localize Info.plist strings. Including permission purpose strings.
- Test with pseudo-languages. Xcode schemes can show long or RTL text.
- Localize App Store metadata. Name, subtitle, keywords, screenshots.
iOS localization: key rules and context
App side
- Project > Info > Localizations > add languages.
- Add a String Catalog; build to extract strings.
- Translate; mark states as reviewed.
- Localize InfoPlist.xcstrings for purpose strings. See Apple: Localization.
Testing. Edit scheme > App Language; use pseudolanguages for text expansion and RTL.
App Store side. Each localization has its own name, subtitle, keywords, description and screenshots (App Store localizations).
Service. We localize the listing: Localization package, $99 for 3 markets.
Worked example (hypothetical)
This example is illustrative. The app is made up, and so are any numbers in it.
Say WalkMate localizes into Japanese but forgets the camera purpose string. Japanese users see an English prompt. We'd add it to the InfoPlist catalog.
Common mistakes
- Forgetting purpose strings. Mixed languages.
- Direct translation of keywords. Research locally.
- No pseudo-language test. Layouts break.
- One screenshot set for all. Localize captions.
If you want this handled for you, our pricing page lists every fixed package.
What you can localize in each store
Both stores let you localize the parts that drive search and conversion.
| Asset | App Store | Google Play |
|---|---|---|
| Name / title | Per localization, 30 characters | One localized name per language, 30 characters |
| Keywords | Keyword field per localization, 100 bytes | No keyword field; localize the descriptions |
| Descriptions | Description and promotional text per localization | Short and full description per language |
| Screenshots | Per localization and device size | Localized graphic assets per language |
| Fallback | Primary language if not localized | Automated Google Translate view if not translated |
App Store text fields and their limits
These are the limits App Store Connect enforces today. Plan your copy against them before you write a word.
| Field | Limit | Notes |
|---|---|---|
| App name | 2–30 characters | Shown on the product page and in search |
| Subtitle | 30 characters | Appears under the name |
| Keywords | 100 bytes | Comma-separated, each keyword more than two characters; don't repeat app or company name; no other app or company names |
| Promotional text | 170 characters | Above the description; can change without a new submission |
| Description | 4,000 characters | Plain text, no HTML |
| What's New | 4,000 characters | Required for every version after the first |
How we measure the result
For iOS localization, judge each market on its own numbers. Filter App Store Connect and Play Console by country or region rather than looking at global totals. A new localization should start bringing impressions from local-language searches.
Checklist
Copy this list into your release notes or ticket and tick each item off before you ship.
- String Catalog
- No hard-coded text
- Plurals
- InfoPlist strings
- Pseudo-language test
- Metadata localized
Sources
- Apple: Localization (accessed 26 October 2026)
- Apple: App Store localizations (accessed 26 October 2026)
- Apple App Store Connect Help: App information (accessed 26 October 2026)
- Apple App Store Connect Help: Platform version information (accessed 26 October 2026)
- Play Console Help: Create and set up your app (accessed 26 October 2026)
- Play Console Help: Translate and localize your app (accessed 26 October 2026)
Questions
What are String Catalogs?
Xcode's localization file format since Xcode 15.
Do permission prompts need translation?
Yes.
Can I use XLIFF?
Yes, export/import from Xcode.
Does Apple index each localization's keywords?
Yes, in storefronts that use them.
Do you translate the app?
No, listing only.
Does each App Store localization get its own keyword field?
Yes. Keywords can be localized, so each localization gets its own 100-byte field.