5568 sujets

Sémantique web et HTML

Bonsoir,
Je fais un site en version français et allemand
J'aimerais que lorsque qu'un utilisateur ouvre mon site, ce soit la page dans la langue de son navigateur ou/ et de son OS qui s'ouvre.
Est-ce que cela est possible ?
Si oui, comment faire ?
Merci de votre réponse.
Bonsoir,

C'est possible en analysant le contenu de l'en-tête HTTP accept-language.

Attention cependant de toujours proposer des liens pour changer de langue, un utilisateur peut utiliser un navigateur mal paramétré pour lui.
Modifié par Eldebaran (07 Dec 2006 - 23:42)
Merci,
mais est-ce que ce serait possible de m'expliquer comment on code tout cela.
C'est la 1ère fois que je fais un site qui ne soit pas exclusivement français...
(pour les liens permettant de changer de langue, c'est OK, je les mettrai)
Encore merci ...
Bonsoir,

Pour être plus précis il y a la variable $_SERVER["HTTP_USER_AGENT"]
Elle contient les langages favoris du visiteur.
On peut utiliser un split sur cette variable et ainsi récupérer la langue préférée qui se trouve en première position.
Bonjour,
Voici un code déniché je ne sais plus ou et qui semble fonctionner au moins avec IE.
En le collant dans le header, le script analyse la langue du navigateur et redirige sur la page adéquate.
<script language="JavaScript" type="text/javascript">
<!--
var type=navigator.appName
if (type=="Netscape")
var lang = navigator.language
else
var lang = navigator.userLanguage
var lang = lang.substr(0,2)
// Anglais
if (lang == "en")
window.location.replace('/Anglais/') //redirige sur votre page en anglais
// russe
else if (lang == "ru")
window.location.replace('/Russe/') //redirige sur votre page en allemand
// chinois
else if (lang == "zh")
window.location.replace('/Chinois/') //redirige sur votre en espagnol
// Si aucun de ceux ci-dessus --->redirige sur page index en francais
else
// Le code est placé sur l'index en FR donc pas de redirection finale
</script>

Mais comme le souligne Eldobaran,
a écrit :
Attention cependant de toujours proposer des liens pour changer de langue, un utilisateur peut utiliser un navigateur mal paramétré pour lui.

Notamment ici un utilisateur ayant désactivé Javascript je pense.
Donnez moi votre avis sur ce code si vous voulez bien.
Bonne journée
Salut gaelgerard,

Tout d'abord, mon pseudo est Eldebaran. Smiley langue

Et puis pour être franc, je ne sais pas où tu as trouvé ce code, mais il fait peur à voir. Smiley cligne

Pour le besoin exprimé dans ce sujet, un traitement côté serveur est bien plus adapté qu'un traitement côté client.
Salut!
Qu'en est-il pour un site qui ne soit pas en PHP et qui est hébergé sur un site qui ne supporte pas ce format?

Description de mes besoins :
Lorsque le visiteur arrive sur le site en tapant, par exemple, http://www.monsite.com (sans spécifier la page), une page invisible le redirigerait tout de suite vers la page d'accueil de sa langue.
Si c'est sa première visite, la redirection pourrait se faire selon la langue de son navigateur par un Javascript du genre :
		if (navigator.browserLanguage) {
			var language = navigator.browserLanguage; 
		} else {
			var language = navigator.language;
		}
		var locationIndex = "";
		if (language.indexOf('fr') > -1) {
			locationIndex = 'index-fr.htm';
		}else if (language.indexOf('en') > -1) {
			locationIndex = 'english/index.htm';
		} else {
                // Ici la page par défaut si la langue n'est pas dans la liste 
			locationIndex = 'index-fr.jsp';
					}

Étant donné, que sur chaque page du site, le visiteur a le loisir de passer d'une langue à une autre (english), je voudrais faire en sorte qu'à sa prochaine visite, il soit dirigé automatiquement vers la page d'accueil de la même langue que celle de la page consultée à sa dernière visite.

J'espère que c'est clair Smiley confus . J'ai fait nombre de tentatives avec des cookies mais sans succès.

Je répète que ça ne doit pas être en PHP.

Un peu d'aide ou une piste serait grandement appréciée.
Ce script testera la langue de l'interface du navigateur, pas la préférence de langue de contenu de l'utilisateur.

Par ailleurs, les redirections côté clients sont à éviter pour des raisons d'accessibilité.

En l'absence de négociation de contenu côté serveur, il est préférable de ne pas improviser côté client Smiley cligne
Laurent Denis a écrit :
En l'absence de négociation de contenu côté serveur, il est préférable de ne pas improviser côté client Smiley cligne

Et donc :
- soit c'est un site statique, et on choisit une langue par défaut et on propose sur chaque page le lien vers la page équivalente dans l'autre langue ;
- soit on change d'hébergement. Smiley cligne
Merci pour vos avis et conseils.

Je persiste toutefois à croire que la chose est possible.
Je veux y croire...
je n'avais pu le détail du thread, uniquement le message avec le script auquel j'ai réagi sur le moment. Pour apprendre comment faire de la négociation de contenu, voir chez les gens dont c'est précisément le métier Smiley cligne

<edit>ce sont d'ailleurs de remarquables pédagogues, qui ont toujours besoins de traducteurs. N'hésitez pas: c'est très simple de devenir traducteur pour cette branche du W3C, si l'on est compétent en traduction; je vois par exemple que FAQ: Apache MultiViews language negotiation set up n'est toujours pas traduit en français Smiley cligne </>
Modifié par Laurent Denis (19 Jun 2007 - 20:28)