Fixing things #3: Switching languages
2025/04/03 #uiux
There is no doubt that language is central to almost any user experience. Regardless of how well an interface may be designed, if the user who interacts with it does not understand the language that interface is displayed in that is probably a non-starter (and iconography can only take you so far after all). But if language is so vital to the user experience, here's a question for you: Have you ever had a great user experience switching the language of a website or software? Like a truly great one? I'm not sure I have.
But why does the user experience of switching the interface language suck so often? What makes this so uniquely challenging to design and implement well? Let me list at least a few of the reasons that might explain this:
-
First let's reiterate that if the interface is shown in a language the user can't understand this potentially stop the entire user journey right there. One funny real-world example I thought of on a recent trip to Japan are those famous "washlet" toilets and their complicated control panels. I bet a significant number of foreign visitors to Japan opt not to use the bidet functions of these fancy toilets just because they are not sure what buttons to press.
This is one of the most simple examples of a washlet control panel and I'm not sure you figure it out with the iconography as the sole clue to go on. -
Following from that first point one ideally would want to show the language selector front and center. The first thing the user should be able to do is to set the interface to their desired language, right? Well, one important caveat to that idea is that the language selector is only relevant to a specific subset of all users (those who need to change the language). So for all other users the language selector is just a distraction and takes up a step (or screen real-estate) that could otherwise show something more important.
I honestly think no one should want more popups in their life. -
When interfaces opt not to show the language selector prominently to avoid distracting the majority of users who don't need to switch the language it often ends up buried in a low-priority area like the footer of a website – a tradeoff that degrades the user experience for everyone who does need to change the language in favor of the rest.
Many big websites choose to hide their language selectors in the footer. -
At the same time this also means the interface has to be able to guide the user to the language selector without using language but there is no sufficiently well-known icon to signify "this is where you can change the interface to your language". While the most common icon is a world-icon, some use flags, gears, language abbreviations or a literal globe. These often come unhelpfully paired with the name of the language written in the language the interface is currently set to.
All of these are real-world examples showing how many different styles of language selectors there really are. - The tool one might think solves all of this mess is automatic language detection (based on device settings, browser settings, IP address, location, etc.). This however, is also just another tradeoff. In real life this also often leads to issues that can annoy users – like websites in Hong Kong defaulting to Cantonese because most users there prefer to use it over English. Or just think of countries like Switzerland with 4 or more official languages. While automatic language detection is a great tool to have it has to be applied carefully.
But if all of that is true what's the fix? After all, this series "Fixing Things" is not supposed to be about complaining but about trying to find solutions. How can all of this be solved once and for all? Well, I admit it can't but I have at least come up with a couple of things to avoid which would improve the current mess we see out there in the wild:
- Do not (only) use language to guide to/display your language selector. The reason the user needs to interact with the language selector is because they might not understand the current one!
- Do not use fancy custom icons either because user's might not get what they mean.
- Do not bury the language selector in a menu or footer if you expect a non-negligible amount of users to interact with it.
- Do not force all users to interact with the language selector either (meaning no automatic popup on page load, etc).
- Do not use automatic language detection as the only tool to solve this complex issue without thinking carefully about edge cases and how to deal with them.