IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] Faire un site bilingue en PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Points : 11
    Points
    11
    Par défaut [Cookies] Faire un site bilingue en PHP
    Salut! :p Je poste ce petit sujet d'aide car j'aimerai faire un petit site perso bilingue, je souhaiterai qu'avec un simple clic sur un lien, on passe du langage French au langage English, je sais déja qu'il faut utiliser les cookies pour ça, mais niveau utilisation de cookies, je suis pas top .

    Je voudrais aussi savoir comment faire pour remplacer le texte français par un texte anglais s'il est séléctionné sans pour autant créer plusieurs pages french et english (index-fr.php, index-en.php...), vous voyez a peu près mon problème?

    J'éspère obtenir de l'aide car j'en ai bien besoin^^

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Salut,

    Les cookies ne t'aideront pas sauf à conserver le choix de l'utilisateur entre plusieurs visites.

    Pour gerer , la navigation sur le site et la conservation du choix, il te faudra transmettre le choix de la langue de page en page. Soit via un paramètres supplémentaire ou alors en utilisant les sessions. La deuxième solution étant bien évidemment la plus approprié.

    Pour les textes, ce que je fais génarelement ( et que j'ai vu ailleurs aussi ) c'est e creer toutes tes zones de textes sous forme de variable php. Ces variables seront définis dans un fichier include. Un par langue
    Au début de chaque fichier tu inclus le fichier de langue en fonction du choix de l'utilisateur.

    En esperant avoir répondu à tes attentes
    Pierre
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Oui, je sais bien pour les cookies (en fait, je me suis mal exprimé là dessus )

    Sinon, j'ai pas tellement compris la manière pour utiliser les variables pour le choix de la langue en include, c'est un peu flou, tu pourrais un peu plus developper ça? Voir même me donner un exemple de code histoire de voir ce que cela donne si ça te gène pas.

    Merci en tout cas pour ta réponse

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    salut ! ici un très bon tuto !

    http://www.aidejavascript.com/article117.html
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Merci pour le site mais malheureusement, c'est pour un site avec des mots courts tels que les formulaires, moi c'est tout le site que je veux traduire

  6. #6
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Je reprends :

    Tu recherches tous les textes de ton site et tu les remplaces par des variables php

    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $MsgBienvenue;
    Ensuite, tu crées les fichiers de langage
    lang_fr.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $MsgBienvenue = 'Bienvenue';
    et ainsi de suite pour les autres langues ( lang_en.php, etc....)

    Maintenant, il faut que dans chaque page tu inclus le fichier correspondant à la langue choisit par l'utilisateur

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if ($lang == 'fr' ) require_once 'lang_fr.php';
    else require_once 'lan_en.php';
    Pour le choix de la langue, j'utilise généralement des sessions. L'utilisateur choisit sa langue en cliquant sur le petit drapeau et va sur la page index.php?LANG=fr

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    session_start();
    if (isset($_REQUEST['LANG']) ) {
    $_SESSION['lang'] = $_REQUEST['LANG'];
    }
    $lang = $_SESSION['lang'];
    Edit : Merci à Orb Dorb pour la correction
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par Linon
    Merci pour le site mais malheureusement, c'est pour un site avec des mots courts tels que les formulaires, moi c'est tout le site que je veux traduire
    tu n'a pas de fonction qui traduit tes texte... cest a mon avis le seul et le meilleur moyen ! si tu as un grand texte tu créer une variable $textPageXXX = "blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla ...";
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    le mieux c'est de faire des traductions dans la BDD pour les textes dynamiques et de faire un fichier de config FR et ANG contenant la traduction des textes statiques comme le disait FCYPBA. Ca se fait très bien avec Smarty ce genre de truc.

    Tu peux aller voir aussi de ce coté page 4 :
    http://g-rossolini.developpez.com/tu...?page=sommaire

  9. #9
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Citation Envoyé par FCYPBA
    Je reprends :

    Tu recherches tous les textes de ton site et tu les remplaces par des variables php

    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $MsgBienvenue;
    Ensuite, tu crées les fichiers de langage
    lang_fr.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $MsgBienvenue = 'Bienvenue';
    et ainsi de suite pour les autres langues ( lang_en.php, etc....)

    Maintenant, il faut que dans chaque page tu inclus le fichier correspondant à la langue choisit par l'utilisateur

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if ($lang == 'fr' ) require_once 'lang_fr.php';
    else require_once 'lan_en.php';
    Pour le choix de la langue, j'utilise généralement des sessions. L'utilisateur choisit sa langue en cliquant sur le petit drapeau et va sur la page index.php?LANG=fr

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    session_start();
    if (isset($_REQUEST['LANG] ) {
    $_SESSION['lang'] = $_REQUEST['LANG'];
    }
    $lang = $_SESSION['lang'];
    Salut, j'ai fait tout sa et j'avais donc dans ma page ce code : qui marchait, maintenant, je le met plus dans ma page mais dans lang_fr.php et la plus rien, sa ne me met plus le texte pour ce code :
    KevinF

  10. #10
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Je comprend vraiement pas pourquoi sa marche pas.
    KevinF

  11. #11
    En attente de confirmation mail
    Inscrit en
    Août 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 43
    Points : 36
    Points
    36
    Par défaut
    j'ai débuté le PHP hier, mais je peux déjà te répondre :
    en début de chaque page tu fais un include du fichier langue voulu (d'après ta session) avec un if ou un truc du genre
    et à chaque fois que tu as un texte, tu vas le chercher dans ton fichier qui répertorie toute tes string.

    mais ne traduit pas tes noms de variables

    Memes
    http://www.vincent.enchine.free.fr/

  12. #12
    Membre du Club Avatar de Orb Dorb
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Si je puis me permettre d'apporter deux corrections pour le script de session plus haut qui pourrait décourager un débutant comme moi et éviter de poster à nouveau une parse error...

    Il manque un apostrophe et une parenthèse sur la ligne 3 soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    session_start();
    if (isset($_REQUEST['LANG'] )) {
    $_SESSION['lang'] = $_REQUEST['LANG'];
    }
    $lang = $_SESSION['lang'];
    ?>
    Bon codage à tous.
    MAC OS X 10.5.6

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par kevinf
    Salut, j'ai fait tout sa et j'avais donc dans ma page ce code : qui marchait, maintenant, je le met plus dans ma page mais dans lang_fr.php et la plus rien, sa ne me met plus le texte pour ce code :
    Encore une fois, kevinf, ta question est incompréhensible !
    Donne un vrai extrait de code (et pas seulement une variable !), et rédige correctement tes questions.
    Un dernier conseil avant d'être vraiment désagréable : peux-tu réfléchir quelques minutes avant de poster ?

  14. #14
    Membre du Club Avatar de Orb Dorb
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Allo vg33,

    C'est un vieux post que j'ai corrigé.

    Donc, je crois que tu ne devrais pas perdre ton temps avec la soluce.

    Bonne journée.
    MAC OS X 10.5.6

  15. #15
    Membre régulier
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    Comment faire pour transmettre la langue en parametre ?
    ex : http://www.developpezestunsupersite....ex.php?lang=FR ?

    merci

  16. #16
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    C'est pas très précis comme question...

    C'est pour faire un lien?
    Ou Pour le mettre automatiquement?

    Pour automatiquement, tu vérifie si il y a bien la variable LANG, si non, tu la met.
    KevinF

  17. #17
    Membre régulier
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Points : 97
    Points
    97
    Par défaut
    Désolé, dans ma tête ca ne l'était pas non plus

    Enfaite, je voudrais que lorsque je passe la variable en paramètre grâce à un lien <a href="/index.php?lang=fr></a> cette page se charge automatiquement !
    Comment faire ?

  18. #18
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Quel page doit se charger automatiquement?
    index.php ou la page qui contient le langage en francais?

    Si c'est le langage en francais, fais un require ou include en fonction de la variable LANG
    KevinF

  19. #19
    Membre régulier
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Points : 97
    Points
    97
    Par défaut
    Index.php

    Voici comment je procède :

    1. Detection de la langue grâce au navigateur.
    2. Chargement du fichier correspondant à la langue afin de donner les bonnes valeurs au variables. ex : langue : ANGLAIS -> $accueil = "home";
    3. Chargement de l'index.php avec le contenue en anglais pour rester dans l'exemple de la langue anglaise.

    merci

  20. #20
    Membre actif Avatar de kevinf
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    863
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 863
    Points : 225
    Points
    225
    Par défaut
    Et quel est ton problème, car là tout à l'air de marcher selon ton exemple.
    KevinF

Discussions similaires

  1. faire un site web en php
    Par tiesto95 dans le forum Langage
    Réponses: 3
    Dernier message: 19/03/2009, 14h04
  2. Faire un site bilingue
    Par Mehdi_32 dans le forum Langage
    Réponses: 5
    Dernier message: 11/07/2008, 14h42
  3. Site bilingue français/arabe en PHP
    Par lola123 dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2008, 17h00
  4. Faire un site bilingue
    Par phoque.r dans le forum Langage
    Réponses: 5
    Dernier message: 12/04/2007, 16h17
  5. Choix ? Faire son site en perl ou php ?
    Par bakonu dans le forum Général Conception Web
    Réponses: 17
    Dernier message: 07/10/2005, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo