I am working on app, and customers want it to be fully localized. We have several Localizable.strings and InfoPlist.strings files for each supported language.
There is an opportunity in the app to change app's language "on fly".
(This is done by associating another bundle with chosen language)to main bundle. So when app calls [NSBundle.mainBundle localizedStringForKey:value:table:], it actually refer to bundle with language user has selected.)
Here comes bad consequences. System permission alerts (requests for location usage, camera usage, etc.) are not localized with language selected within the app, but localized with preferred language from iOS Settings.
So, for example, if user has English as preferred language in Settings, but in our app he chose French, the whole app will be in French except system alerts, which will be in English.
Is there any way to fix it? I mean, to choose programmatically which language system alert must consider as preferred?
Apple Rejection Reason: Your app's modal alerts are in English, but your app's primary language is French. To help users understand why your app is requesting access to a specific feature, your app's modal alerts should be in the same language as the rest of your app.