Site en plusieurs langues : URL unique ou sous-domaines ?

Site en plusieurs langues : URL unique ou sous-domaines ? - HTML/CSS - Programmation

Marsh Posté le 28-09-2014 à 20:56:50    

Bonjour,
 
J'ai lancé la semaine dernière un nouveau site, et grande première pour moi il est en plusieurs langues. Alors j'avais lu plein plein de trucs pour que ce soit bien géré, et j'ai un fichier de constantes par langue qui me gère tous les textes du site. Ca se passe très bien.
 
Le seul truc, c'est que j'ai fait un choix qui me semblait judicieux mais sur lequel j'émets maintenant plusieurs doutes. En fait, j'ai choisi de ne pas utilise de sous-domaines ou de paramètres de langues différents dans l'URL, donc une même URL sera affichée dans telle ou telle langue, dépendant uniquement de la valeur langue dans le cookie ou dans la DB si l'utilisateur est enregistré.  
 
Par exemple (no spam hein, c'est juste pour illustrer) http://www.belgiumink.com/studios/anaisbtattoo : le but que j'avais au moment du lancement, c'est que si je l'envoyais à quelqu'un qui ne parle qu'anglais, sa page s'ouvrirait directement en anglais. Idem pour les quelques langues dispos actuellement.  
 
Mais je sens surtout les limites de ce système dans le traitement de mon site par les robots d'indexation ou les trucs de partage Facebook par exemple. Sans grande surprise, tout est en anglais donc si je veux partager un lien, le titre de la page et l'aperçu seront en anglais.  
 
Voilà, j'aimerais avoir l'avis de gens qui sont déjà passés par là, voir ce qui est conseillé dans ce cas : jouer avec des URL fr.belgiumink.com ou nl.belgiumink.com par exemple ?
 
Dans ce cas, comment-faire pour que l'URL soit automatiquement redirigée vers celle de la langue de l'utilisateur pour sa première visite (comme pour Facebook par exemple, on dirait qu'on est redirigé vers sa bonne langue avant même le chargement de la page) ?
 
Merci d'avance ! [:dawa]


---------------
SHOOT ME AGAIN WEBZINE
Reply

Marsh Posté le 28-09-2014 à 20:56:50   

Reply

Marsh Posté le 29-09-2014 à 08:37:18    

Effectivement, t'as du contenu différent accessible à partir d'une même URL, c'est pas conseillé.

 

Pour la redirection côté serveur, ça se fait au travers du header Accept-Language de la requête. C'est une donnée de l'utilisateur, donc pas fiable à 100%. Il est généralement conseillé de laisser une porte de sortie, un choix à l'utilisateur pour venir écraser cette détection automatique, mais là c'est à toi de voir (de ce que je comprend, les mécanismes sont déjà dispos en DB/cookie).

 

Pour le référencement, foo.com/fr vaut mieux que fr.foo.com (à confirmer).


Message édité par LeRiton le 29-09-2014 à 08:37:38
Reply

Marsh Posté le 29-09-2014 à 10:18:50    

Pour la gestion de la langue, j'avais fait un truc du genre :
http://www.monsite.com/mapage.php?lang=fr
 
Du coup, j'ai des urls "différentes". Pour améliorer ça, j'aurais pu même faire de l'url rewriting pour transformer mon url en http://www.monsite.com/fr/mapage.php


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 10-10-2014 à 10:22:28    

Voilà voilà,  
 
Grâce à votre aide j'ai pu régler ça assez simplement. J'ai juste ajouté un paramètre dans l'URL --> http://www.belgiumink.com/fr/tatto [...] ttoorumble avec mention de la langue.
 
Derrière, l'algorithme est assez simple.  
 
D'abord, le script checke si le visiteur est enregistré (le but est que peu importe quel lien il ouvre, peu importe la langue dans l'URL, il apparaisse dans la langue choisie et configurée)
 
************************************************
Si oui -->
 
affichage de la page dans la langue choisie
 
Si non -->  
 
On checke s'il y a bien une langue dans l'URL (parce qu'il y a des vieux liens qui traînent évidemment)
 
.........................................................................
Si oui -->  
 
Affichage de la page dans cette langue  
 
Si non -->  
 
On checke si le browser du visiteur est configuré dans une des langues présentes sur le site
 
++++++++++++++++++++++++++++
Si oui -->
 
On l'affiche dans cette langue
 
Si non -->
 
On l'affiche en anglais
++++++++++++++++++++++++++++
 
.........................................................................
 
************************************************
 
 
Merci de votre aide en tout cas [:dawa]


---------------
SHOOT ME AGAIN WEBZINE
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed