Language Coverage
Most apps in a search result ship one language. The leaders ship twenty. This puts the languages your app declares next to the 25 apps you share a result with, and names the ones they have that you do not.
What the spread actually looks like
Measured live on one US search result for “habit tracker”, the 23 apps returned declared: 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 7, 8, 8, 9, 9, 10, 10, 15, 19, 22, 28, 28 and 40 languages. Eight of them ship a single language and one ships forty. Which end of that a result is competing at is not visible from any product page.
Note what this measures: the languages compiled into the app itself, which is a different fact from whether the App Store listing is translated. For that, use the localization audit.
Sampled across 2,110 apps from 47 live search results, Apple returned a language list for all but one. The one is reported as missing data, never as an app with no languages.
How many languages does your app declare?
Every App Store listing declares the languages its binary supports. This counts yours, compares it against the apps in your search result, and names the specific languages the cohort has that you do not.
It is the binary side of localization. The listing side — whether each storefront shows translated copy — is a separate question the localization audit answers.
How it works
- 1One search call builds the cohort and one lookup covers your app.
- 2Language codes are counted DISTINCTLY, because the field repeats: Chinese appears twice for apps shipping both scripts, in 21 of 26 rows for one search term. A naive length count overstates those apps by one.
- 3The cohort’s languages are pooled and compared against yours to produce the gap list.
- 4Codes outside the name table render as the raw uppercase code with a marker rather than an invented language name.
What it cannot tell you
- This measures the BINARY’s declared languages, not a localized App Store listing. An app can declare twenty languages and still show an English listing in every storefront.
- An empty list means unknown, not zero. Sampled across 2,110 apps, exactly one returned an empty array.
- The field cannot say which Chinese script it means, which is why that code links to no metadata generator.
Frequently asked questions
Is declaring more languages better?
Only if the app is genuinely usable in them. Declaring a language you have not translated sets an expectation the app does not meet, and users rate accordingly.
How is this different from the localization audit?
This reads what the binary declares. The audit reads what each storefront actually displays. They disagree more often than you would expect, which is why both exist.
Where do these language codes come from?
Apple returns them on the listing as ISO codes. This page counts the distinct ones and names them where a reliable name exists.
Written up on the blog
- How many languages your app declares, and why counting them is harder than it looksThe App Store's language field repeats one code, treats empty as unknown, and describes the binary rather than your listing. Three traps in a number that looks trivial.
- Minimum iOS and download size: two gates, and two figures nobody can computeBoth sit on your product page where every user sees them. Apple publishes no per-version device share and no current cellular limit — here is what you can compare.
Localization & reach
Or browse every free App Store optimization tool.