Version complète: sur le forum Webmaster Hub : Site Multilingue
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Scripts et utilitaires
Marie
Bonjour

Je souhaite mettre en place un script javascript qui redirigerait l'internaute en fonction de la langue utilisée par son navigateur.

j'ai ce code là :

CODE
<script LANGUAGE="JavaScript">
<!--
if (top==self)
{
  if (navigator.appName == 'Netscape')
         var language= navigator.language;
  else
         var language= navigator.browserLanguage;

  bl = language.substring(0,2);

     if (bl == "en")
  {
        this.location = "http://www.monsite.com/index-us.html"

  }
  else if (bl == "es")
  {
           this.location = "http://www.monsite.com/index-es.htm"

  }
  else if (bl == "fr")
  {
           this.location = "http://www.monsite.com/index-fr.htm"

  }
 }
//-->
</script>


Mais j'ai beau changer la langue de mon navigateur, je suis TOUJOURS redirigée sur la partie FR du site.

Par contre, quand je vais sur google.com ça indique bien la langue utilisée par mon navigateur..

Quelqu'un a une idée?

Merci
Anonymus
Peut etre n'as tu pas encore développée les autres parties biggrin.gif

Un lien, où tout est expliqué : http://tech.irt.org/articles/js082/

(ps : es tu dirigée vers la page fr, ou vers la page 404 ?)

A+, Nico.
Marie
huh.gif il faut développer une autre partie??
Laquelle r_question6161.gif
le code ci-dessus ne suffit pas??

Moi je suis redirigée toujours sur la partie française et pas sur une 404...
Anonymus
Essaies ceci :

CODE
<script LANGUAGE="JavaScript1.2"><!--
// The following only works in JavaScript 1.2 or greater:
function showpage(code) {
   var Y = (screen.height - 400)/2;
   var X = (screen.width - 600)/2;
   msgWindow = window.open('','targetName2','height=400,width=600,screenX='+X+',screenY='+Y+',left='+X+',top='+Y);
   msgWindow.location.href = 'index-' + code + '.htm';
}

if (navigator.appName == 'Netscape')
   var language = navigator.language;
else
   var language = navigator.browserLanguage;

var code = language.substring(0,2);

if (code == 'us' || code == 'es')
   showpage(code);
else
   showpage('fr');
//--></SCRIPT>


Pour ce qui est de la 404, je dis ca, parce que tu as des index qui se terminent par .html, et d'autres par .htm.

Anonymus
Marie
ah ok!

non en fait pour les pages htm ou html c'est juste que j'ai copié ça à la va vite, sur ma page tout est ok
wink.gif


Je ne comprends pas ton code, pourquoi définir une taille de fenêtre? Et puis où met-on l'adresse des pages sur lesquelles on redirige selon la langue??

Merci!
Anonymus
Tu définis une taille de fenètre si tu veux, ca permet de dire au navigateur que tu veux une fenètre de telle ou telle taille.

Pour ce qui est des adresses des pages, elles se situent là :
msgWindow.location.href = 'index-' + code + '.htm';
Au lieu de lister toutes les pages, tu fais un petit morceau de script, pour dire :
si code= fr, je veux index-fr,
si code=en, je veux index-en,
etc..
Ca donne :
'index-' + code + '.htm';


Anonymus.
Marie
Ben en fait mon premier code marche très bien

J'ai téléchargé netscape en anglais et ça fonctionne à merveille.. le fait de changer la langue dans les préférences ne suffit à priori pas..

fausse alerte donc!

Merci Nico Quand Même!
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.