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 information about selecting language preferences on this
W3C page.

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
code 'en').

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.

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".