8795 sujets

Développement web côté serveur, CMS

Pages :
Salut à vous,

J'ai un site Internet que je voudrais rendre multilingue. Je souhaiterais que les pages suivantes soient accessibles :
- http://www.xxxxxxxxx.com (si cookie contenant la langue alors on affiche dans cette langue, sinon on affiche dans la langue par défaut)
- http://www.xxxxxxxxx.com/en/index.php (affiche en anglais)
- http://www.xxxxxxxxx.com/zh/index.php (affiche en chinois)
- http://www.xxxxxxxxx.com/fr/index.php (affiche en français)

Avant d'entamer mon développement, est-ce que cette façon de faire est correcte ?

Merci pour vos commentaires.
Je ne pensais pas que ma question resterait sans réponse... et ça m'embête car je ne sais pas trop quelle est la bonne pratique à suivre !!!! Smiley decu
Perso je testerais la langue préférée de l'agent utilisateur dans les entêtes http et si pas dispo envoyer sur une langue par défaut (anglais?). Pour la première connexion. Après on lit le cookie du choix effectif de l'utilisateur.

P.S. : Travailler avec des sites multilingues
Modifié par Patidou (25 Jun 2012 - 12:00)
Modérateur
Bonjour, il existe pas mal de paramètres qui peuvent permettre de définir la langue, il s'agit de les prioriser / organiser. Voici un exemple classique de priorisation:

1) URL: la langue est dans l'url (fr.monsite.com/page / www.monsite.com/fr/page etc. )
- Si pas trouvé:
2) La langue existe dans une variable de session, redirection vers le bon url.
- Si pas trouvé:
3) Langue par défaut de l'utilisateur connecté
- Si pas trouvé:
4) Paramètres de langue du navigateur
- Si pas trouvé:
5) Langue par défaut

Ensuite à toi de définir lesquels tu souhaites utiliser, et avec quelle priorité. (L'URL en premier, c'est une bonne pratique à la fois pour les visiteurs, les liens et google)
Patidou> Je te cite "(...) Après on lit le cookie du choix effectif de l'utilisateur." et je suis d'accord avec toi. Mais dans le lien que tu me fournis, il est dit ceci : "N'employez pas de cookies pour afficher les versions traduites." Là, par contre, je ne comprends pas cette remarque...

Kustolovic> Merci pour les cas de figure mais pourquoi ne prends-tu pas en compte le cookie ?
Modérateur
Alphonse a écrit :
Kustolovic> Merci pour les cas de figure mais pourquoi ne prends-tu pas en compte le cookie ?

Ben si, c'est la variable de session, qui fonctionne avec un cookie, mais est un peu améliorée…
Je doute qu'il soit réellement intéressant d'utiliser une variable de session dans ce cas-ci. Par défaut, j'essaye d'ailleurs de ne plus les utiliser dans mes développements Web.

Autre question : êtes-vous d'accord avec le fait que la page http://www.xxxxxxxxx.com/index.php soit également accessible ? Et si oui, qu'elle puisse être affichée en anglais ou en français ou en chinois ? Et si non, que dois-je de cette page ?
Modérateur
Ok, c'était un exemple de sélection, après ça dépend des cas et des goûts.

a écrit :
Autre question : êtes-vous d'accord avec le fait que la page http://www.xxxxxxxxx.com/index.php soit également accessible ? Et si oui, qu'elle puisse être affichée en anglais ou en français ou en chinois ? Et si non, que dois-je de cette page ?

Elle peut aussi être affichée. dans la langue par défaut par exemple. Après il ne faut pas oublier les URL canoniques et les metadata de langue pour ne pas perdre l'ami google
Pas de problème au niveau des meta pour la langue affichée.
Par contre, je n'avais absolument pas pensé au Duplicate-Content et les URL canoniques... Smiley decu

Peux-tu me dire si ceci te semble correcte ?

Sur ma page http://www.xxxxxxxxx.com/index.php qui serait par exemple affichée en chinois, je devrais préciser l'URL canonique par la ligne suivante dans la section <head> ?
<link rel="canonical" href="http://www.xxxxxxxxx.com/zh/index.php">

Si ma page http://www.xxxxxxxxx.com/index.php est affichée en anglais alors je mettrais ceci ?
<link rel="canonical" href="http://www.xxxxxxxxx.com/en/index.php">

De cette manière, Google ne considère pas que j'ai du Duplicate-Content car à chaque fois, je spécifie une URL canonique. C'est bien ça ?

Merci d'avance.
Non tu dois conserver un sous-dossier par langue, à la racine du site tu peux mettre une page statique avec les différentes langues (exemple) ou un système de redirection. Sur chaque pages du site, on doit pouvoir changer de langue.
Modifié par Patidou (25 Jun 2012 - 14:15)
L'url canonique doit être égale à l'url de base dans le navigateur moins les éventuels paramètres ajouté par d'autres sites (tweeter, google, etc). Si tu vas voir sur mon site j'utilise l'url canonique. Smiley cligne

Pour la redirection, je dirais 301 mais je n'en suis pas vraiment sûr.
Oui bien sûr. L'url canonique sert uniquement au référencement.

Pour la page d'accueil chinoise, l'url canonique sera :

http://www.xxxxxxxxx.com/zh/index.php 


Sur, par exemple, la page d'un article en chinois :

http://www.xxxxxxxxx.com/zh/index.php?articleid=35
[quote=PatidouPour la page d'accueil chinoise, l'url canonique sera :
http://www.xxxxxxxxx.com/zh/index.php 



En sachant que ma page d'accueil est http://www.xxxxxxxxx.com/index.php et dont le contenu sera affiché en chinois (à cause du cookie ou de l'en-tête http accept-language).

Pour une autre personne, cette même page d'accueil (http://www.xxxxxxxxx.com/index.php) peut être affichée en anglais ou en français...

Du coup, l'URL canonique sera chaque fois adapté pour au final ressembler à ça :
http://www.xxxxxxxxx.com/[b]CodeLangue[/b]/index.php

Désolé si je me répète mais je veux être certain d'être bien compris.
Modifié par Alphonse (25 Jun 2012 - 16:20)
Mmmh, donc :

http://www.xxxxxxxxx.com/index.php


Afficherait la page dans la langue souhaitée?

À mon avis ce n'est pas la bonne méthode (même et surtout en changeant l'url canonique), les urls doivent être diférenciées par langue. Donc (pour moi) :

http://www.xxxxxxxxx.com/index.php


…Servirait juste de centre d'aiguillage pour la redirection.
Modifié par Patidou (25 Jun 2012 - 16:39)
Alphonse a écrit :
Donc, pour bien faire, toute personne accédant aux URL suivantes :
- http://www.xxxxxxxxx.com
- http://www.xxxxxxxxx.com/index.php
devraient automatiquement être redirigées vers :
- http://www.xxxxxxxxx.com/CodeLangue/index.php
C'est bien ça ?


Oui. Maintenant si c'est les sous-dossiers qui te gêne, tu peux utiliser des sous-domaines, comme wikipedia.

Alphonse a écrit :
Sans URL Rewriting, il sera donc bel et bien impossible d'avoir uniquement les URL suivantes affichées dans le navigateur (à cause de la redirection) ?
- http://www.xxxxxxxxx.com
- http://www.xxxxxxxxx.com/index.php


Ou alors tu définis la langue par défaut à la racine du site et les autres dans les sous-dossiers ou sous-domaines (exemple).

P.S. : URL rewriting, c'est plutôt pour réécrire les urls, comme supprimer index.php par exemple.
Modifié par Patidou (25 Jun 2012 - 17:38)
Modérateur
Patidou a écrit :
Oui bien sûr. L'url canonique sert uniquement au référencement.

Pour la page d'accueil chinoise, l'url canonique sera :

http://www.xxxxxxxxx.com/zh/index.php 


Sur, par exemple, la page d'un article en chinois :

http://www.xxxxxxxxx.com/zh/index.php?articleid=35

N'importe quoi,

bien qu'introduite par google, elle ne devrait à terme plus servir qu'au référencement. C'est même assez pratique et logique:

Google a écrit :
A canonical page is the preferred version of a set of pages with highly similar content.

Autrement dit des pages identiques ou très proches (générées ainsi pour diverses raisons) auront une url canonique unique.
Notamment
http://www.xxxxxxxxx.com/zh/index.php?articleid=35

et (url rewriting)
http://www.xxxxxxxxx.com/zh/articleid/35

et (url rewriting & envoi d'un variable qui crée un petit changement dans une sidebar)
http://www.xxxxxxxxx.com/zh/articleid/35/menujoli


auront comme url canonique : http://www.xxxxxxxxx.com/zh/articleid/35

Rediriger vers la langue est une bonne pratique. Mais je disais juste qu'il était possible d'avoir une «copie» du site sans langue dans l'url avec les liens canoniques, mais c'est plutôt pour de la continuité pour un site qu'on internationalise après coup. Comme quoi cela dépend du contexte…
OK donc pour la redirection dans un premier temps. Je regarderai pour les sous-domaines par la suite.

Autre question : sachant que mes pages index.php se trouve dans un sous-dossier langue (en ou fr ou zh). Je dois systématiquement remonter d'un niveau pour récupérer mes fichiers CSS, JS, mes favicon, mes images, ... à l'aide de ceci "../". Si j'essaye d'utiliser directement la racine "./", il semblerait que ça ne fonctionne pas sur ce serveur (structure des dossiers faisant...).

C'est-à-dire qu'au niveau du code source, l'appel à mes fichiers se présentent de cette manière :
<link rel="shortcut icon" href="../favicon.ico">
<link rel="stylesheet" href="../css/full_20120607.css" type="text/css">
<script src="../js/init.js"></script>
<img src="../images/welcome.png" width="60" height="62" alt="">


Ca ne me semble pas pro du tout ! Dites moi ce que vous en pensez. Et peut-être avez-vous une astuce à me proposer ?
Pages :