Thanks pdm. I know that its against the conventional way of handing language in iOS. Its more or like Web behavior.
Here is my app overview.
App is about country information and provide what's special about that country where user lives.
Example: India and Dubai. Where we have content available in backend system in Hindi and English for India and Arabic and English for Dubai.
Normal flow of app (In-App language selection):
Indian user opens app and selects India as country of residence and Hindi as language. Server will provide all content in Hindi. App will display numbers, date&time, currency etc. in Indian Region/Calendar (country of residence)
Dubai user opens app and selects Dubai as country of residence and Arabic as language. Server will provide all content in Arabic. App will display numbers, date&time,currency etc. in Dubai Region/Calendar (country of residence) with RTL writing direction.
If you see, app supports English, Hindi and Arabic overall. (lproj bundled but its based on case.) But no where we have used device locale,region format values.
Here business rules are followed as we have given user to choose their language.
Device Language:
Lets say app depend on device language.
Dubai user sets hindi in his iPhone (may be familiar with that). He opens the app and selects Dubai as country of residence. Language will be automatically selected as Hindi here. But at server system side all contents are either in Arabic or in English for Dubai. Thats kind of issue if we depend on device language.
Let's say we defined default language in system as Arabic for Dubai in above case, still number formatter, date&time, currency in Indian Region/Calendar (device region setting). Thats issue here. Content in Arabic but pricing, number, date&time in Indian format.
In both the solutions (in-app selection or device language), we have to deal with the scenarios where we have to force iOS framework to go away with device language.
Let me know your thoughts on this. Thanks a lot again.