Site anglais francais

pinkWisky Messages postés 77 Date d'inscription dimanche 13 juin 2004 Statut Membre Dernière intervention 17 décembre 2010 - 27 juin 2005 à 06:56
pinkWisky Messages postés 77 Date d'inscription dimanche 13 juin 2004 Statut Membre Dernière intervention 17 décembre 2010 - 27 juin 2005 à 09:41
Bonjour a tous,



Ye suis debutant total en PHP. Je n'avais meme jamais lu un code en PHP avant d'avoir refait le site de mon entreprise.



Maintenant, je cherche a faire un code qui permette de faire un site en
anglais et francais. J'ai mis toutes mes pages en francais dans un rep
nomme' "fr" et les pages en englais dans un rep nomme' "en". J'ai deja
un fichier rooter.php qui assemble les differents elements des pages
web, en voici le code :



<?



if ($s "s") {$sub "services";}

elseif ($s "p") {$sub "products";}

elseif ($s "l") {$sub "solutions";}

else {$sub = "home";}



Readfile("header.shtml");

$sub ="/home/htdocs/web3/html/pages/fr/sub/$sub.txt";

$page ="/home/htdocs/web3/html/pages/fr/$page.txt";



Readfile($sub);

Readfile($page);

Readfile("footer.shtml");



?>



Alors voila, je pense que ce ne doit pas etre complique' mais pour
eviter de faire de la merde, j'aimerai avoir l'avis d'experts sur la
meilleure facon de faire un site dynamique en 2 langues



PW

6 réponses

pinkWisky Messages postés 77 Date d'inscription dimanche 13 juin 2004 Statut Membre Dernière intervention 17 décembre 2010
27 juin 2005 à 07:08
voila ce que mon instinct me dit de faire...



<?



if ($s "s") {$sub "services";}

elseif ($s "p") {$sub "products";}

elseif ($s "l") {$sub "solutions";}

else {$sub = "home";}



Readfile("header.shtml");



if ($speak == "fr") {

$sub ="/home/htdocs/web3/html/pages/fr/sub/$sub.txt";

$page ="/home/htdocs/web3/html/pages/fr/$page.txt";

}



else {

$sub ="/home/htdocs/web3/html/pages/en/sub/$sub.txt";

$page ="/home/htdocs/web3/html/pages/en/$page.txt";

}



Readfile($sub);

Readfile($page);

Readfile("footer.shtml");



?>



suis je sur la bonne voie ???
0
pinkWisky Messages postés 77 Date d'inscription dimanche 13 juin 2004 Statut Membre Dernière intervention 17 décembre 2010
27 juin 2005 à 08:26
voila ou j'en suis maintenant,



j'ai rajoute des $speak sur tous les liens du site et voici le rooter.php :



<?



if ($s "s") {$sub "services";}

elseif ($s "p") {$sub "products";}

elseif ($s "l") {$sub "solutions";}

else {$sub = "home";}



if ($speak == "fr") {

$sub ="/home/htdocs/web3/html/pages/fr/sub/$sub.txt";

$page ="/home/htdocs/web3/html/pages/fr/$page.txt";

Readfile("header.shtml");

}



elseif ($speak == "en") {

$sub ="/home/htdocs/web3/html/pages/en/sub/$sub.txt";

$page ="/home/htdocs/web3/html/pages/en/$page.txt";

Readfile("header_en.shtml");

}





Readfile($sub);

Readfile($page);

Readfile("footer.shtml");



?>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2005 à 08:37
Hello,



il y a pas mal de facons de faire ca.

Deja, utiliser les sessions seraient sans doute plus simple (les
sessions passeront automatiquement la langue entre les differentes
pages).

Certains, pour de petites traductions, utiliseront des constantes, dans un fichier de definition des mots.

Maintenant il n'y a pas de maniere parfaite, tout depend de tes reels besoins.

Disons que pour moi, utiliser 2 pages dont seule la langue differe est
un gachis d'espace. Il vaudrait mieux inserer les textes, plutot que
tout le site en double.
0
pinkWisky Messages postés 77 Date d'inscription dimanche 13 juin 2004 Statut Membre Dernière intervention 17 décembre 2010
27 juin 2005 à 08:48
Je ne sais pas encore ce que representent les sessions en php, mais
peut etre pourrais tu m'aiguiller ; ?! Et comment cela inserer les
textes ???



http://www.southtec.net/



C'est vrai que pour l'instant, c'est un peu naz vu que qd on clique sur
le drapeau, la page courrante n'apparait pas directement (comme je le
souhaiterai) mais est reinititialisee sur les pages d'accueil.



merci,

PW
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2005 à 09:06
Bah ca, ce serait facile a changer meme avec ton systeme :-)



Quand on clique sur le drapeau, tu recuperes la page courante, et tu envoies vers le meme lien mais sur le site fr ?



Bon, pour le reste...



Sessions :

http://de3.php.net/session



Grosso modo, ce sont des cookies cote serveur. Cela permet generalement
de gerer des identifications, mais cela peut-etre utilise simplement
pour transbahuter toutes sortes de donnees...et cela fonctionne comme
un tableau (apres initialisation).

Une fois une sessions initialisee (facilement, lol : session_start() en
debut de page), tu peux y stocker ce que tu veux sous cette forme :

$_SESSION['lg'] = 'fr';

par exemple...



Sur tes pages il suffit de verifier quelle valeur a $_SESSION['lg'] pour savoir quelle langue a ete choisie.



Pour inclure ton texte, il n'y a pas 36 solutions : tu dois separer le contenu de la forme...

Bref, tout ce qui est graphique, mise en page etc...est sur ta page,
les textes seront inclus a partir de ce que tu veux : un fichier de
definition contenant des constantes, une bdd, un fichier xml, un
fichier texte...ce que tu veux.



Exemple simple, simple pour que tu comprennes, mais pas optimise du
tout...je vais utiliser 2 fichiers dans ce cas (ce qui n'est pas utile
en fait mais bon...c plus simple) :

- fichier de definition francais, appele _fr.php :

define ('MULTIMEDIA', '
À SOUTHTEC, nous développons des applications multimédia à jouer sur
les bornes interactives, les systèmes d'information a écran large et
autres plateformes.');



- fichier de definition anglais, appele _en.php :

define ('MULTIMEDIA', 'Especially for kiosk terminals and multimedia wall systems SOUTHTEC develops
multimedia applications.');



- adresse http://www.southtec.net/doc/router.php?s=s&page=multimedia :



<?php

if (!isset ($_SESSION['lg'] ))

$_SESSION['lg'] = 'fr';



require_once ('_'.$_SESSION['lg'].'php');

?>





<?php echo MULTIMEDIA; ?>





Evidemment, le test se fera une seule fois, sur une autre page, deja incluse a toutes les autres, plutot.





C'est juste un example, pas terrible terrible lol, il faut optimiser et
bien reflechir, mais ca peut te donner une idee des alternatives
possibles.
0
pinkWisky Messages postés 77 Date d'inscription dimanche 13 juin 2004 Statut Membre Dernière intervention 17 décembre 2010
27 juin 2005 à 09:41
ok malamal

ca n'a pas l'air tres complique et a la fois, ca va m'etre tres utile... alors je me mets au boulot ;)

je te remercie mille fois de tes explications claires et detaillees.

PW
0
Rejoignez-nous