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.
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
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 toolsChangelog
- 2026-07-25 — Initial release — 41 App Store languages with expansion, visual width, script family, RTL flag, and per-field overflow checking against the 30-character name and subtitle limits.