[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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
>    existed.
> 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
	certain server.

	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
	subdir <lang>.

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

tv-nospam-sig-1@hq.yok.utu.fi - 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
debian-devel-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .

Reply to: