Re: content negotiation for language in web pages
On Thu, Jan 29, 1998 at 12:57:56AM -0500, James A.Treacy wrote:
> 2. Put all the pages together, but append the language to each file,
> e.g. about.html.en, about.html.de, etc. Each page references
> just the base page name (about.html) and we rely on content negotiation
> to let the server decide which language should be served.
> This works great as long as the server supports content negotiation.
> Mirrors that don't support content negotiation would be stuck serving
> in one language (the pages would be set up to default to English).
> It has the benefit of supporting partial translations. If a
> page doesn't exist in your preferred language, your choices would be
> tested in order (the final default would be English).
> Unfortunately, we have a policy of not putting any requirements on the
> mirrors. That creates a big strike against this option.
I'll explain a way to get around this at the end of this message.
> Also, if a browser doesn't know about content negotiation or the user
> hasn't configured it to use their preferred language (and the default
> is usually English), the user will get English docs.
Umm.. there's a slight change for annoyment here. If the
user has set his language preferences to have only French,
and none of the pages he browses are in French, he will be
asked to choose a language *for each page he visits*.
The server default language is used only if the browser has
told it accepts that language. (Yes, I know this is a bit weird;)
I just set my browsers only language to be Byelorussian, and
visited my server which has English, Finnish and Swedish. Try it.
> 3. Similar to 2, but each language references the pages in its language,
> e.g. index.html.de would reference vendors.html.de . At the main
> page the user would get a language (either by content negotiation
> or by explicitly choosing the language by using one of the cross-links)
> and all links followed after that would be in that language.
> Someone jumping into a different page would have no idea other languages
> Bad points: once you choose a language, you are stuck with it unless you
> go back to the main page (or are clever and type in a language extension).
> Partial translations aren't dealt with well. A German with good French
> (does such a person exist? ;) and poor English isn't served well by this
> model with a partial German translation.
More bad points: If a German sends the French his bookmarks,
the French gets the page in German. I think URLs should not
contain the language used, if avoidable.
> Personally, I see number 3 as the way to go. Of course, other opinions/
> additional ideas are welcome.
How about this: Use 2 (content negotiation all the way),
have pseudo-servers www.<lang>.debian.org, put all the
AddLanguages inside the virtualhosts, and don't tell the
www.<lang>.debian.org vhost about any other language than
<lang>. That way one can force a certain language by using a
For mirrors you could create a mirror.wanderer.org that has a
directory for every language (<Directory>s with AddLanguages?
redirects? proxying? no extra space needed..), and non-negotiable
mirrors (no pun intended;) could mirror this. It would be like
option #1 for mirrors. Or have them mirror www.<lang>.debian.org to
There is one point open: how to let negotiating mirrors mirror
*all* the languages.. Ftp?
Also, with www.<lang>.debian.org, there might be slight annoyances
with missing translations -- but with clever use of mod_rewrite or
ErrorDocument you could make it fetch the English page..
firstname.lastname@example.org - it's a valid address w/o spam | +358-50-5124907
f u cn rd ths, thn u cn rd perl 2 | rm -rf / && echo bye-bye. | --tv
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
Trouble? e-mail to email@example.com .