Localization for GearVR: only accepts cultures on user language list

I have 3 different cultures implemented (pt,en,es).

It works flawlessly as long as the languages are included in the phone’s Language setting as main/secondary languages. If the desired language is not listed there, however, calling the BP node “Set Current Culture” fails because NewCulture.IsValid() returns a false.

Can anyone help me?

Summary:
-3 cultures localized (Android/GearVR - changes dynamically with a button)

Result:
-can only change to languages on user settings

Desired:
-user can change between all available languages

I’m not aware of any platform specifics that would block or add support for different cultures, so this is certainly odd.

Could you check which “Internationalization Support” you’re packaging with? (Project Settings → Packaging → (advanced section)). For the languages you need, that should be set to “All”.

Great tip, JamieDale, thank you very much!

I had “Localizations to package” set to only the ones I have. Changing it to All didn’t work, but made me realize the “Internationalization support” was not set to “All”. Was kinda confused if what was happening was correct behavior since it worked fine when the language was enabled in settings.

Summary:
“Internationalization support” was not set to “All”.

We use ICU as our internationalisation library, and I’m pretty sure that Android does too. I suspect that adding the language to the device downloaded the ICU data for it, and let our ICU instance (which is supposed to be sandboxed to only look in its own directly) access that data.