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 :

Site multi langues


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut Site multi langues
    Bonjour à tous,

    J'aimerais votre avis concernant le développement d'un site multilangues.
    Pour le moment, j'ai un attribut "langue" de l'objet "utilisateur" qui vaut "fr" ou "en".

    Et j'ai des fichiers de langues. Par exemple accueil.lang.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    switch ($utilisateur -> langue) {
      case "fr" : 
        define("TRAD_BIENVENUE", "Bienvenue", true);
        define("TRAD_BONJOUR", "Bonjour", true);
        break;
     
      case "en" : 
        define("TRAD_BIENVENUE", "Welcome", true);
        define("TRAD_BONJOUR", "Hello", true);
        break;
    }
    Ca fonctionne, mais je ne suis pas sûr que ce soit la solution la plus adaptée ? Avez vous d'autres propositions ?

    Merci,

    Gillou.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Salut,

    A peu ou prou, j'aurai fait pareil. Cependant sache qu'il existe une lib php pour gérer cela --> http://fr.php.net/manual/fr/book.gettext.php après, sa plaît, sa plaît pas.. Moi, sa me plaît moyen, je n'aime pas trop les fichiers po, leurs têtes ne me reviennent pas ^^

    http://www.gnu.org/software/gettext/...ode/index.html

    salut

  3. #3
    Membre émérite
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 910
    Par défaut Table SQL
    Je gère les sites multi-langues via une table SQL de la forme

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DROP TABLE IF EXISTS langues;
    CREATE TABLE langues (
      id INT UNSIGNED NOT NULL AUTO_INCREMENT,
      fra TEXT NOT NULL,
      eng TEXT NOT NULL,
      spa TEXT NOT NULL,
      PRIMARY KEY(id)
    );

    Si je veux ajouter une langue dans le futur je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE langues
    ADD COLUMN ita TEXT NOT NULL
    Puis je gère le tout via une interface graphique codée par mes soins avec les technologies habituelles: PHP, MySQL, rialto, AJAX

  4. #4
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    Et tu fais une requete SQL a chaque fois que tu veux afficher un mot ou une phrase ?
    C'est pas trop lourd ?

    Gillou.

  5. #5
    Membre émérite
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 910
    Par défaut
    Non pas du tout!!! Je fais une seule requête qui récupère toutes les informations nécessaires à la page et je mets le tout dans un tableau ou dans un fichier XML: tout dépend du contenu et de comment il est stocké. Donc je fais une seule requête SQL.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Citation Envoyé par LeGilou Voir le message
    Bonjour,

    Et tu fais une requete SQL a chaque fois que tu veux afficher un mot ou une phrase ?
    C'est pas trop lourd ?

    Gillou.
    bof, après c'est le genre d'informations qui se logerait volontiers dans un partage mémoire activée via apc par exemple. Evitant ainsi de multiples et fastidieuses requêtes.

    Par contre, je comprend pas très bien comment tu fais le relationnel entre le <code> du message (genre TRAD_BIENVENUE) et la traduction => Bienvenue.
    En effet ton schéma ne prévoit pas d'avoir un code.
    Si par ailleurs tu utilises la valeur du fr, pour récupérer l"équivalent, traduit ou non, ajoutes y une petite clef d'indexation. Sa ne peut lui faire de mal.

  7. #7
    Membre émérite
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 910
    Par défaut ouais j'ai pas tout mis
    Ma table n'est pas complète et elle correspond simple à une réponse à la question de départ. En fait, j'ai simplifié au maximum. Il y a plusieurs tables dans mon système mais ce serait un peu long à expliquer. Je voulais juste donner une autre possibilité, mais il y a tellement de bonnes solutions pour ce genre de demande...

  8. #8
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    J'ai définie des constantes.
    ensuite je les utlise comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h1><?=TRAD_BIENVENUE?></h1>
    Et j'ai pas bien compris cette phrase :
    Si par ailleurs tu utilises la valeur du fr, pour récupérer l"équivalent, traduit ou non, ajoutes y une petite clef d'indexation. Sa ne peut lui faire de mal.
    Gillou.

Discussions similaires

  1. Utilisation XML/XSL pour un site multi langues
    Par bigsister dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 22/01/2007, 16h36
  2. Site multi langue
    Par didarmor dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 14/12/2006, 22h42
  3. Problème site multi langues
    Par dolf13 dans le forum Langage
    Réponses: 9
    Dernier message: 31/08/2006, 12h05
  4. Réponses: 12
    Dernier message: 04/11/2005, 16h28
  5. Architecture d'un site multi-langues
    Par seben dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 25/09/2005, 15h23

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