A multilingual site in html?

I

Ikke

Hi everybody,

I'd like to set up a new site, which has to be multilingual (english, and
my native language). However, the entire site will be written in html.

Now I'd like to ask whether or not this is possible - I know it's possible
to translate all the pages and use index-en.html and index-nl.html etc, or
even use subdirectories, but I'm still faced with some problems.

First, there is only one index.html - which language should I use here?
Logic dictates that english is more popular than dutch, yet most of my
visitors will be dutch.

Second, is there a way to remember the language a user selected? I'm
thinking cookies here - is it possible to use cookies without using
JavaScript? And reading them? If I'm using JavaScript, I'll be limiting my
audience a little, I'm afraid...

Any ideas, thoughts, suggestions on this subject are very very welcome!

Thanks,

Ikke
 
A

Adrienne Boswell

Hi everybody,

I'd like to set up a new site, which has to be multilingual (english,
and my native language). However, the entire site will be written in
html.

Now I'd like to ask whether or not this is possible - I know it's
possible to translate all the pages and use index-en.html and
index-nl.html etc, or even use subdirectories, but I'm still faced
with some problems.

First, there is only one index.html - which language should I use
here? Logic dictates that english is more popular than dutch, yet most
of my visitors will be dutch.

Second, is there a way to remember the language a user selected? I'm
thinking cookies here - is it possible to use cookies without using
JavaScript? And reading them? If I'm using JavaScript, I'll be
limiting my audience a little, I'm afraid...

Any ideas, thoughts, suggestions on this subject are very very
welcome!

Thanks,

Ikke

You could put a small paragraph or two in each language which briefly
explains what your site is. Offer links such as <a
href="en/somepage.html">Some Page in English</a> and <a
href="nl/somepage.html">Some Page in Dutch</a>.

You could also make use of a querystring and use the querystring
throughout the site, eg. somepage.php?lang=en. Then on somepage.php test
for the language value and serve the appropriate text.
 
D

dorayme

Adrienne Boswell said:
You could put a small paragraph or two in each language which briefly
explains what your site is. Offer links such as <a
href="en/somepage.html">Some Page in English</a> and <a
href="nl/somepage.html">Some Page in Dutch</a>.

You could also make use of a querystring and use the querystring
throughout the site, eg. somepage.php?lang=en. Then on somepage.php test
for the language value and serve the appropriate text.

You could also try to find someone who should be an expert in all
this by now, one Italian, at present living in Sweden, called
Luigi. He has the benefit of every kind of advice on all this.

https://www.scaiecat-spa-gigi.com/index.php

He at least might let you know some of the hurdles you face.
 
J

Jukka K. Korpela

Scripsit Ikke:
I'd like to set up a new site, which has to be multilingual (english,
and my native language).

That's bilingual rather than multilingual.
Now I'd like to ask whether or not this is possible - I know it's
possible to translate all the pages and use index-en.html and
index-nl.html etc, or even use subdirectories, but I'm still faced
with some problems.

It's probably best to use subdirectories, for easier management.
First, there is only one index.html - which language should I use
here?

In theory, you could make it appear in the language of the user's choice.
See
http://www.cs.tut.fi/~jkorpela/multi/
But I don't really believe much in "language negotiation" any more. It's too
probable that many of your Dutch-speaking visitors are using an English
version of a browser, probably left at the factory defaults for language
preferences, and this typically means that English (or, worse still,
specifically US English) is declared (by the browser in HTTP headers) as the
only language that the user understands at all.
Logic dictates that english is more popular than dutch, yet
most of my visitors will be dutch.

You could make it Dutch, with a prominent link like
<div lang="en">This site in English: <a href="index-en.html">...</a></div>
(where "..." is the name of the site in English) near the start of the
document. Naturally you would have a similar reciprocal link in the Dutch
version.

Moreover, put similar links to the other language version on every page. The
reason is that when someone stumbles across a subpage of yours, via Google
or via a link, the availability of the page in another language might be
crucial information.
Second, is there a way to remember the language a user selected? I'm
thinking cookies here - is it possible to use cookies without using
JavaScript? And reading them? If I'm using JavaScript, I'll be
limiting my audience a little, I'm afraid...

Cookie settings don't require JavaScript, but why would you use cookies?

You would simply have each page link to other pages in the same language
(except for the link to the version of the page itself in the other
language), so users will automatically stay within one language version,
unless they decide to move to the other.

P.S. Please don't do as I've done - a bilingual _page_ is generally not a
good idea, even if a bilingual _site_ might be. I'm just too lazy to change
things now.
 
T

Toby A Inkster

Ikke said:
I'd like to set up a new site, which has to be multilingual (english, and
my native language). However, the entire site will be written in html.

I'd recommend switching to using some kind of server-side scripting rather
than HTML. PHP would be one example. This would allow you to build in
logic and redirection into your site, making the experience a bit more
smooth.

My recommended logic for a multi-lingual site:

if ("?lang=XX" found in page URL)
{
Set a cookie "lang"="XX";
Set L to "XX";
}
elseif ("lang" cookie found)
{
Set L to value of "lang" cookie;
}
elseif (HTTP Referer is a page on your site and includes "?lang=XX")
{
Set L to "XX";
}
elseif ("Accept-Language" HTTP header found)
{
Set L to value of Accept-Language header;
}
elseif (you have GeoIP installed)
{
Determine geographic location of visitor from IP address;
If it's a Dutch-speaking country, set L to "nl";
If it's a English-speaking country, set L to "en";
Otherwise, set L to some default language;
}
else
{
Set L to some default language;
}
Offer links to "thispage?lang=en", "thispage?lang=nl", etc;
Output page in language L;

That way, visitors can choose their preferred language, but they will
normally shown an appropriate language by default.

--
Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact
Geek of ~ HTML/SQL/Perl/PHP/Python*/Apache/Linux

* = I'm getting there!
 
J

Jukka K. Korpela

Scripsit Toby A Inkster:
Bilingual is a special case of multilingual.

Not really; "bi-" means "two", "multi-" means many. "Two" is not really a
special case of "many", except by a technical definition. If you know just
two languages, you don't know many languages.

In web authoring, two languages are essentially simpler to manage than many
languages, though this is mostly a practical issue. There's also a
difference between "several" and "many", though we haven't got separate
terms - "multilingual" covers both. For, say, five languages, you can still
have links to versions in the other languages on each page. With ten
languages, it becomes less convenient, and with fifty languages, it would be
awkward - on many simple pages, the menu of different language versions
could eat up most of the page visually. (So maybe then one might consider a
dropdown menu for it - something that people all too easily start using with
just a few choices, even on bilingual sites!)
 
G

Greg N.

Toby said:
I'd recommend switching to using some kind of server-side scripting rather
than HTML. PHP would be one example.

One characteristic of this solution is that a page might be served in
one of two language versions - but with the same URL.

What's the implication of this in terms of search engines?

Chances are that the, say, Google crawler, always sees (and hence,
indexes) the same language version. Your site could end up existing (in
terms of Google) only in Dutch, but not in English.

Or what if the crawler, for some reason, sometimes gets to see the NL,
sometimes the EN version? He gets the impression of an extremely
volatile site, which might be counter productive to building up a good
rank in the long run.

My speculations, I admit.
 
T

Toby A Inkster

Jukka said:
Scripsit Toby A Inkster:


Not really; "bi-" means "two", "multi-" means many.

"Multi-" means "multiple", as opposed to individual.

It comes from the Latin "multus" which is often translated as "many",
simply because there's not really any more elegant way to translate it
into English. But multus is meant more in the sense of "more than one"
than the normal English connotations of "many", for which the Romans had
words such as "plus"/"pluris" and "plurimus" which would pseudo-translate
as "many-er" and "many-est" in English. The Romans had different shades of
the word "many" to play with, and "multus" is the weakest shade of it, so
could certainly apply to two.

The Greek equivalent of "multi-" is "poly-". The term "polyunsaturated" is
applied to fatty acids which contain *two* or more double-carbon bonds.
"Two" is not really a special case of "many", except by a technical
definition.

You're right -- "two" is not really a special case of "many" except by a
technical definition. However, "two" is a special case of "multiple".

Same with "three". Three isn't "many", but it's certainly "multiple".

"Two" is more *specific* than "multiple", but no more accurate.
If you know just two languages

Then you know one and a half more than the average American? ;-)
In web authoring, two languages are essentially simpler to manage than
many languages, though this is mostly a practical issue.

In some cultures, the counting system consists of "none", "one", "two",
"many". I'd argue, and I'm sure most other programmers would agree, that
for most programming and database design purposes, people should use an
even simpler counting system: "none", "one", "many".

In database design, if you want to be able to store, say, up to two
telephone numbers for a particular contact, you ought to design your
database to be able to handle an unlimited number of telephone numbers
for each contact.

Similarly, when designing a website that covers more than one language,
you ought to code to be able to handle as many languages as the translators
can throw at you. So designing a bilingual site is simply a special case
of designing a multilingual site.
For, say, five languages, you can still have links to versions in the
other languages on each page. With ten languages, it becomes less
convenient, and with fifty languages, it would be awkward - on many
simple pages, the menu of different language versions could eat up most
of the page visually. (So maybe then one might consider a dropdown menu
for it - something that people all too easily start using with just a
few choices, even on bilingual sites!)

Agreed, the method of presenting a choice of languages may need to vary
depending on the number of options (as indeed, the method of presenting a
choice of *anything* might).

But the actual method used in filing the translated text and detecting the
user's chosen language ought to be the same. You never know when you're
going to want to add more languages.

--
Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact
Geek of ~ HTML/SQL/Perl/PHP/Python*/Apache/Linux

* = I'm getting there!
 
B

Ben C

"Multi-" means "multiple", as opposed to individual.

It comes from the Latin "multus" which is often translated as "many",
simply because there's not really any more elegant way to translate it
into English. But multus is meant more in the sense of "more than one"
than the normal English connotations of "many", for which the Romans had
words such as "plus"/"pluris" and "plurimus" which would pseudo-translate
as "many-er" and "many-est" in English. The Romans had different shades of
the word "many" to play with, and "multus" is the weakest shade of it, so
could certainly apply to two.

The Greek equivalent of "multi-" is "poly-". The term "polyunsaturated" is
applied to fatty acids which contain *two* or more double-carbon bonds.

But someone who speaks two languages is bilingual but not a polyglot;
and someone who knows two things is certainly not a polymath.

Sucrose is a polysaccharide (with only two saccharides in it). y = x^2 +
x is a polynomial with only two terms, and polyunsaturated fats only
require two unsaturations.

My pronouncement is therefore that to describe a website with two
languages as multilingual is OK, because it's a technical context.
 
T

Toby A Inkster

Greg said:
One characteristic of this solution is that a page might be served in
one of two language versions - but with the same URL.
What's the implication of this in terms of search engines?

As described in my previous post, each page would have effectively three
URLs. Taking as an example, "sitemap.php", you'd have:

http://example.com/sitemap.php?lang=en (English)
http://example.com/sitemap.php?lang=nl (Dutch)
http://example.com/sitemap.php (auto-detect)

Each page would have an explicit link to the other language version, so
they would both be picked up by search engines.

The only slight drawback from a search perspective would be that the URLs
themselves would only be in one particular language. So the URL for the
English "Help" page might be:

http://example.com/hulpbetoon.php?lang=en

Search engines do assign a certain significance to keywords present in the
URL, you'd need to decide whether that would be a major concern to you.

--
Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact
Geek of ~ HTML/SQL/Perl/PHP/Python*/Apache/Linux

* = I'm getting there!
 
?

=?windows-1252?Q?G=E9rard_Talbot?=

Ikke wrote :
Hi everybody,

I'd like to set up a new site, which has to be multilingual (english, and
my native language). However, the entire site will be written in html.

Now I'd like to ask whether or not this is possible - I know it's possible
to translate all the pages and use index-en.html and index-nl.html etc, or
even use subdirectories, but I'm still faced with some problems.

First, there is only one index.html - which language should I use here?
Logic dictates that english is more popular than dutch, yet most of my
visitors will be dutch.

Then choose dutch as the language to use for your index.html page. On
it, add a "English" or "English translation" link, clearly visible,
easily scannable, spottable, which will link to the English webpage,
index-en.html webpage. Something like:

<a hreflang="en" lang="en" href="index-en.html">English translation</a>

Also, use <link> to indicate alternate content in other language.

<link rel="alternate" type="text/html" lang="en" hreflang="en"
title="[Website title in English]">

"Alternate
Designates substitute versions for the document in which the link
occurs. When used together with the hreflang attribute, it implies a
translated version of the document."
http://www.w3.org/TR/xhtml-modularization/abstraction.html#s_common_attrtypes

HTML 4.01, section 12.3.3
http://www.w3.org/TR/html4/struct/links.html#h-12.3.3
"12.3.3 Links and search engines

Authors may use the LINK element to provide a variety of information to
search engines, including:

* Links to alternate versions of a document, written in another
human language."


W3C Quality Assurance tips for webmasters:
Use <link>s in your document
http://www.w3.org/QA/Tips/use-links

An example out of my practise:
http://www.gtalbot.org/NvuSection/GuideUtilisateurNvu/GuideNvuSection1.html
provides <link>s to Japanese and English translations.

""
Second, is there a way to remember the language a user selected? I'm
thinking cookies here - is it possible to use cookies without using
JavaScript? And reading them? If I'm using JavaScript, I'll be limiting my
audience a little, I'm afraid...

Use proper/best meta-tags (for searchability, best indexation by search
engines) and inter-link each of your translated webpages into the
correspondent/equivalent language.

Your best mean, tool and asset is good quality content in your webpages,
frequently updated, leading people to bookmark your site. Cookies is not
your #1 mean, tool. Do not worry too much on proper programming of
language-chosen-by-cookie issues: worry about content, adequate, good
usability of your site, accessibility of your webpage.
Any ideas, thoughts, suggestions on this subject are very very welcome!

Thanks,

Ikke

Some possible resources for you in dutch:

MozBrowser nl-be, Voor en door Mozilla gebruikers
http://www.mozbrowser.nl/

MozBrowser nl-be, Voor en door Mozilla gebruikers
http://www.mozbrowser.nl/forum/

Since you are going to develop a website, allow me to invite you to
consult this webpage, translated in your native language:
http://www.mozilla.org/projects/tech-evangelism/site/tech-letter-nl.html

and if you are a fan of mine, then visit
Bug 274256 – Site Evangelism letter needs to be revised
https://bugzilla.mozilla.org/show_bug.cgi?id=274256

or

Bug 360302 – Update Tech Evangelism email template letters
https://bugzilla.mozilla.org/show_bug.cgi?id=360302

as we may be needing your dutch translation capabilities one day :)

Gérard
 
J

Jukka K. Korpela

Scripsit Gérard Talbot:
Then choose dutch as the language to use for your index.html page.

It's not clear at all that this would be the best choice. If 51 % of users
speak English and no Dutch whereas 49 % speak Dutch as their native language
and can read English rather fluently, which choice will cause more trouble?
On it, add a "English" or "English translation" link, clearly visible,
easily scannable, spottable, which will link to the English webpage,
index-en.html webpage.

But not with such a link text.
Something like:

<a hreflang="en" lang="en" href="index-en.html">English
translation</a>

If that's the only text in English on a page otherwise in Dutch, what would
a casual visitor get from it? Well, probably you get some idea of Dutch
words if you know English, but consider a more striking example: a page
entirely in Chinese but with the link "English translation". People who know
no Chinese would have absolutely no idea of what the site is about, except
if they guess from the images or the URL (and we often guess very wrong).
Also, use <link> to indicate alternate content in other language.

<link rel="alternate" type="text/html" lang="en" hreflang="en"
title="[Website title in English]">

Fine, though of fairly limited practical usefulness due to lack of support
on IE and poor support on other browsers.

You would put the web site title in English into the normally invisible
attribute of a normally invisible element. It should be put into the visible
content of the document. You might add an explanation like "English version"
in one or more languages if you like, but the semantically meaningful link
name is the important thing.
Use proper/best meta-tags (for searchability, best indexation by
search engines)

Meta tags (with name="keywords" or name="content") have been ignored or
treated as comparable to normal text only by major search engines for years.
They are almost useless, sometimes worse (e.g., if you use Dutch keywords on
a page that is actually in English, thereby misleading people and taking the
risk of getting punished for keyword spamming).

You should formulate the _textual content_ properly. This includes using one
language on one page, and using it consistently. The principle of linking to
the other language versions by their page titles in the respective language
actually violates this consistency, but that's unavoidable and normally not
very serious. A few words in an another language won't confuse searches too
much.
 
I

Ikke

You could put a small paragraph or two in each language which briefly
explains what your site is. Offer links such as <a
href="en/somepage.html">Some Page in English</a> and <a
href="nl/somepage.html">Some Page in Dutch</a>.

After reading all the replies, I think that this might be the best
solution. As someone else already pointed out, subdirectories are
probably the best way to tackle the separation of the languages.

As far as the index page is concerned, I'm still undecided. Either way,
it should be clear to any user that:
a) the site is multilingual
b) there is a very easy way to switch languages (via link, or a language
flag or whatever)
You could also make use of a querystring and use the querystring
throughout the site, eg. somepage.php?lang=en. Then on somepage.php
test for the language value and serve the appropriate text.

That's why I asked if it could be done using plain html. I don't know
PHP, but I know JSP and ASP and am currently learning PHP.

But I was still in doubt whether or not HTML itself offered a solution,
other than letting the user decide or resorting to a piece of JavaScript.

Thanks for the help,

Ikke
 
I

Ikke

Scripsit Ikke:


That's bilingual rather than multilingual.

Yes and no. Yes, the site is bilingual as I defined it. No, because the
site can grow and could become multilingual.

In other words, any solution limited to bilingual sites would be
considered invalid.

Anyway, it's a nitpick :)
It's probably best to use subdirectories, for easier management.

I've had a look around on the net, and it seems that the easiest and best
solution would indeed be subdirectories. This would also keep structure
and updates simpler in the long run I guess...
In theory, you could make it appear in the language of the user's
choice. See
http://www.cs.tut.fi/~jkorpela/multi/
But I don't really believe much in "language negotiation" any more.
It's too probable that many of your Dutch-speaking visitors are using
an English version of a browser, probably left at the factory defaults
for language preferences, and this typically means that English (or,
worse still, specifically US English) is declared (by the browser in
HTTP headers) as the only language that the user understands at all.

Thanks for pointing this out - however, it was not my intention to let
the browser decide the language.

The reason I spoke of cookies, was sites like eBay and such. At first,
they present you a page to let you choose a language. Later on, this page
is bypassed and you are redirected to the language of your choice.

For user who log on, this is easily accomplished by checking their
settings. Public users are a different case, therefor I thought of
cookies.

But never mind all that, read on please...
You could make it Dutch, with a prominent link like
<div lang="en">This site in English: <a
href="index-en.html">...</a></div> (where "..." is the name of the
site in English) near the start of the document. Naturally you would
have a similar reciprocal link in the Dutch version.

And here we have the winner - after reading all the replies, I think that
this might indeed be the best solution. Let the users know there are
different versions of the site, and give them an easy way to read the
site in their native/favourite language.
Moreover, put similar links to the other language version on every
page. The reason is that when someone stumbles across a subpage of
yours, via Google or via a link, the availability of the page in
another language might be crucial information.

I hadden't thought of this in terms of Google. As a matter of fact, I
remember a project a few years ago where they had trouble convincing
Google there were several languages, because the language was passed as a
parameter to the pages. Google tends to skip these from time to time, and
so Google only saw the English version of their website.
Cookie settings don't require JavaScript, but why would you use
cookies?

At first I thought it would be the best way to remember the settings for
a public user, but...
You would simply have each page link to other pages in the same
language (except for the link to the version of the page itself in the
other language), so users will automatically stay within one language
version, unless they decide to move to the other.

....this is probably way better.
P.S. Please don't do as I've done - a bilingual _page_ is generally
not a good idea, even if a bilingual _site_ might be. I'm just too
lazy to change things now.

I don't know why a bilingual site would be a bad idea - for a lot of
sites in my country, it is not even and option NOT to be bilingual (since
our country is basically bilingual).

Thanks,

Ikke
 
I

Ikke

I'd recommend switching to using some kind of server-side scripting
rather than HTML. PHP would be one example. This would allow you to
build in logic and redirection into your site, making the experience a
bit more smooth.

I know that PHP/JSP/ASP is probably a better way to go, but I just wanted
to know if it was possible to do this in pure html.

Also, it takes me a lot less time to create the html pages than to create a
dynamic site ;)

Ikke
 
I

Ikke

As described in my previous post, each page would have effectively
three URLs. Taking as an example, "sitemap.php", you'd have:

http://example.com/sitemap.php?lang=en (English)
http://example.com/sitemap.php?lang=nl (Dutch)
http://example.com/sitemap.php (auto-detect)

Each page would have an explicit link to the other language version,
so they would both be picked up by search engines.

Actually, I'm not so sure about that. As I've posted in another reply, I've
worked on a project years ago where this was a big problem.

Google did not see the other languages (other than the default), because it
ignored the parameters being passed to the pages.

I'm not sure what the solution was, though... Sorry.

Ikke
 
I

Ikke

Then choose dutch as the language to use for your index.html page. On
it, add a "English" or "English translation" link, clearly visible,
easily scannable, spottable, which will link to the English webpage,
index-en.html webpage. Something like:

<a hreflang="en" lang="en" href="index-en.html">English
translation</a>

Also, use <link> to indicate alternate content in other language.

Aha - thanks, I did not know about the <link> tag! Nor did I know of the
lack of support for it by most browsers (thanks Jukka).

Your best mean, tool and asset is good quality content in your
webpages, frequently updated, leading people to bookmark your site.
Cookies is not your #1 mean, tool. Do not worry too much on proper
programming of language-chosen-by-cookie issues: worry about content,
adequate, good usability of your site, accessibility of your webpage.

Good advice - content is of course the number one reason people should
visit the site.

Some possible resources for you in dutch:

MozBrowser nl-be, Voor en door Mozilla gebruikers
http://www.mozbrowser.nl/

MozBrowser nl-be, Voor en door Mozilla gebruikers
http://www.mozbrowser.nl/forum/

Since you are going to develop a website, allow me to invite you to
consult this webpage, translated in your native language:
http://www.mozilla.org/projects/tech-evangelism/site/tech-letter-nl.htm
l

and if you are a fan of mine, then visit
Bug 274256 – Site Evangelism letter needs to be revised
https://bugzilla.mozilla.org/show_bug.cgi?id=274256

or

Bug 360302 – Update Tech Evangelism email template letters
https://bugzilla.mozilla.org/show_bug.cgi?id=360302

as we may be needing your dutch translation capabilities one day :)

Gérard

Thanks Gérard for the advice & links!

Ikke
 
J

John Hosking

Ikke said:
I don't know why a bilingual site would be a bad idea - for a lot of
sites in my country, it is not even and option NOT to be bilingual (since
our country is basically bilingual).

Read it again, Ikke. Jukka didn't say a bilingual *site* would be bad;
he's warning against a bilingual *page*, that is, a page with Dutch on
the left and its English equivalent on the right, for example.
 
A

Adrienne Boswell

That's why I asked if it could be done using plain html. I don't know
PHP, but I know JSP and ASP and am currently learning PHP.

I thought of putting asp, as that is with what I am also more familiar,
but the outcome would still be the same.

Eg page.asp

<% select case request.querystring("lang")
case "nl"%>
<!--#include file = "nl/pagename_inc.asp"-->
<%case else%>
<!--#include file = "en/pagename_inc.asp"-->
<% end select%>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,008
Latest member
Rahul737

Latest Threads

Top