iOS 13 - Detect if there is a possibility to change application language from Settings.

Hello!


As it was mentioned in https://forums.developer.apple.com/thread/123413 there can be absent a possibility to change application language from settings page in some cases. But it is a good practise to add a possibility to change application language from the application by navigating to this Settings page via UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!). How can I detect programmatically if this possibility is really possible or hidden?

It is a bad idea to show a user a possibility to change app language in cases when language switching is hidden in Settings.

Replies

You can only navigate him to the settings page, bot directly to the language change setting (AFAIK)

Sounds quite frustrating ((

Apple decides what is/isn't good, not us lowly devs


As well, Apple trains users to expect consistent UI behavior with the expectation of lower frustration vs. an inconsistent experience.


See the iOS Human Interface Guidelines for details, etc.


If you feel something about iOS should be changed and/or have a feature/enhancement request, note that users can feedback via http://www.apple.com/feedback/ - Devs, and individuals using betas, are free to use the Feedback Assistant via the 'Report Bugs' link, below right.


About checking, see:


Good luck.

Post not yet marked as solved Up vote reply of KMT Down vote reply of KMT

Hello,


I made it with the following computed property.

It just checks if there is more than one language, if it's the case it can show a button for navigating to settings.


var showLanguageButton: Bool {

Locale.preferredLanguages.count > 1 ? true : false

}


I don't know if it's the best way to do this, but it worked for me.