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 :

[PHP-JS] Site mutlilangue optimisé


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Septembre 2002
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 270
    Par défaut [PHP-JS] Site mutlilangue optimisé
    Salut,

    Je dois réalisé un site en PHP en plusieurs langue.

    Quel technique est selon vous la meilleur et la plus professionnel a utilise???

    XML?
    plusieurs page?
    javascript?

    autres???

    merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Les techniques les plus propres (dans le sens plus facile à maintenir) sont, je pense, XML et gettext. Mais je pense que gettext doit être plus performant.


    Julp.

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    La solution la plus rapide utilise gettext mais la plus maléable utilise des fichiers de langue et/ou des tables de langue dans la base de données.
    Le problème de gettext est que toute modification de la langue par défaut doit être répercutée dans toutes les traductions, alors que les traductions sont indépendantes.

  4. #4
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Bonsoir

    Il existe une autre technique qui semble être un standard en la matière, soit le TMX.
    J'ai lu, c'est vrai, un peu trop en diagonale mais celà m'a semblé plutôt pertinent et...dans le même temps, costaud aussi.

    Titre : Localisation PHP grâce au std TMX

  5. #5
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    J'aurai dit les langes dans une BDD ou des fichiers, et une variable de SESSION qui garde la langue préféré de l'internaute actuel.

  6. #6
    Membre très actif
    Inscrit en
    Septembre 2002
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 270
    Par défaut
    merci, je vais faire quelques test et voir celle qui me correspond le mieux

  7. #7
    Membre émérite Avatar de gretch
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 165
    Par défaut
    MaxooJ'aurai dit les langues dans une BDD ou des fichiers, et une variable de SESSION qui garde la langue préféré de l'internaute actuel.
    moi aussi

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Par défaut Ma solution
    J'ai mis en route un site spécialisé en philatélie et multilangue avec mes connaissances de "vieux débutant confirmé". Ma solution sont la détection de la langue du navigateur, puis selon la langue utilisée, faire un include du fichier contenant toutes les variables.
    Comme le site est en développement, les traductions ne sont pas toutes faites tout de suite. Pour éviter un "trou", j'ai procédé à un double include. Ainsi ce qui n'est pas encore traduit, apparaît en français. Pratique surtout pendant le développement. Le fichier langue est celui qui détermine la langue du navigateur et retourne $lang.
    <?
    include('langue.txt');
    include('60A/messages.FR.inc.php');
    include('60A/messages.'.$lang.'.inc.php');
    ?>

    L'avantage est de ne pas avoir à traiter la "langue préféré" et il n'apparait aucun choix de langue pour le visiteur, inutile de l'enregistrer ni dans un cookie, ni dans la bd!

    l'adresse du site est www.planchage.france-timbres.net

    Pour "forcer" une langue, il suffit de modifier la langue du navigateur comme prioritaire, ce qui en principe est inutile.

    Je peux vous donner le code pour déterminer la langue du navigateur. Je l'ai placé comme include et non pas comme texte, j'aurai pu le mettre comme fonction, mais l'effêt est le même. Ainsi lorsqu'on ajoute une langue, il n'y a qu'un seul endroit, le fichier $langue, à compléter, puis placer le fichier $messages de la langue appropriée.

    Je ne connais aucune des techniques relatées dans les différentes réponses, la mienne est peut être simpliste, mais terriblement efficace et finalement simple à mettre en oeuvre.

  9. #9
    Membre émérite Avatar de gretch
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 165
    Par défaut
    Ma solution sont la détection de la langue du navigateur, puis selon la langue utilisée, faire un include du fichier contenant toutes les variables.
    quasi meme chose , qu'on detecte le nav une fois et que l'on stocke l'info ou que l'on verifie à chaque fois.
    Ce qui definit par ex la variable : $langue qui va définir le champs dans lequel il va chercher le texte, si le champs est vide,
    $langue = francais

    et dans la requetes,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT $langue FROM ...
    et HOP ...!!! PHP/Mysql , le miracle du contenu dynamique !!!
    (bon petit miracle, ... en fait pas trés revolutionnaire ...mais ça marche qu'en meme vachement bien !!!... ) *

    PS : Et permet de faire facilement, une plateforme d'admin permettant à des débutants en informatique

    par example :
    • un correspondant brézilien,
    • ou une petite amie qui habite à londre,
    • ou encore un étudiant français au japon
    mais compétant dans leur domaine

    ( la trad ou la création de contenu ...)

    de faire des mise à jour facilement, et même d'enrichir le site, avec pourquoi pas un petit mail prévenant les autres traducteurs de la création d'un nouveau contenu à traduire...


    enfin bon le travail en equipe est presque primordial,trouve des gens sympas pret à te faire ta traduction et ce, de chez eux, et prépare leurs une belle plateforme d'admin,
    dernier benefice : moins de boulot pour toi !!!
    (après la création de la plateforme bien sure !!! )

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    @gretch : Ta solution implique de modifier la structure de données (ajouter/supprimer un champ de table) lorsqu'une langue est ajoutée ou modifiée. Ce n'est généralement pas considéré comme une bonne pratique car elle est peu flexible.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Par défaut Pas tout a fait la même chose
    [QUOTE=gretch]quasi meme chose , qu'on detecte le nav une fois et que l'on stocke l'info ou que l'on verifie à chaque fois.
    Ce qui definit par ex la variable : $langue qui va définir le champs dans lequel il va chercher le texte, si le champs est vide,
    $langue = francais

    Juste une précision: Pour moi la différence est énorme: Dans le cas d'un réglage de la langue par défaut, TOUT le texte apparait dans la langue par défaut, alors que dans la manière que j'emploi, Le texte ou les variables non encore traduites apparaissent en langue par défaut et toutes les autres en langue traduite. Celà est particulièrement intéressant lors de la création d'un site en cours de développement.

Discussions similaires

  1. [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
  2. [Tableaux] pointeur de fichier PHP : compteur site
    Par Badaboumpanpan dans le forum Langage
    Réponses: 2
    Dernier message: 29/05/2006, 15h52

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