3
votes

I know this is an already asked question, but no one of the answers helped me.

I'm writing an iOS app localized in italian and english.

I've already done two storyboards and two Localizable.strings file for the texts.

Now, if I set the english language on the phone, the app picks the english files, if I set the italian language on the phone the app picks the italian files.

But if I set french language(or spanish, or german), the app picks the italian files, which is wrong, how can I set english as the default language?

1
There should be a base file as well, and use that. Idk if you know about this, but iTunes U has a class that does describe that process quite well. Just download iTunes U on your iPhone/itouch/ipad, and then hit catalog or similar on the start screen, and find "developing iOS 7 apps for iPhone and iPad." Go to the videos, and find "localization, adding ui to settings" and that should help you out - user2277872
I don't have base localization in the languages, I only have Italian and English - allemattio

1 Answers

16
votes

An iOS device keeps track of which languages you have set the locale to. If the currently selected locale is unsupported in an app, then the device will use the last user-selected language you used that is supported by the application.

So for example, imagine you had changed your device to English, then Italian, then Spanish. The app would first try and provide a Spanish localization. If one wasn't available, it would attempt Italian. If that wasn't available, then it would finally use English.

If you view the list of languages in the device's Settings, you'll see that they're ordered by 'last used'. I'm not aware of any way to alter this (seemingly intentional) feature.