On October 16, 2026 we read the language list of every app we have live on the App Store. All nine said English, and nothing else. Seven of the nine are translated, one of them into twelve languages.

How it was measured

Apple’s public iTunes lookup endpoint returns a field called languageCodesISO2A for every app. It’s the list the App Store shows under Languages. We asked it for each of our nine live apps, then counted the languages each app actually ships from its translation files in the repo.

AppLanguages in the appApp Store says
Taco Rain12EN
Step And Earn7EN
Play And Earn7EN
Househand4EN
Todo And Earn4EN
Asteroid Duel3EN
Handyman Calc2EN
Daily: Learn And Earn1EN
Community Stress First Aid1EN

Two of the nine are right. The other seven ship 32 languages between them, English aside, that the App Store doesn’t list.

The cause

Every one of these apps is Flutter, and every one started from Flutter’s iOS project, which has a single Base.lproj folder holding the launch screen. Flutter’s internationalization guide says to list your languages under CFBundleLocalizations in Info.plist, and most of ours did.

That didn’t reach the listing. Handyman Calc is the clearest case: its Info.plist named English and Spanish, the app runs in Spanish, and the lookup still returned ["EN"] the day after launch. What the seven apps have in common is that the bundle has no folder for any language. As far as we can tell from our own builds, that folder is what the listing is read from.

The fix

For each language the app ships, add ios/Runner/<lang>.lproj/InfoPlist.strings and register it in the Xcode project, so Xcode copies it into the app. Ours hold only the home-screen name, plus a permission message where we already had a real translation of it. We didn’t machine-translate permission text to fill the folders.

Registering is the step that’s easy to miss. A folder that exists on disk but isn’t in project.pbxproj never makes it into the build. The way to be sure is to unzip the .ipa and look inside Payload/Runner.app. For Taco Rain that now shows twelve .lproj folders next to Base.lproj.

We made the change in 17 app repositories and both of our app templates, and added a check to our release preflight that fails a build when an app ships a language with no folder for it. The check is in the store preflight skill.

What we haven’t verified

None of the fixed builds is on the App Store yet. The first two, Covert Mail and a Handyman Calc update, are uploaded and waiting to be submitted. Until one of them is released and the lookup returns more than EN, the fix is a well-supported guess rather than a result. We’ll add the before and after here when it lands.

We also haven’t measured whether the missing languages cost us anything in search or installs. The App Store does let people see an app’s languages before installing, and a Spanish speaker reading “English” on a Spanish app has a reason to skip it. That’s the whole of the case for fixing it; we have no number for it.

If you ship a translated Flutter app, the lookup takes a minute. Put your app id into itunes.apple.com/lookup?id= and read the languages back.

Frequently asked questions

Why does my translated Flutter app show only English on the App Store?

In our apps it was because the iOS bundle had only a Base.lproj folder. Listing the languages in CFBundleLocalizations in Info.plist was not enough: Handyman Calc listed English and Spanish there and its App Store page still said English only.

How do I check which languages the App Store shows for my app?

Ask the iTunes lookup endpoint for your app id and read languageCodesISO2A. It's public and needs no login.

What is the fix?

One .lproj folder per language inside ios/Runner, each with an InfoPlist.strings file, registered in the Xcode project so it is copied into the app. Then unzip the built .ipa and check the folders are in Runner.app.

Does fixing it improve App Store search?

We don't know yet. The fixed builds haven't been released, and we haven't measured any ranking change. This page will be updated when they have.

The apps these numbers came from

Every figure above is from an app you can install and check. They are on our apps page, and the game is playable in your browser if you would rather not.

See the apps