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 :

Conception de site web bilingue


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut Conception de site web bilingue
    Bonjour,
    J'ai conçu un site (en français) et je souhaite mettre une deuxième langues (anglais). Les données à afficher sont proviennent d'une BDD MySql.
    Comment procéder ?

    Merci.

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Il y a deux aspects à traiter quand on internationalise un site :
    1) La traduction de la partie statique du site, c'est à dire l'interface applicative avec les titres, les libellés de champs de saisie, les pages fixes genre informations légales...
    2) La traduction éventuelle de la partie dynamique, c'est à dire des données affichées par le site.

    Pour le premier aspect, cela peut se traiter :
    - par des fichiers de traduction ;
    - par une traduction stockée en base de données.

    Pour le second aspect, il faut commencer par déterminer ce que vous voulez traduire et modéliser l'internationalisation de vos tables.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut
    Merci,
    Pour les données statiques, je prévoir utiliser un tableau associatif avec des id.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $string_lang = array(
      'HOME' => array(
        'fr-fr' => "accueil",
        'en-En' => "Home"),
         .........................
         .........................
      'COPY' => array(
        'fr-fr' => "Mention légale",
        'en-uk' => "CopyRight")
      );
    ?>
    Quand aux données stockées,
    je suis voudrais ajouter une rubrique langue dans ma table dans ce cas toutes les requête auront une variable $lang (variable session).
    Ce méthode implique forcement que chaque article sera obligatoirement inséré dans la table en français et en anglais.

    exemple de requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table WHERE lang = $_session['lang']...
    Est une méthode efficace ?

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Ça peut fonctionner ainsi en effet.

    3 remarques :
    Pour les données statiques, je prévoir utiliser un tableau associatif avec des id.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $string_lang = array(
      'HOME' => array(
        'fr-fr' => "accueil",
        'en-En' => "Home"),
         .........................
         .........................
      'COPY' => array(
        'fr-fr' => "Mention légale",
        'en-uk' => "CopyRight")
      );
    ?>
    Si vous avez beaucoup de libellés, vous allez charger tous les libellés pour les deux langues, ce qui peut être lourd. Et si un jour vous ajoutez d'autres langues, vous augmentez d'autant la taille des informations chargées. Il vaut parfois mieux faire un fichier par langue et ne charger en mémoire que la langue choisie par l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table WHERE lang = $_session['lang']...
    Attention aux injections SQL ! Utilisez PDO ou mysqli et "bindez" vos variables php.

    Dans votre code PHP, vous utilisez 'fr_FR' et 'en_EN', soit 5 caractères pour une langue. En base de données, faites plutôt une table des langues et utilisez l'identifiant auto-incrémenté de cette table, ça prend moins de place en BDD et c'est plus facilement maintenable en cas d'erreur ou de changement de code.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut
    Merci pour les conseils. Je m'y et je reviens.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut
    Merci CinePhil c'est bon. J'ai crée une table pour les langues et une table pour les données statiques. Et jusque là tous va bien.

Discussions similaires

  1. Meilleur outils de conception de site web
    Par nono dans le forum Outils
    Réponses: 4
    Dernier message: 06/04/2007, 09h10
  2. [Architecture/strategie] conception de site web dynamique
    Par epoz dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 28/11/2005, 12h11

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