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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Choix technique pour gérer le multilingue


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 11
    Points : 20
    Points
    20
    Par défaut Choix technique pour gérer le multilingue
    Bonjour,

    Je suis en train de coder un CMS maison en PHP à destination d'un Intranet (voui, je réinvente l'eau tiède, mais c'est justement ce qui me plait là dedans).
    Globalement, l'appli est en pur MVC, mais je bute maintenant sur un aspect : la gestion des nombreuses "strings" présents dans les vues. Pour l'instant, les languages (mots, phrases) sont de simples variables Strings dans un bête fichier PHP en dur sur le serveur, chargé à chaque appel de la fonction Init (au niveau de l'hautentification, c'est de l'intranet), les vues se chargent ensuite de l'affichage de ces variables.
    Le problème arrive dès que le futur administrateur souhaite créer son propre "dictionnaire" (dans sa langue), ou bien si il préfère dénommer son menu "Nouveautés" en "News", par exemple.
    Je cherche donc la solution la plus simple (pour moi), la plus souple (pour l'utilisateur) et la moins lourde (le serveur est pas une bête de course)

    J'ai plusieurs solutions dont :
    - utiliser du XML pour mes "dictionnaires"
    - tout bêtement insérer toutes les strings dans la BDD (me parait pas terrible, ça...)
    - utiliser/parser des fichiers CSV (mes utilisateurs sont fans de ce format)

    Chaque méthode ayant ses inconvénients et ses avantages, ben.... du coup je ne vois plus du tout dans quelle direction aller.

    Quelle solution est adoptée dans les CMS que vous utilisez ? Quelle méthode vous semble préférable ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 11
    Points : 20
    Points
    20
    Par défaut Si ça peut interesser d'autres...
    Bon, finalement, j'ai implémenté les 3 solutions :

    Insérer les strings dans la BDD :
    lourd, pas génial questions perf', et de toute façon, n'a rien à faire dans la BDD qui est là pour les datas des utilisateurs et rien d'autre (pi' d'ailleurs, si j'ai 15 languages à traduire, je créé 15 tables ??!).

    Bricoler un parser de fichier CSV :
    tout est dis dans le titre : trop bricolage. Perte de performances, lourdeur, du code en plus à se trainer et à maintenir....

    Finalement, vainqueur par KO : utiliser un fichier XML
    Super souple, très simple (via XML DOM), puissant, performant.... seul inconvénient, j'ai du fermer la porte à PHP4, mais bon, de toute façon, il faudra bien y passer un jour, à PHP5 !

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Citation Envoyé par guy_lux Voir le message
    Insérer les strings dans la BDD :
    lourd, pas génial questions perf', et de toute façon, n'a rien à faire dans la BDD qui est là pour les datas des utilisateurs et rien d'autre (pi' d'ailleurs, si j'ai 15 languages à traduire, je créé 15 tables ??!).
    Euh... et une table de cette forme (souligné : les clés primaires):
    Libelles(terme_id, lang_id, libelle)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -----------------------------------
     TERME_ID     LANG_ID      LIBELLE
    -----------------------------------
     1            1            Chien
     1            2            Dog
     1            3            Perro
     1            4            ...
     2            1            Mot2
     2            2            Word2
     2            3            Palabra2
     etc
    Finalement, vainqueur par KO : utiliser un fichier XML
    Super souple, très simple (via XML DOM), puissant, performant.... seul inconvénient, j'ai du fermer la porte à PHP4, mais bon, de toute façon, il faudra bien y passer un jour, à PHP5 !
    PHP4 est déjà mort et enterré... donc c'était indispensable.
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Choix technique pour une demande simple.
    Par Doudy dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 26/04/2009, 07h20
  2. le meilleur choix technique pour un pfe
    Par saadoz dans le forum Développement Web en Java
    Réponses: 6
    Dernier message: 20/02/2009, 18h36
  3. Choix SGBD pour gérer un planing véhicule
    Par Dakuan dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 29/05/2008, 22h15
  4. Réponses: 5
    Dernier message: 18/12/2007, 16h17
  5. Choix SGBD pour gérer des fichiers Excel et des images ?
    Par benoit69 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 01/03/2007, 12h02

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