Site Multilangue avec PHP et clic sur drapeau

Fermé
vlar Messages postés 2289 Date d'inscription vendredi 17 août 2007 Statut Membre Dernière intervention 29 novembre 2013 - 4 févr. 2011 à 18:21
 vaurien - 21 févr. 2012 à 12:41
Bonjour,

Je tente de développer un site multilangue avec des variables placés dans des fichiers textes. Jusque là j'ai compris le principe ...

Je bloque par contre sur mon fichier select-lang.php en sachant que ce que je veux c'est que le visiteur clique sur un drapeau pour changer de langue.

Mon fichier actuel est comme ceci :

<?php
if ($_GET['lang']=='fr') { // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
include('lang/fr-lang.php');
}
else if ($_GET['lang']=='en') { // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
include('lang/en-lang.php');
}
else { // si aucune langue n'est déclarée on inclut le fichier fr-lang.php par défaut
include('lang/fr-lang.php');
}
?>

Quel forme de lien je dois mettre pour que la page se recharge dans une langue différente ?




A voir également:

4 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
5 févr. 2011 à 13:36
Salut.

Tu peux utiliser les sessions pour stocker le choix.
À la fin de tous tes liens, il faudra afficher la variable.

Ton fichier select-lang.php pourrait ressembler à ça :
<?php
session_start();

$languages = array('fr','en');
$default_language = 'fr';

if(isset($_GET['lang']) && in_array()) {
    $_SESSION['lang'] = $_GET['lang'];
} else {
    $_SESSION['lang'] = $default_language;
}

header('Location: /index.php'); ?>


Et tes liens :
<a href="cible.php?lang=<?php echo $_SESSION['lang']; ?>">Cible</a>
(n'oublie pas le session_start() )
3
vlar Messages postés 2289 Date d'inscription vendredi 17 août 2007 Statut Membre Dernière intervention 29 novembre 2013 620
5 févr. 2011 à 17:57
Merci beaucoup également, cela se rapproche fortement de ce que je veux faire ...

Mais la seule question réside sur le fait que ce soit les drapeaux qui fixent la variable ?

En fait cela revient à comment proposer le choix via des liens et l'enregistrer dans la session ?
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
5 févr. 2011 à 20:07
Il suffit de faire un lien sur chaque drapeau vers /select-lang.php?lang=fr_ou_en
0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
4 févr. 2011 à 20:30
Salut vlar,
Tu veux un truc comme mon site perso ? http://abarka.free.fr/ (trilingue mais la version basque n'est pas encore traduite.).
Si tu clique sur un drapeau et ce où que l'on trouve dans le site, on a la version concernée.
Si tu veux la structure, je t'envoie les fichiers pour exemple.
PS: c'est très complexe.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
vlar Messages postés 2289 Date d'inscription vendredi 17 août 2007 Statut Membre Dernière intervention 29 novembre 2013 620
5 févr. 2011 à 01:01
Salut Txiki,

Alors je ne sais pas ce que tu utilises pour la traduction, fichier XML ou fichier TXT mais effectivement ce qui m'interresse c'est ceci

http://abarka.free.fr/index.php?page=Accueil&lang=Es

Le fait que tu puisse mettre la lang=ES dans l'url ... J'imagine que cela se déclare ds le fichier select-lang.php ...

Je serais ravi que tu puisses m'envoyer tes fichiers pour exemple si cela ne te dérange pas trop,

Voici mon adresse mail :

spammedbox87[at]yahoo.fr
0
En complement, le post sur http://www.codeursolitaire.com/php/comment-creer-un-site-multilingue-en-php/ est assez bien explique
0