Multi-language web sites

Published by marco on

Why are multi-language web sites so hard to make? Even large companies like Microsoft, Google and Apple regularly send content with mixed-language content.

This is probably due to several factors:

  1. Large web sites pull data for myriad sources, including CDNs and caching services. Each source needs to respect the requested language, If a source doesn’t have support for a requested language, then just that piece of content will be delivered in the fallback format.
  2. Any proxies have to pass the requested language (and other headers) on to the backing server. If the backing server doesn’t get the language request, then it can’t respect the requested language, obviously.
  3. Any proxy that caches content has to respect the language header (as well as any other data-relevant headers) instead of just caching one copy per URL. While this is standard for commercial proxies and CDNs, it might not be the case for bespoke software.
  4. Some services might have a different context (e.g. logged-in user, detected via token in the request), who has different language settings than the requesting browser. This would mean that, while the main page content is pulled from the server with one language (e.g. en-US), the content for an embedded block might be requested as a logged-in user who has a different preferred language (e.g. de-CH). The server will likely honor the preferred language of the user account rather than the language included in the request, assuming it even even gets the language from the original request.
  5. Finally, Some companies[1] are notoriously bad at multi-language software because they generally only acknowledge English and consider supporting other languages as a nice-to-have and that delivering English instead is an acceptable fallback because everyone can read English, right?

The move to cloud-based and highly cached content has increased complexity considerably. Even if a company does everything right in (1), (2), and (3) above, the realities of (4) may still lead to a page that contains content in multiple languages.

That is, each piece of software is functioning as designed but combining the output from those pieces of software leads to content that has multiple languages in it. At that point, you can either throw your hands in the air and give up…or you can start to redesign services to respect that requested language even if the user context’s preferred language is different. This is not a decision you can make lightly and you run the risk of breaking the service’s content in other places. Sometimes there is no right answer.

Since I live in Switzerland, which has 4 official languages, I’ve seen EULAs from Apple written in a combination of French, English, German and even a word or two of Italian.

The example below comes from Microsoft Edge’s Tips page that they show when you start using the browser. Edge thinks that my default language is German despite the fact that my Windows is English. Microsoft tends to use the language of the region you’re in (Switzerland) rather than the display language that you’ve expressly set, but…that’s another discussion.

At any rate, Edge thinks I want German content[2] but Microsoft can’t even reliably deliver German content for this main page, defaulting to English content in several places.

 Microsoft Edge Tips Page


[1] I’m looking at you, US companies.
[2] I quickly checked the settings and could not find out how to change the list of languages I’d like to include in my browser requests. Other browsers do provide a list of accepted languages, but Edge’s settings are quite limited.