Debian web site in different languages
Obviously, not everyone in the world uses the same language. As the web grows it is becoming more common to find pages that are available in multiple languages. A standard was therefore introduced, called content negotiation, that allows a person to set the language(s) they prefer to receive documents in. The actual version delivered is negotiated between your browser and the server; your browser sends its preferences and the server decides which version to send based on your preferences, and what versions of the document are available.
Note that selecting a different language (from the available translations listed at the bottom of a page) will only show the current page in that language. It does not change the default language. If you click a link to a different page, it will be shown in the original language again. To change your default language, you need to change your language preferences in the configuration of your browser, as explained below.
You can also find additional informations about selecting language preferences on this W3C page.
- What to do if a Debian web page is in the wrong language
- How to set up the language settings
- Where to change the settings for the following browsers:
[Chrome and Chromium] [ELinks] [Epiphany] [Firefox] [Galeon] [IBrowse] [iCab] [Iceweasel] [Internet Explorer] [Konqueror] [Lynx] [Mozilla] [Netscape 4.x] [Netscape 3.x] [Opera] [Pocket Internet Explorer] [Safari] [Voyager] [W3] [W3M]
The first and most common reason why a document is received in the wrong language from the Debian web server is an improperly configured browser. Please see the section on how to set the preferred language on how to fix this.
The second reason is a broken or a misconfigured cache. This is a growing problem as more ISPs see caching as a way of decreasing net traffic. Read the note on caching web servers even if you don't think you are using one.
The third reason is that there is a problem with www.debian.org. Only a handful of problems with receiving the wrong language reported in the last several years were due to a bug at our end. We thus suggest that you investigate the first two sources of problems thoroughly before contacting us. If you find that https://www.debian.org/ is working, but one of the mirrors is not, report that to us and we will contact the mirror maintainers.
After fixing any of these problems, we suggest that you clean out the local cache (both disk and memory) in your browser before trying to view pages again. We also suggest you use lynx when testing. It is the only browser we have found to comply 100% with the HTTP specifications for content negotiation.
Proxy servers are essentially web servers that have no content of their own. They sit in the middle between users and real web servers. They grab your requests for web pages and fetch the page. After that, they forward the page to you but also make a local, cached copy, for later requests. This can really cut down on network traffic when many users request the same page.
This is a great idea most of the time, but it fails 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, people only used a proxy when they configured their browser to use one. 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.
You should set the preferred language to all the languages you speak, ordered by your preference. It is a good idea to add English ('en') as a backup (last in the list) because the original language of the Debian web pages is English and not all documents may be translated into your preferred language(s).
For example, if you are a native French speaker, you would want to set
your language variable to include first the French language (with the
language code '
fr'), followed by English (with the language
See below for exact instructions on how to do this in specific browsers.
As you can see there, most browsers will present you with some kind of user interface that will hide some of the details about defining your preferred language. If this isn't the case, please note one important simplification in the previous paragraph: if you're just specifying a list of languages like 'fr, en' this doesn't yet define a preference, but equally ranked options and the server may decide to ignore their ordering. If you want to specify real preference you have to use "quality values" which are floating point values between 0 and 1 where higher values indicate higher preference. So in the case above you would probably use something like 'fr; q=1.0, en; q=0.5'.
One thing you need to be careful of is using sub-categories of languages. Using 'en-GB, fr', for example, does not do what most people expect (if they have not read the HTTP specification).
We strongly recommend that you do not add country extensions to a language unless you have good reason. If you do add one, make sure you also include the language without the extension.
Explanation: A server that receives a request for a document with a preferred language of 'en-GB, fr' will not serve the English ('en') version before the French version. It will only serve the English document before the French one if there is a version of the file with 'en-gb' for the language extension.
Thus, you should configure your browser to send 'en-GB, en, fr' or simply 'en, fr'. It does work the other way though, e.g. a server can return 'en-us' when 'en' is requested.
For more information about setting the preferred language variable see the Apache documentation on content negotiation.
To set the default language in your browser you have to set a variable that gets passed to the web server. How this is done depends on the browser you are using.
- Chrome and Chromium
Customize and control Chromium -> Settings -> Show advanced settings -> Languages -> Language and input settings
- You can set up the default interface language at:
Setup -> LanguageThis will also change the requested language from web sites. You can change this behaviour and fine-tune the accepted languages HTTP variable at:
Setup -> Options manager -> Protocols -> HTTP
Edit -> Preferences -> Language -> Languages
Version 3.0 and newer:
Edit -> Preferences -> Content -> Languages -> Choose...Windows:
Tools -> Options -> Content -> Languages -> Choose...Mac OS:
Firefox -> Preferences -> Content -> Languages -> Choose...
Version 1.5 and newer:
Edit -> Preferences -> Advanced -> General -> Edit LanguagesWindows:
Tools -> Options -> Advanced -> General -> Edit Languages
Version 0.9 and newer:
Edit -> Preferences -> General -> LanguagesWindows:
Tools -> Options -> General -> LanguagesIn older versions you have to go to about:config and change the value of intl.accept_languages.
Settings -> Preferences -> Rendering -> Languages
- Go into Preferences, then Settings, then Network. Under "Accept language" it will probably show a "*" by default. If you click on the "Locale" button, it should add your preferred language. If not, you can enter it manually. After that, click "OK".
Edit -> Preferences -> Browser -> Fonts, Languages
Edit -> Preferences -> Content -> Languages -> Choose
- Internet Explorer
Tools or View or Extras -> Internet Options -> (General) Languages
- Mac OS:
Edit -> Preferences -> Web Browser -> Language/Fonts
~/.kde/share/config/kio_httprc file to include a line like the
- You can either edit the preferred_language variable in your
.lynxrc or set it using the 'O' command while in lynx.
For example, use the following line in your .lynxrc:
preferred_language=fr; q=1.0, en; q=0.5
- Mozilla / Netscape 4.x and later versions
Edit -> Preferences -> Navigator -> LanguagesNote: with Netscape 4.x you need to make sure you select the language from the available choices. A number of people reported problems because they typed in the language by hand.
- Netscape 3.x
*httpAcceptLanguage: [preferred_language string]to the Netscape app-defaults file or ~/.Xresources
- Most versions:
File -> Preferences -> Languages
- Linux/*BSD versions 5.x and 6.x:
File -> Preferences -> Document -> Languages
- Nokia 770 Web Browser:
Edit the file /home/user/.opera/opera.ini and add the following
line in the section [Adv User Prefs]:
HTTP Accept Language=fr;q=1.0,en;q=0.5
- Pocket Internet Explorer
Create the string registry key
AcceptLanguagein HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\ with value
fr; q=1.0, en; q=0.5(without quotes).
- Safari uses the Mac OS X system preferences, to determine your
System preferences -> International -> Language
- Go to Settings, then Languages. You can either enter it manually or click on "Get from locale". Click "OK" when done.
- W3 (emacs based web browser)
(setq url-mime-language-string "preferred_language=fr; q=1.0, en; q=0.5")or using the custom package (assuming URL version p4.0pre.14):
Hypermedia -> URL -> Mime -> Mime Language String...
Options (o) -> Other Behavior -> Accept-Language
If you have information on configuring a browser that isn't listed above, please send it to email@example.com.