Debian Website in different Languages

Content Negotiation

A team of translators works on the Debian website to convert it for a growing number of different languages. But how does the language switch in the web browser work? A standard called content negotiation allows users to set their preferred language(s) for web content. The version they see is negotiated between the web browser and the web server: the browser sends the preferences to the server, and the server then decides which version to deliver (based on the users' preferences and the available versions).

Not everyone knows about content negotiation, so links at the bottom of every Debian page point to other available versions. Please note that selecting a different language from this list will only affect the current page. It doesn't change the default language of your web browser. If you follow another link to a different page, you will see it in the default language again.

In order to change your default language, you have two options:

Jump straight to the configuration instructions for these web browsers:

[Chrome/Chromium] [ELinks] [Epiphany] [Firefox] [IBrowse] [iCab] [IceCat (Iceweasel)] [Internet Explorer] [Konqueror] [Lynx] [Microsoft Edge] [Opera] [Safari] [W3M] [Vivaldi]

How to set a Web Browser's Language

Before we describe how to configure the language settings in different web browsers, some general remarks. Firstly, it's a good idea to include all languages you speak to your list of preferred languages. For example, if you're a native French speaker, you can choose fr as your first language, followed by English with the language code en.

Secondly, in some browsers you can enter language codes instead of choosing from a menu. If that's the case, keep in mind that creating a list like fr, en doesn't define your preference. Instead, it will define equally ranked options, and the web server can decide to ignore the order and just pick one of the languages. If you want to specify a real preference, you have to work with so-called quality values, i.e. floating point values between 0 and 1. A higher value indicates a higher priority. If we go back to the example with French and English language, you can modify the above example like this:

fr; q=1.0, en; q=0.5

Be careful with Country Codes

A web server which receives a request for a document with the preferred language en-GB, fr does not always serve the English version before the French one. It will only do so if a page with the language extension en-gb exists. It does work the other way around, though: a server can return a en-us page if just en is included in the preferred languages list.

We therefore recommend not to add two-letter country codes like en-GB or en-US, unless you have a very good reason. If you do add one, make sure to include the language code without the extension as well: en-GB, en, fr

Instructions for different Web Browsers

We've compiled a list of popular web browsers and some instructions on how to change the preferred language for web content in their settings:

  • Chrome/Chromium
    At the top right, open the menu and click Settings -> Advanced -> Languages. Open the Language menu to see a list of languages. Click on the three dots next to an entry to change the order. You can also add new languages if necessary.
  • ELinks
    Setting the default language via Setup -> Language will also change the requested language from web sites. You can change this behavior and fine-tune the Accept-Language header at Setup -> Options manager -> Protocols -> HTTP
  • Epiphany
    Open Preferences from the main menu and switch to the Language tab. Here you can add, remove and arrange languages.
  • Firefox
    In the menu bar at the top open Preferences. Scroll down to Language and appearance -> Language in the General panel. Click the button Choose to set your preferred language for displaying websites. In the same dialog you can also add, remove and reorder languages.
  • IBrowse
    Go into Preferences -> Settings -> Network. Accept language probably shows a * which is the default. If you click on the Locale button, you should be able to add your preferred language. If not, you can enter it manually.
  • iCab
    Edit -> Preferences -> Browser -> Fonts, Languages
  • IceCat (Iceweasel)
    Edit -> Preferences -> Content -> Languages -> Choose
  • Internet Explorer
    Click the Tools icon, select Internet options, switch to the General tab, and click the Languages button. Click Set Language Preferences, and in the following dialog you can add, remove and re-order languages.
  • Konqueror
    Edit the file ~/.kde/share/config/kio_httprc and include the following new line:
    Languages=fr;q=1.0, en;q=0.5
  • Lynx
    Edit the file ~/.lynxrc and enter the following line:
    preferred_language=fr; q=1.0, en; q=0.5
    Alternatively, you can open the browser's settings by pressing [O]. Scroll down to Preferred language and add the above.
  • Microsoft Edge
    Settings and more -> Settings -> Languages -> Add languages
    Click the three-dotted button next to a language entry for more options and to change the order.
  • Opera
    Settings -> Browser -> Languages -> Preferred languages
  • Safari
    Safari uses the system-wide settings on macOS and iOS, so in order to define your preferred language, please open System Preferences (macOS) or Settings (iOS).
  • W3M
    Press [O] to open the Option Setting Panel, scroll down to Network Settings -> Accept-Language header. Press [Enter] to change the settings (for example fr; q=1.0, en; q=0.5) and confirm with [Enter]. Scroll all the way down to [OK] to save your settings.
  • Vivaldi
    Go to Settings -> General -> Language -> Accepted Languages, click Add Language and choose one from the menu. Use the arrows to change the order of your preferences.

How to override the Settings

If for whatever reason you're not able to define your preferred language in the browser's settings, device or computing environment, you can override the preferences using a cookie as a last resort. Click one of the buttons below to put a single language on top of the list.

Please note that this will set a cookie. Your browser will automatically delete it if you don't visit this website for a month. Of course, you can always delete the cookie manually in your web browser or by clicking the button Browser default.

Troubleshooting

Sometimes the Debian website appears in the wrong language despite all efforts to set a preferred language. Our first suggestion is to clean out the local cache (both disk and memory) in your browser before trying to reload the website. If you're absolutely sure that you've configured your browser properly, then a broken or a misconfigured cache might be the problem. This is becoming a serious issue these days, as more and more ISPs see caching as a way of decreasing their net traffic. Read the section about proxy servers even if you don't think you're using one.

Display the list of languages your browser says you prefer.

By all means, it's always possible that there is a problem with www.debian.org. While only a handful of language problems reported in the last years were caused by a bug on our end, it is entirely possible. We therefore suggest that you investigate your own settings and a potential caching issue first, before you get in touch with us. If https://www.debian.org/ is working, but one of the mirrors is not, please report this so we can contact the mirror maintainers.

Potential Problems with Proxy Servers

Proxy servers are essentially web servers that have no content of their own. They sit in the middle between users and real web servers, grab the requests for web pages, and fetch the pages. After that, they forward the content to the users' web browsers, but also make a local, cached copy which is used for later requests. This can really cut down on network traffic when many users request the same page.

While this can be a good idea most of the time, it also causes failures when the cache is buggy. In particular, some older proxy servers do not understand content negotiation. This results in them caching a page in one language and serving that, even if a different language is requested later. The only solution is to upgrade or replace the caching software.

Historically, proxy servers were only used when people configured their web browser accordingly. However, this is no longer the case. Your ISP may be redirecting all HTTP requests through a transparent proxy. If the proxy doesn't handle content negotiation properly, then users can receive cached pages in the wrong language. The only way you can fix this is to complain to your ISP in order for them to upgrade or replace their software.