site multilingue: comment faire?

Eléphant du PHP | 319 Messages

07 avr. 2010, 15:48

hello!

j'ai une idee de site qui necessiterait une traduction multilingue du site.
je ne sais pas trop par quel bout prendre ce projet... (j'ai le layout du site, les fonctionnalites sur le papier etcetc) mais qd je google "website multilingual" je tombe sur des vieux articles (2003, 2005, 2006...) sur gettext.

quelqu'un aurait des pistes a me donner sur comment faire un site multilingue sans se casser trop la tete? (il faudrait aussi que je change les images en fonction de la langue car certaines d'entre elles contiendront du text)

sur joomla il y a un plugin top pour ca: joomfish. mais que faire qd on demarre son site de 0?

merci!
niveau: pas terrible en php mais je me soigne...

ViPHP
AB
ViPHP | 5818 Messages

07 avr. 2010, 15:56

Tu as beaucoup de méthodes : utiliser un tableau, une bdd, ou encore gettext (pas le plus simple à mettre en oeuvre)

Exemple avec un tableau de traduction et une variable $_GET qui transmet la langue dans l'URL
$traduct['bonjour']['en'] = "Hello";
$traduct['bonjour']['fr'] = "Bonjour";

$lang_traduites = array('en','fr');
$lang = isset($_GET['lang']) && in_array($_GET['lang'],$lang_traduites)? $_GET['lang'] : 'fr';

echo $traduct['bonjour'][$lang];

Mammouth du PHP | 672 Messages

07 avr. 2010, 15:58

Bonjour.

Ca dépend...

- Quel type de site ?
- Nombre de pages, de visites ?
- Intéractivité (possibilité de laisser des commentaires) ?
- Nombre de langues ?
- Connaissances "web" (html, css, php, js, etc.) ?
- Méthode de stockage des articles ?
- Codage complet, utilisation d'un framework/CMS ?

Sinon, le principe d'un site multilingue reste le même qu'en 2003. Du coup, les bases que tu peux trouver sur ces "vieux" articles devraient fonctionner encore aujourd'hui...

Invité
Invité n'ayant pas de compte PHPfrance

07 avr. 2010, 16:59

bonjour et merci a vous 2 pour votre reponse

il s'agit d'un site grand public ou j'espere avoir pas mal de traffic mais ou je ne pense pas laisser ouvert aux commentaires.

niveau connaissance je dirais entre debutant et moyen dans tout. j'ai deja qq sites a mon actif.
Pas de CMS car ca risque d'etre complique de faire coexister certains modules avec un Joomla par exmeple (sans compter la maintenance qui risque de devenir cahotique a terme)
je pensais a 3 ou 4 langues (Anglais, francais et 2 langues asiatiques)

- stocker le contenu dans une base de donnees (comme un article Joomla) ou en fichier texte
- je pense avoir une utilisation accrue de Jquery avec ce projet.

par contre je ne vois pas comment je peux changer une images ou est ecrit "Welcome" par une autre marquee "Bienvenue" par exemple.

ViPHP
AB
ViPHP | 5818 Messages

07 avr. 2010, 17:15

Tu n'a qu'a nommer tes images différemment suivant les langues
bonjour_fr.jpg
bonjour_en.jpg
img src = "bonjour_<?php echo htmlspecialchars(lang?)?>.jpg"

ViPHP
AB
ViPHP | 5818 Messages

07 avr. 2010, 17:28

Sinon en reprenant l'exemple du tableau montré plus haut tu peux faire aussi un tableau qui reprend l'adresse des images

$img['bonjour']['en'] = "image_en_anglais.jpg";
$img['bonjour']['fr'] = "image_en_francais.jpg";
img src = "<?php  echo $img['bonjour'][$lang]?>"

Invité
Invité n'ayant pas de compte PHPfrance

08 avr. 2010, 12:03

merci pour vos reponses! cela ne semble pas trop difficile a mettre en oeuvre. par contre il faut le penser au tout debut correctement sinon ca deviendrait vite l'enfer a maintenir je pense!

ViPHP
AB
ViPHP | 5818 Messages

08 avr. 2010, 15:58

merci pour vos reponses! cela ne semble pas trop difficile a mettre en oeuvre. par contre il faut le penser au tout debut correctement sinon ca deviendrait vite l'enfer a maintenir je pense!
Tout à fait :wink: Il faut prendre suffisamment de temps au départ pour choisir la méthode la plus adéquate en fonction du site et ensuite s'y tenir. Car si on mélange les méthodes en allant au plus simple en fonction du contexte de telle ou telle page, cela devient vite difficile à maintenir :)

Flower
Invité n'ayant pas de compte PHPfrance

01 févr. 2011, 12:30

Bonjour à tous,

Je me permets de remonter ce sujet car j'ai les mêmes questions que "choubix".
C'est à dire que, je souhaite également réaliser un site multilingue (français, anglais et russe) dans le cadre d'un projet universitaire, qui stockera toutes les données dans une base puisque tout doit être traduit (le menu, les paragraphes, les titres, les légendes, les balises "alt" et "title" des images, bref, tout...).
Je devrais ensuite utiliser ces bases pour réaliser un back office, et le tout à la main. Sans CMS. DU PHP et SQL donc...
Mais je ne sais pas de quoi partir.
J'ai farfouillé un peu partout, il semblerait que la méthode la plus utilisée pour garder la langue choisie au fil des pages soit les sessions. OK.
Mais au tout début, au point zéro lol, qu'est-ce que je dois commencer à faire ?
Par exemple, si je commence à tout stocker dans une base de données, mettons la rubrique "Accueil" tiens. Disons que c'est la plus facile et qu'elle ne fait que proposer un message de bienvenue.
Au niveau de la BD, je fais comment vous pensez ? Je crée une table "Accueil" avec les champs par exemple euh : id, contenu, langue. Et je mets le texte dans ses 3 versions dans cette table ?
C'est la première fois que je réalise ce genre de site alors je panique un peu sur l'étape de démarrage, le reste suivra je pense.
Si vous pouvez m'orienter sur la façon de démarrer ça, ce serait koul ;p

Merci d'avance.

Flo'

Petit nouveau ! | 1 Messages

14 mars 2011, 17:01

Salut les gens

Pour Flo tu as du avancer depuis :p

Pour moi sur un site multilingue, j'utilise des includes de fichiers de langue pour la partie statique (liens et navigation), et une base donnée pour le reste, articles, photos avec légende

Un je récupère la langue du visiteur

Deux je lui donne le choix de changer la langue , là ou je sèche c'est sur le passage à d'autres pages du site, en créant une session au début ma langue n'est pas définie à l'arrivée, ensuite je dois soit stocker en session le résultat (langue navigateur) et si ça ne conviens pas la langue choisie par le visiteur.

Ma question je crée une session avec une variable vide, puis-je la stocker après dans le programme et la récupérer dans les différents liens de navigation

A bientôt

ViPHP
AB
ViPHP | 5818 Messages

14 mars 2011, 19:21

Si tu as des drapeaux pour symboliser la langue tu peux leur passer une variable nommée par exemple lang
<a href="<?php echo 'mapage.php?lang=fr'?>"><img src="drapeau_fr.jpg" ...></a>
et tu récupère $_GET['lang'] que tu passe dans ta variable de session.