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

PHP & Base de données Discussion :

php5 et mysql avec multi-language


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut php5 et mysql avec multi-language
    Bonjour,

    J'ai suivi votre conseil est utilIser votre technique qui fonctionne très bien qu'un utilisateur m'avait conseiller pour un site en multi-language comme suit:
    Fichier config.php appeller dans mon toutes les pages:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
    if(empty($_GET['lang'])){
    	$_SESSION['lang'] = "fr";
    }else{
    	switch($_GET['lang']){
    		case "fr":
    		$_SESSION['lang'] = "fr";
    		break;
    		case "en":
    		$_SESSION['lang'] = "en";
    		break;
    		case "it":
    		$_SESSION['lang'] = "it";
    		break;
    		default :
    		$_SESSION['lang'] = "fr"; //au cas ou quelqu'un rentre autre chose que fr/en ou it
    		break;
    	}
    }
     
    switch($_SESSION['lang']){
    		case "fr":
    		$fichier_langage = "lang/fichier_fr.php";
    		break;
    		case "en":
    		$fichier_langage = "lang/fichier_en.php";
    		break;
    		case "it":
    		$fichier_langage = "lang/fichier_it.php";
    		break;
    }
    include($fichier_langage);
    ?>



    fichier : fichier_fr.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    define("_BIENVENUE","Bienvenue sur mon site web !");
    define("_BONNE_NAVIGATION","Je vous souhaite une bonne navigation.");
    ?>


    fichier : fichier_en.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    define("_BIENVENUE","Welcome to my website");
    define("_BONNE_NAVIGATION","I wish you a good navigation.");
    ?>



    idem pour l'italien et les autres langues éventelles.

    fichier index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    include("config.php");
    ?>
    <h1><?php echo _BIENVENUE;?></h1>
    <div><?php echo _BONNE_NAVIGATION; ?></div>
    ?>

    Mais j'aurai une autre question j'utilise php5 et j'affiche un tableau mysql avec une fonction d'une classe.Mais ma comment faire pour qu'il soit aussi en multi-language par rapport a la langue choisi?

    merci.

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Déjà petite question... Pourquoi faire 2 switch alors que tu pourrais n'en faire qu'un ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    if(empty($_GET['lang'])){
    	$_SESSION['lang'] = "fr";
    }else{
    	switch($_GET['lang']){
    		case "fr":
    		$_SESSION['lang'] = "fr";
                    $fichier_langage = "lang/fichier_fr.php";
    		break;
    		case "en":
    		$_SESSION['lang'] = "en";
                    $fichier_langage = "lang/fichier_en.php";
    		break;
    		case "it":
    		$_SESSION['lang'] = "it";
                    $fichier_langage = "lang/fichier_fr.php";
    		break;
    		default :
    		$_SESSION['lang'] = "fr"; 
                   $fichier_langage = "lang/fichier_fr.php";
    		break;
    	}
    }

    Ensuite dans mysql, comment stockes-tu tes données multilingues ?
    Sur plusieurs tables, plusieurs champs... ?

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    ton approche est assez naïve de la question. Mais grosso modo il faut offrir une traduction pour les textes qui font partie du gabarit du site et pour les textes qui font partie du contenu du site (le bouton Recherche par rapport au titre de la page).

    C'est là ou si ton site n'est pas extrêmement bien conçu qu'on commence à pleurer

    ya des traités sur le web qui parlent de l'api gettext.

    http://www.gnu.org/software/gettext/manual/gettext.html
    http://php.net/manual/en/book.gettext.php
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    je stocke les données à afficher que dans une table seulement, j'en avais besoin q'une.Merci

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par kate59 Voir le message
    je stocke les données à afficher que dans une table seulement, j'en avais besoin q'une.Merci
    je pense que ta table doit etre sous la structre suivante :

    id
    cle
    mot_fr
    mot_en
    mot_it
    ...

    donc ta requete sera sous la forme : "select cle, mot_".$_SESSION['lang']." as value from table";

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    que veut tu dire me stable sont sous forme:

    id
    marque_machine
    modele_machine
    annee_machine
    couleur_machine
    estActive
    estDisponible

    donc toi tu pense que je doit rajouter des tables c'est ca?

    marque_machine, fr_marque_machine,en_marque_machine a rajouter par exemple.

  7. #7
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    si tu veux fonctionner comme ça, utilise une table dictionnaire.

    symbole, langue, traduction
    time, en, time
    time, fr, temps
    search, en, search
    search, fr, recherche

    et comme le symbole pour l'anglais c'est le même mot que la traduction, tu simplifies en effaçant les traductions pour l'anglais. Ne mélange pas la logique commerciale/métier/... avec la langue du visiteur sauf si ça a un vrai sens.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/12/2011, 16h57
  2. [MySQL] Connexion Mysql avec PHP5
    Par fred61 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/11/2008, 21h47
  3. [SGBD]Pbl installation extension MySQL avec PHP5
    Par Ch_Matt dans le forum Installation
    Réponses: 3
    Dernier message: 25/08/2004, 22h07
  4. Comment attaquer Mysql avec Visual C++
    Par brisou_ dans le forum Administration
    Réponses: 4
    Dernier message: 11/03/2003, 13h12

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