Change language in an app, okay?

I would like to let users change the app language under a settings section inside an app that I am developing. I think that in Apple's guidelines the language is following the phone language, which the app will also do, but I would like users to be able to override this.

Is that allowed or will this be rejected?

In general I wonder how the app store reviews apps, how close you have to be to the official guidelines. I worked on apps many years ago, and then I remembered the reviews to be mostly about ensuring that there was no offensive content, broken links and that the reviewer could understand how to move around in the app. They didn't seem to care if you followed the guidelines or not.

Replies

I did the language setting "manually" in one app, because I needed a language that's not supported and wanted to switch language "on the fly, instantly".


It is a bit tedious to do, but not impossible.

However, take use not to get user lost, take care when using formatters that depend on local…

And the app settings from settings apps will remain in the iPhone language.


Details here:

https://forums.developer.apple.com/thread/129946

Did it pass the review?

If figure people would be used to changing languages from using regular websites, where that is often an option.

But the previous guy responding says that the app will be rejected if I do that.

What you cannot do is a hack, calling non public func to force change the language, just as if user selected a different language in settings.

There are technical ways to do it, but it is forbidden.


Now, imagine you want to be able to let user visualize all the texts of the app in a non supported language (to illustrate, in hieroglyphs).

You cannot do it using language change at system level.

You have to do it manually, display all text and buttons… in hieroglyphs when user has asked to.


It is allowed and does pass reviews?

Just to clarify: I don't mean to change the language of the entire phone, only in the app that I am building. It's a use case that is of course common on websites, so many will expect it to be possible right there, rather than minimizing the app, going to Settings etc, which is also a detour.

I am almost certain I build an app like this about 4-5 years ago, but I may remember it wrong, or the reviewer passed it without noticing (the app per default took the language of the phone).

App Review most assuredly cares about your following guiudelines. I don't see anything in the guidelines that you would be violating by language switching using a switch in the app. Localization accomplishes this task without needing the switch - but nothing prevents you from doing it yourself.

I can confirm, you can get app accepted this way.


You forget a use case: if you want to propose an interface in a non supported language (I gave the example to illustrate of ancient Egypt hieroglyphs, but there are some dialects as well that are not supported). You have no choice.


In addition, localization by switching the phone language take between 20 and 40 s overall.

Imagine an app for 2 players, one speaking french the other english.

When I flip the phone, I want to change language, instantly.

Impossible through system settings.


I do think that's a missing fature in iOS and asked for improvement long ago.

AFAIK, you cannot change system language from within the app. But it is authorized to change all the text displayed (including in buttons, images, textfields, alerts, …) within the app.

But you have to do it manually (a switch for each text you display).

It is tedious but not difficult.