Site multi-langue en php

Fermé
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 - 18 janv. 2009 à 17:54
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 - 19 janv. 2009 à 19:45
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 samedi 10 janvier 2009 Statut Membre Dernière intervention 30 octobre 2010 11
18 janv. 2009 à 18:12
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 mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
18 janv. 2009 à 18:27
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 samedi 10 janvier 2009 Statut Membre Dernière intervention 30 octobre 2010 11
18 janv. 2009 à 18:49
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 mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
18 janv. 2009 à 19:00
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 mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
18 janv. 2009 à 23:07
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 samedi 10 janvier 2009 Statut Membre Dernière intervention 30 octobre 2010 11
19 janv. 2009 à 01:17
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
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 samedi 10 janvier 2009 Statut Membre Dernière intervention 30 octobre 2010 11
19 janv. 2009 à 01:43
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 mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
19 janv. 2009 à 19:45
Ooops ;-)
Le lien ne fonctionne pô ....
@+++
0