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 :

conseil site multilingue php


Sujet :

Langage PHP

  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 conseil site multilingue php
    Bonjour,

    Voila je vais devoir réaliser un site multilingue en 3 langue (français, espagnole, anglais), c'est mon premier site multilingue, je créer mes sites en PHP et MySQL juste avec Notepad++ ou Netbeans. Je voudrais votre avis pour savoir quelle est le moyen le plus adapter ? Ce que je dois regarder de plus important en premier?

    J'ai fait des recherches déjà je pense que pour le nom de domaine c’est mieux avec des sous domaines par langue, après pour le code j’ai trouvé des articles intéressants.

    Sachant que je ne pense que par la suite qu'il est beaucoup de modification, le site sera beaucoup vu à l’étranger car c’est la où est créer l'entreprise.

    Merci.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Gettext est un standard de traduction. Il présente l'énorme avantage d'avoir des logiciels pour la gestion des fichiers de langue (poedit par exemple) ce qui rend la traduction par des tiers non informaticien très facile.

    CE qui n'est pas le cas avec des variables ou des constantes de langue.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    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
    Donc il y a moins de travail mais étant informaticien est-ce vraiment la meilleur? Pourrais-tu m’expliquer un peu le système? Dois-je traduire toutes les pages moi-même? Est-ce que cela fonction pour les sous-domaines?

    MERCI.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Perso même en étant informaticien je trouve ça plus plaisant de traduire à partir d'un software fait pour ça que de bouffer des variables à n'en plus finir ^^

    Niveau performance gettext est sans doute plus optimiser qu'un fichier plein de variables.
    Le seul gros défaut que je vois c'est qu'il est moins flexible que les solutions "bricolage" habituelles. Il faut que les locale des langues dont tu as besoin soient installées sur le serveur et c'est en général un peu galère sous Windows, mais ça doit être expliqué dans ton tutoriel.

    Pourrais-tu m’expliquer un peu le système?
    Tu fais un fichier texte en .po contenant tes clés de traduction et la traduction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    msgid "bonjour"
    msgstr "hello"
     
    msgid "le monde"
    msgstr "world"
    Ce fichier est ensuite compilé pour obtenir un .mo (le fichier texte + un index je pense).
    C'est ce fichier compilé que gettext va utiliser pour traduire les chaines que tu veux.

    Dois-je traduire toutes les pages moi-meme
    Quelque soit la solution adoptée, il y a pas de miracle faut tout faire à la main, les traductions magiques à la Google c'est tellement mauvais que ce n’est pas envisageable pour un site pro.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 477
    Points : 198
    Points
    198
    Par défaut
    Je me permets de m'incruster dans le post.
    Je suis justement confronté à la même question.

    Je ne connaissais pas Gettext.
    Mais que ça soit Gettext, le tutorial php que j'ai cité précédemment ou autre.
    Au niveau du référencement du site.
    Vu que le Google juge le contenue du site, quel est la solution la plus performante ?

  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
    justement je me poser la meme question.

  7. #7
    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
    rebonjour,

    voila j'ai eu un exemple:
    Alors je vais tenter de rexpliquer, c'est relativement simple.

    Lorsque tu navigue et que tu change de langue, tu stocke en session la langue.
    Par exemple :

    Code : PHP - Sélectionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php $_SESSION['lang'] = "en"; ?>

    Ensuite dans ton arborescence tu place un dossier lang dans lequel tu crée 3 fichiers textes : fr.inc, en.inc et es.inc, qui représentent chacun une langue.

    Ensuite tu prend ton fichier fr.inc, et tu l'édite. Tu y met tous tes textes classés selon les pages. Tu met les textes dans des constantes, que tu nommes _CONSTANTE par convention.
    Exemple :

    Code : PHP - Sélectionner


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    // fichier de langues en français
     
    // pages 1
    define("_BIENVENUE","Bienvenue sur mon site web !");
    define("_BONNE_NAVIGATION","Je vous souhaite une bonne navigation.");
     
    // etc ...
     
    ?>


    Ensuite quand tu as terminé, tu ouvre tes autres fichiers de langues, tu copie le fichier fr.inc et tu colle son contenu dans en.inc, et finalement tu traduis son contenu.

    Si on suit l'exemple précédent :

    Code : PHP - Sélectionner


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
    // fichier de langues en anglais
     
    // pages 1
    define("_BIENVENUE","Welcome to my website");
    define("_BONNE_NAVIGATION","I wish you a good navigation.");
     
    // etc ...
     
    ?>

    Tu fais la même chose pour es.inc.

    Maintenant tu as tes fichiers de langues traduits.

    Il ne te reste plus qu'à charger le bon contenu dans tes pages.

    Après avoir enregistré la langue dans la Session (premier bout de code), tu détecte la langue.

    Code : PHP - Sélectionner



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if($_SESSION['lang'] == "en")
         include "en.inc";
    else if ($_SESSION['lang'] == ....
    ?>


    Tu aura donc chargé pour chaque page des constantes de langues.
    Il ne te reste plus qu'à les utiliser.

    Voila à quoi ressemblerait globalement l'affichage de ton site.

    Code : PHP - Sélectionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    <?php echo _BIENVENUE; ?><br/>
    <?php echo _BONNE_NAVIGATION; ?>

    Voila, j'espère que j'ai été plus clair et n'hésite pas à me poser d'autres questions si tu n'a pas compris
    donc en faite je ne doit faire qu'une fichier pour chaque langue?? je pensais que si j'avais 9 pages je devait en faire 9 page en anglais?.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    En termes de référencement je te conseil de travailler en url sous cette forme :

    www.site.com/fr/index.php
    www.site.com/en/index.php

    Bien sur les dossiers fr et en ne sont que de la réécriture d'url.

  9. #9
    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
    merci stood86 pourrais-tu me dire ce que tu penses de ce que j'ecris au dessus.merci des conseils

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Désolé nos posts se sont croisés.

    Personnellement je fais comme ta procédure
    La base de données reste aussi un point essentiel. A méditer très sérieusement le mcd avant de se lancer

    En passant je te mets une expression pour le htaccess ( il y a surement mieux mais cela suffit)

    RewriteRule ^(fr|en)/(.*).php $2.php?lang=$1 [QSA]

  11. #11
    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
    Pourquoi me parles-tu de base de données? J'ai en ai pas besoin dans ce cas précis.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 44
    Points
    44
    Par défaut
    Pas de base de données sur ton site?

    Excuse moi alors. Mais pour les gens qui liront le post cela servira toujours

Discussions similaires

  1. [POO] conseils pour creation site en PHP Objet
    Par Clorish dans le forum Langage
    Réponses: 8
    Dernier message: 05/06/2008, 23h18
  2. site web multilingue / php
    Par AP dans le forum Langage
    Réponses: 4
    Dernier message: 14/05/2007, 16h38
  3. [Conception] Conseil création site multilingue
    Par calitom dans le forum Langage
    Réponses: 8
    Dernier message: 25/01/2007, 10h51
  4. Réponses: 4
    Dernier message: 28/09/2006, 20h20
  5. [PHP/DB] site multilingue choix txt/DB ??
    Par speedev dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/07/2006, 08h22

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