Site multi-langue en php

francdrum Messages postés 853 Date d'inscription   Statut Membre Dernière intervention   -  
francdrum Messages postés 853 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je viens de commencer un site comportant plusieurs langues, avec le tuto trouvé ici
http://www.phpdebutant.org/article107.php
Tout fonctionne bien quand je choisi la langue "à la main" dans la barre d'adresse => index.php?lang=XX

Maintenant, le problème est que je ne sais pas trop comment faire les liens pour naviguer dans le site (le cookie normalement va se souvenir de la langue). Mais comment écrire ça dans <a href=...etc .... ?

Désolé, je ne suis pas vraiment clair, mais la chose n'est pas claire du tout pour moi :-((

Merci d'avance
A voir également:

8 réponses

UnPassantQuiPasse Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   11
 
bonjour,

on pourrait utiliser plusieurs méthode, dont les sessions, bien pratique, mais la simple édition/correction des liens semble ici plus adéquate :P

avec ce bout de code php

if( isset( $_GET['lang'] ) )
{
  if( $_GET['lang'] = "fr" OR $_GET['lang'] = "de" OR $_GET['lang'] = ".....
  {
    $langue = $_GET['lang'];
  }
  else
  {
    $langue = "fr";
  }
}
  else
{
  $langue = "fr";
}


on vérifie si la fameuse variable lang existe dans l'url et possède une valeur correct (les possibles langues du site : fr, de, en, ou 1, 2, 3, ou french, german, english, ou etc...)
si la valeur est bonne, la variable $langue prend la valeur de la variable "lang" de l'url (si dans l'url on a lang=XX, la variable $langue vaut "XX")
sinon $langue prend par defaut la valeur "fr" (cas où on aurai un plaisantin qui s'amuse à modifier l'url et exploiter des bugs, ou si il y a une faute de frappe quelque part par exemple)

après il faut modifier chaque liens de chaque page, en ajoutant " ?lang=<?php echo $langue ?> " aux liens écris dans des balises HTML

exemple:

<a href="index.php">lien</a>
devient
<a href="index.php?lang=<?php echo $langue ?>">lien</a>


si le lien est dans du code php...

<?php

echo "<a href=\"index.php\">lien</a>";
devient
echo "<a href=\"index.php?lang=".$langue."\">lien</a>";

?>
0
francdrum Messages postés 853 Date d'inscription   Statut Membre Dernière intervention   48
 
Cool ;-)
Mille merci
Au 1er coup d'oeil, ça a l'air d'être exactement ce que je cherchais

Petit détail : Ce site en fait va être sous forme de cadres php, du genre "..../index.php?page=page&lang=br" par ex
Donc le code que tu viens de me donner, il faut que je le mette dans la page index ? (celle qui appelle les pages proprement dites)

Dans mon index, j'ai mis ça :
<?php
if($_GET['page'] == 'index')
include('accueil.php');
else
include($_GET['page'].'.php');
?>

Comme tu peux remarquer, le code et moi, c'est toute une histoire .... lol
Merci
0
UnPassantQuiPasse Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   11
 
oui, tu dois mettre le code que j'ai fait sur la page index

donc ton url sera "index.php?page=la_page&lang=XX"

et si tu en a d'autre à ajouté, c'est l'esperluette ( & ) qu'il faudra encore utilisé


petite question : il se passe quoi si l'url est index.php?page=hgvfdygvsdf ?
0
francdrum Messages postés 853 Date d'inscription   Statut Membre Dernière intervention   48
 
Oui oui pour le "&"
Je m'en sers sur d'autres sites, avec des pages imbriquées dans des "imbrications" de cadres php .... LOL

Donc, en gros, ça doit pouvoir marcher

Euh ben pour ta question, rien bien sûr, mais je sens le gag que mon petit niveau en programmation ne peut pô comprendre ;-)))
Encore merci
0

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

Posez votre question
francdrum Messages postés 853 Date d'inscription   Statut Membre Dernière intervention   48
 
Ooops ...
En fait, petit problème :-(
Ca me donne tout simplement une page blanche

G complété la fin de la 2éme ligne
if( $_GET['lang'] = "fr" OR $_GET['lang'] = "de" OR $_GET['lang'] = ".....
en
if( $_GET['lang'] = "fr" OR $_GET['lang'] = "de" OR $_GET['lang'] = "en";

Pour dire à quel point je suis pas bon, j'ai hésité pour le ";"

Help me please ... :-)
0
UnPassantQuiPasse Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   11
 
raté, c'était presque ça :)
à la place du ; c'est une )
et j'avais fais une grosse faute de mon côté, ce ne sont pas des = pour vérifier dans le If, mais des ==

ça donne donc ça

if( $_GET['lang'] == "fr" OR $_GET['lang'] == "de" OR $_GET['lang'] == "en" )
0
fabien
 
aller voir la les programer
http://www.commentcamarche.net/forum/affich 10576457 scrip c besain aide modif

il c pas mal demerder d'ailleur mais il a un souci moi je uis pas prog alors peut pas aider
0
UnPassantQuiPasse Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   11
 
bonsoir djo,

pourquoi changer de pseudo en cours de route si c'est en utilisant les mêmes expressions et tournures de phrases ? :) si tu veux cacher ton identité fais ça bien :p

désolé pour toi, le C++ c'est pas mon truc
0
francdrum Messages postés 853 Date d'inscription   Statut Membre Dernière intervention   48
 
Ooops ;-)
Le lien ne fonctionne pô ....
@+++
0