1

I'm building an app for both Android and iOS. The app will be fully internationalized, with support for several languages right out of the box and more coming soon after.

When the user starts the app on their device, I will present a splash screen for a few seconds (while it loads/initializes) and then they will be redirected to a screen where they can login or click a link to register/sign up/create an account.

My thinking was: during account creation, we will prompt them for their preferred language, and will react immediately to it. So if they speak French they would have to make it to, say, the 2nd or 3rd screen in the account setup process before they could select "French" as their preferred language, but then we would immediately begin displaying the app to them in French.

However:

  • If they don't speak English they (very possibly) will struggle tremendously to even get to the screen where they can select their language
  • Every time they go to login to the app, since English would be the default they'd have to brave the login screen before the backend could associate their user with their language preference and switch locales/languages accordingly

So I ask: how does one present Sign In/Sign Up screens to users without knowing their preferred language?

3

If you follow best practices on both platforms (i.e. NSLocalizedString on iOS) you won't need to worry about this. The strings will be automatically displayed in the user's device language.

  • 1
    Agreed. There are ways of getting the user's language setting. – Paul van den Dool Dec 1 '17 at 9:01
  • Interesting, was not aware of this. So it is possible to simply use whatever language the device is using and skip the language select completely? The main issue with for example checking country was that some have more than 1 official language. This solves everything! – Wanda Dec 1 '17 at 11:19
  • Exactly. Your user will have set the phone's interface language already. All you need to do is follow best practices for strings, and they will be filled in automatically. If you haven't provided the user's interface language the system will use the default translation (probably English if that's what you're coding in). You shouldn't even need to get the user's language. – arsenius Dec 1 '17 at 13:26
1

I stay in India, and we have around 20 popular languages which are different from each other.

I have come across this problem in my very first app.

The practice that is mostly followed is - Showing the very first screen (after splash screen) with options to select language. The options for languages should be in their respective language, so that user understands the text.

Check this image for example Language text in respective languages

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.