Updated 2026-07-25 · 41 App Store languages

App Store Localization Checker

Translated copy is not the same length as the copy you wrote. German runs about 35% longer than English while Chinese runs about 50% shorter — and the App Store name field is capped at 30 characters in every locale. Paste your English text below to see which of the 41 languages it survives.

Languages
41
App Store Connect localizations
Expand
35
Get longer than English
Contract
5
Get shorter (CJK + Thai)
Right-to-left
4
Need a mirrored layout

Why a 26-character app name fails

Take a 26-character English app name — comfortably inside the 30-character cap, with room to spare. Run it through every App Store localization and it still fits in only 10 of 41 languages. German alone projects to 36 characters. App Store Connect will not accept the overflowing translations, so you either shorten those names individually or discover the problem at submission.

The check is cheap and the fix is cheap — but only before you commission the translations. See also the full App Store character limits reference.

Every App Store language

Language App Store code Length vs EN Width vs EN Overflow risk Font & layout notes
🇩🇪 GermanDeutsch
+35% +35% High
Inter, Roboto and Source Sans 3 render ä, ö, ü and the ß (eszett) cleanly. Check that ß isn't drawn like a Greek beta (β) or a broken long-s ligature, and that the umlaut dots stay clear of ascenders when line-height is tight. Full German guide →
🇫🇮 FinnishSuomi
+30% +30% High
Inter, Roboto and Source Sans 3 render ä and ö cleanly. Coverage is rarely the problem for Latin fonts. The real check is that the two dots sit clearly above the letter and don't clip in tight headline line-heights, since Finnish uses ä/ö far more frequently than German does; also confirm 'å' is present for Swedish-Finnish place and personal names. Full Finnish guide →
🇭🇺 HungarianMagyar
+30% +30% High
Noto Sans, Inter, and Source Sans handle Hungarian, but verify the double-acute ő and ű: many fonts fake them by reusing the dieresis (ö/ü) or a double-grave. The two strokes must be acute (rising to the right and parallel), not dots and not a wavy line. Full Hungarian guide →
🇵🇱 PolishPolski
+30% +30% High
Lato (designed by Polish type designer Łukasz Dziedzic), Inter, Roboto and Noto Sans all cover Polish well. Verify ł keeps its stroke (not a plain l), the ogonek on ą/ę and the acute on ś/ź/ń render, and ż (dot) is visually distinct from ź (acute). Full Polish guide →
🇧🇷 Portuguese (Brazil)Português (Brasil)
+30% +30% High
Rubik, Barlow, or Inter. Portuguese hinges on the nasal tilde ã/õ (as in 'pão', 'opções') plus the circumflex â/ê/ô and the ç. Verify the tilde sits cleanly over the vowel and isn't clipped at large display sizes. Full Portuguese (Brazil) guide →
🇵🇹 Portuguese (Portugal)Português
+30% +30% High
Source Sans 3, Karla, or Overpass. Same diacritics as Brazilian (ã õ â ê ô ç), but European Portuguese also traditionally uses guillemets « » for quotations. Pick a font that includes those angle quotes, not just straight and curly ones. Full Portuguese (Portugal) guide →
🇸🇦 Arabicالعربية
+25% +30% HighRTL
Noto Sans Arabic, SF Arabic (iOS system) or IBM Plex Arabic. All give correct positional letter shaping and full harakat/diacritic (tashkeel) marks; avoid Latin fonts that merely append Arabic glyphs, which break the cursive letter-joining. Full Arabic guide →
🇭🇷 CroatianHrvatski
+25% +25% High
Inter, Noto Sans, Roboto and Source Sans 3 cover Croatian. Verify č (caron) and ć (acute) are visually distinct, that š/ž carons render, and that đ/Đ show the crossbar rather than falling back to a plain d. Full Croatian guide →
🇨🇿 CzechČeština
+25% +25% High
Inter, Noto Sans, Roboto and IBM Plex Sans handle Czech well. Verify ř exists, that ď/ť use the correct small raised tick (not a caron floating above), and that ů keeps its ring so it stays distinct from ú. Full Czech guide →
🇪🇪 EstonianEesti
+25% +25% High
Noto Sans, Inter, and Lato all cover Estonian; the one to verify is õ (o with tilde), which must be present and visually distinct from ö (o with dieresis). Fonts with only a 'German' umlaut set will have ä ö ü but silently miss õ. Full Estonian guide →
🇱🇹 LithuanianLietuvių
+25% +25% High
Noto Sans, Inter, and IBM Plex Sans carry the full Lithuanian set. The make-or-break glyphs are the ogonek vowels (ą ę į ų) and the macron ū. Check they render as a hook/bar rather than being dropped, and that dotted ė keeps its dot alongside the caron letters č š ž. Full Lithuanian guide →
🇮🇷 Persian (Farsi)فارسی
+25% +30% HighRTL
Vazirmatn (widely used open Persian font), IRANSans, or Noto Sans Arabic. All include the Persian letters پ چ ژ گ and the correct ک/ی forms; avoid Arabic-only faces that box out those glyphs or force the Arabic ك/ي shapes. Full Persian (Farsi) guide →
🇷🇸 SerbianСрпски
+25% +25% High
Noto Sans covers both Serbian scripts and its `locl` Serbian variants; PT Sans and Inter also work. If setting Cyrillic, tag `lang=sr` so the italic б, г, д, п, т take Serbian shapes instead of Russian; if setting Latin, confirm đ, ć, č, š and ž all render. Full Serbian guide →
🇸🇰 SlovakSlovenčina
+25% +25% High
Noto Sans, Inter, Roboto and IBM Plex Sans cover Slovak, but many fonts include the Czech carons yet miss the Slovak-specific ĺ and ŕ. Verify ľ (raised-tick caron), ĺ, ŕ, ô and ä all render before shipping. Full Slovak guide →
🇸🇮 SlovenianSlovenščina
+25% +25% High
Inter, Noto Sans, Roboto and Source Sans 3 all cover Slovenian's minimal set: č, š, ž (caron). The concern is the opposite of its neighbors: keep the caron crisp at small sizes and make sure no Croatian ć or đ leaks in, since those are not Slovenian letters. Full Slovenian guide →
🇪🇸 SpanishEspañol
+25% +25% High
Montserrat (drawn by Argentine designer Julieta Ulanovsky, excellent Spanish coverage), Inter, or SF Pro. Confirm the font includes ñ, the inverted marks ¿ ¡, and ü (diéresis) for words like 'pingüino'. Decorative display fonts frequently drop the inverted punctuation. Full Spanish guide →
🇸🇪 SwedishSvenska
+25% +25% High
Inter, Roboto and Source Sans 3 all cover å, ä, ö. Coverage isn't the issue. The concern is the ring on 'å' and the dots on 'ä/ö' staying visible above tight cap-height headlines; pick a font whose diacritics don't clip, and never fake 'å' as an 'a' plus a degree sign. Full Swedish guide →
🇧🇬 BulgarianБългарски
+20% +20% Medium
Noto Sans ships Bulgarian localized Cyrillic forms via the `locl` feature, but only when the text is tagged `lang=bg`. Most design tools default to Russian-style glyphs otherwise. Confirm ж, к, т and ш take their Bulgarian shapes and that ъ is present. Full Bulgarian guide →
🇪🇸 CatalanCatalà
+20% +20% Medium
Inter, Noto Sans, or Source Sans 3. The make-or-break glyph is the ela geminada 'l·l' (an interpunct/middle dot, U+00B7, between two L's, as in 'intel·ligent'); also confirm ç and both grave (è, ò) and acute (é, ó) accents render. Full Catalan guide →
🇩🇰 DanishDansk
+20% +20% Medium
Inter, Roboto and Source Sans 3 all include æ, ø, å. Verify the 'æ' is a true single ligature glyph (not a cramped a+e), and that 'ø' keeps a visible slash at small sizes. A slash that fades makes 'øl' (beer) read as 'ol' and signals a broken font. Full Danish guide →
🇳🇱 DutchNederlands
+20% +20% Medium
Inter, Source Sans 3 and Open Sans cover Dutch cleanly. The real concern is the trema (ë, ï, ö, ü) in words like 'financiën' and the é in loanwords, not a special script. Also check the 'ij' pair kerns evenly, since some fonts leave a gap that makes it read as two separate letters. Full Dutch guide →
🇫🇷 FrenchFrançais
+20% +20% Medium
Marianne (the official French State typeface), Spectral, or Inter. Confirm coverage of the œ/Œ ligature (as in 'cœur'), the ç cedilla, accented capitals (É, À, Ç) and the guillemets « ». Many fonts ship « » but lack the precomposed accented uppercase glyphs. Full French guide →
🇬🇷 GreekΕλληνικά
+20% +20% Medium
For modern Greek, Noto Sans Greek, Roboto, and Inter all cover the monotonic set (tonos + dieresis, including the combined ΐ ΰ); check that η ν ρ aren't just re-skinned Latin look-alikes. If you set classical/polytonic text you need a polytonic-capable face like GFS Didot or Noto Serif Greek instead. Full Greek guide →
🇮🇹 ItalianItaliano
+20% +20% Medium
Inter, Lora, or Libre Franklin. Italian needs both grave (à è ì ò ù) and acute (é, occasionally ó) accents. Check the font clearly distinguishes è from é, since 'caffè' (grave) and 'perché' (acute) are both everyday words. Full Italian guide →
🇱🇻 LatvianLatviešu
+20% +20% Medium
Noto Sans, Inter, and IBM Plex Sans cover standard Latvian. The make-or-break glyphs are the comma-below consonants ģ ķ ļ ņ (a comma, never a cedilla-hook, with lowercase ģ's comma sitting above the letter) and the long vowels ā ē ī ū. Note standard Latvian has no ō, so don't pad the alphabet with it. Full Latvian guide →
🇳🇴 NorwegianNorsk
+20% +20% Medium
Inter, Roboto and Source Sans 3 cover æ, ø, å well. The must-check glyph is 'ø' (o with a slash): some fonts omit it or draw the stroke so thin it vanishes at small sizes and reads as a plain 'o' (which changes words), and the ring on 'å' must stay crisp too. Full Norwegian guide →
🇷🇴 RomanianRomână
+20% +20% Medium
Noto Sans, IBM Plex Sans, or Inter. All render the comma-below ș/ț correctly. Avoid older system fonts (Arial, Tahoma) that substitute the Turkish cedilla ş/ţ, and confirm the breve on ă and the circumflex on â/î are present. Full Romanian guide →
🇹🇷 TurkishTürkçe
+20% +20% Medium
Inter, Roboto, and Noto Sans all carry the full Turkish set (ğ ı İ ş ö ü ç), so glyph coverage is rarely the problem. The real risk is locale-aware casing: uppercase headlines with the 'tr' locale so 'i'→'İ' and 'ı'→'I' render correctly instead of the English 'i'→'I'. Full Turkish guide →
🇺🇦 UkrainianУкраїнська
+20% +20% Medium
Noto Sans, Inter, PT Sans and IBM Plex Sans cover Ukrainian. Confirm the font carries і, ї, є and especially ґ (the g-with-upturn that Russian-focused fonts often omit) and renders the apostrophe cleanly. A Russian-only Cyrillic subset is the failure case. Full Ukrainian guide →
🇵🇰 Urduاردو
+20% +30% HighRTL
Noto Nastaliq Urdu (strongly preferred: true sloping Nastaliq with proper mark stacking), or as fallbacks Jameel Noori Nastaleeq / Noto Sans Arabic; a plain Naskh Arabic font renders Urdu upright and flat, which reads as amateur. Full Urdu guide →
🇻🇳 VietnameseTiếng Việt
+20% +20% Medium
Be Vietnam Pro (designed for Vietnamese), Noto Sans, and recent Inter. All cover ơ, ư, đ plus stacked tone marks (ậ, ệ, ợ). Verify the tone mark sits crisply over the horn vowels and doesn't collide with the letter above; older webfonts often mis-position it or fall back mid-word. Full Vietnamese guide →
🇮🇩 IndonesianBahasa Indonesia
+15% +15% Medium
Indonesian uses unaccented Latin (the only occasional mark is é in a few names/loanwords), so glyph coverage is a non-issue; choose Plus Jakarta Sans (an Indonesian-designed family), Inter, or Poppins for a clean, high-x-height look that stays legible for long affixed words at small screenshot sizes. Full Indonesian guide →
🇲🇾 MalayBahasa Melayu
+15% +15% Medium
Standard Rumi (Latin) Malay uses plain ASCII with no special diacritics, so Inter, Roboto, Noto Sans or SF Pro all render it perfectly; the real trap is Jawi (Arabic-based Malay used in Brunei and cultural contexts), which needs a Jawi-capable Arabic font covering the extra letters ڠ ڽ ڤ ݢ چ, not a Latin face. Full Malay guide →
🇷🇺 RussianРусский
+15% +15% Medium
PT Sans / PT Serif (ParaType, purpose-built for Cyrillic), Roboto, Noto Sans and IBM Plex Sans all ship true Cyrillic italics. Verify the italic forms of г, д, и, п, т are cursive rather than slanted-Latin shapes, and that ё and й keep their diacritics. Full Russian guide →
🇮🇳 Hindiहिन्दी
+10% +15% Medium
Noto Sans Devanagari, Mukta, or Hind (Indian Type Foundry). All shape the shirorekha headstroke, matras and conjunct ligatures correctly; avoid generic system fonts, whose Devanagari support varies wildly across India's many Android OEMs and can split conjuncts. Full Hindi guide →
🇮🇱 Hebrewעברית
0% +5% HighRTL
Noto Sans Hebrew, SF Hebrew (iOS system) or Heebo (a widely used Hebrew-first Google font). All cover the five final letterforms plus geresh/gershayim punctuation; avoid niqqud-heavy display faces unless you deliberately need vowel points. Full Hebrew guide →
🇹🇭 Thaiไทย
-5% 0% Low
Noto Sans Thai, IBM Plex Sans Thai, and Sarabun (a Thai government-standard looped face). Pick by loop style. Looped fonts carry the traditional head-loops and stack tone marks cleanly, while loopless display faces like Kanit look modern but need generous line-height so upper vowels and tone marks don't clip. Full Thai guide →
🇰🇷 Korean한국어
-40% +5% Low
Pretendard, Noto Sans KR, Apple SD Gothic Neo (iOS system). Pick a Korean-first family so the jamo proportions and the batchim (bottom consonant) sit correctly; a pan-CJK fallback renders Hangul but with subtly off vertical metrics and stroke terminals. Full Korean guide →
🇯🇵 Japanese日本語
-45% +5% Low
Noto Sans JP, Hiragino Sans (iOS system), Yu Gothic. Use the JP-specific build so shared Han characters (骨, 直, 今) take Japanese glyph shapes rather than Chinese; avoid Mincho (serif) for UI unless you deliberately want an editorial tone. Full Japanese guide →
🇨🇳 Chinese (Simplified)简体中文
-50% 0% Low
Noto Sans SC, PingFang SC (iOS system), Source Han Sans SC. All carry mainland simplified glyph forms; a Japanese or Traditional Han font renders shared characters (骨, 直, 今) with subtly wrong strokes and lacks or mismaps the simplified forms. Full Chinese (Simplified) guide →
🇹🇼 Chinese (Traditional)繁體中文
-50% 0% Low
Noto Sans TC (Taiwan MOE forms) or Noto Sans HK (Hong Kong HKSCS forms), plus PingFang TC on iOS. The TW and HK builds differ on characters like 骨, 內, 直; never reuse a Simplified font, which lacks or wrongly maps traditional characters. Full Chinese (Traditional) guide →

What each script needs

Latin, Cyrillic, Greek

One well-built family usually covers all three. Watch length, not glyphs — this is where the +25% to +35% expansion lives.

CJK — 4 languages

Text gets shorter but each character is wider. Use the language-specific font build: a generic Noto Sans renders shared Han characters with Chinese glyph shapes, which reads as wrong to Japanese and Korean users.

Right-to-left — 4 languages

The layout mirrors, not just the text: image placement, progress direction, and arrows all flip. Hebrew is the trap — it barely expands, so a length-only check calls it safe.

Devanagari & Thai

Both need their own font with correct shaping. Thai also needs extra line-height: its ascenders and descenders clip at the line spacing that works for Latin.

Embed this checker

Free to embed on any site. No tracking, no cookies, auto light/dark.

<iframe src="https://shotlingo.com/tools/app-store-localization-checker/embed" width="100%" height="620" style="border:1px solid #e5e5ed;border-radius:12px" loading="lazy" title="App Store localization readiness"></iframe>

Download the data

Frequently asked

How much longer does App Store copy get when translated?

It depends on the language, and the spread is wide enough to break layouts: German runs about 35% longer than English, Portuguese, Polish, Finnish, and Hungarian about 30%, and most of Western Europe 20-25%. The CJK languages go the other way — Chinese is roughly 50% shorter in character count, Japanese 45% shorter, Korean 40% shorter — though each character is visually wider. Of the 41 App Store languages tracked here, 35 expand and 5 contract.

Why does a 26-character app name fail in German?

The App Store name field is capped at 30 characters in every locale, and the cap is per-locale, not per-app. A 26-character English name at German's +35% expansion projects to 35 characters, which overruns the field — so App Store Connect will not accept the translation as written and you have to shorten the German name specifically. This is the single most common localization rejection for indie apps, and it is entirely predictable before you commission a translation.

Which languages need a mirrored (RTL) layout?

Four of the 41 tracked languages are right-to-left: Arabic (ar-SA), Persian (Farsi) (fa), Urdu (ur), Hebrew (he). RTL is not a text swap — the whole layout mirrors, including image placement, progress direction, and back-arrow direction. Hebrew is the trap here: it barely expands at all, so a length-only check marks it safe while the layout still needs a full mirror.

Do I need a different font for each language?

Not one per language, but you do need coverage per script. Latin, Cyrillic, and Greek are usually covered by one well-built family. CJK needs a language-specific build — a generic Noto Sans falls back to Chinese glyph shapes for shared Han characters, which reads as wrong to Japanese and Korean users. Arabic, Hebrew, Devanagari, and Thai each need their own font with correct shaping, and Thai additionally needs the taller line-height that its ascenders and descenders demand.

Is this data free to use?

Yes. The full dataset is available as JSON and CSV under the MIT license, with attribution appreciated. It is derived from the same per-language research that powers the Shotlingo localization guides, so the numbers on this page and on the individual language pages never disagree.

Stop finding this out at submission

Shotlingo translates your screenshot copy into all 41 App Store languages and re-renders every screenshot at the right length — RTL mirrored, fonts per script.

Start free More free tools

Changelog