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 :

Créer un fichier de langue pour les expressions usuelles


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut Créer un fichier de langue pour les expressions usuelles
    Bonjour à tous.

    Je cherche pour mon site à créer des fichiers (un par langue) contenant la traduction des expressions usuelles sur mon site (download, mentions légales, ...) un peu à la manière de SPIP.
    Cela me permettrait d'épurer mon code qui est pour l'instant plein de conditions en fonction de la langue choisie.

    Dand l'idéal, j'aimerait pouvoir mettre une 'expression' du genre :dl:, et qu'il me le remplace tout seul en fonction de la langue choisie en allant piocher dans le bon fichier.

    Mon soucis est que je ne sait pas du tout comment lui faire "parser" mes fichiers PHP une première fois pour faire les remplacement avant de me renvoyer le résultat qu client.

    Si vous avez des idées, je suis preneur ;-)

    Merci d'avance
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  2. #2
    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

    Connais-tu l'extension gettext() ?
    Le sujet a été évoqué ici.

  3. #3
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    Sinon ce que j'ai vu pour un site, il utilisait l'héritage
    il y avait une classe principale avec le texte comme attribut
    par exemple
    var $nom = nom;

    et pour les autres language il héritait de cette classe et l'attribut $this->nom devenenait :
    $this->nom = "name";

    ensuite selon la langue il faisait un include du fichier correspondant a la langue et pour afficher le texte il faisait
    echo $lang->nom;

    J'ai trouve le principe correcte, donc si ca peut t'inspirer.

  4. #4
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    Merci à vous deux pour ces pistes

    Je vais de ce pas me pencher dessus, mais gettext me semble bien contraignant ...

    Merci encore :-)
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  5. #5
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    Donc je suis passé par les tableaux :

    fichier fr.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $traduction = array(
        'accueil' => 'accueil',
        'cond_sce' => 'Conditions de service'
    );
    ?>
    en.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $traduction = array(
        'accueil' => 'home',
        'cond_sce' => 'terms of use'
    );
    ?>
    index.php (en fonction de la langue, j'inclus un des deux fichier de langue)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo $traduction['accueil'];
    ?>
    Ca marche très bien ainsi, mais l'appel de echo $traduction['accueil']; est un peu lourd... n'y aurait-il pas moyen de le "remplacer" par un #accueil# ou toute autre formulation 'simple' ?

    Merci d'avance
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  6. #6
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    je pense que c'est possible de mettre #montexte# mais on moment de l'affichage, il te faudrait tout le texte pour les retrouver, trouver leur equivalence, et remplacer. Donc la dessus faudra jouer sur les expressions regulieres.

  7. #7
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    chic, que des choses que je ne connait pas :o)

    je vais donc regarder comment exécuter mon php, récupérer son exécution dans une variable, puis le parser

    Merci à tous.
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  8. #8
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    Perso je passerais par des fichiers de langue contenant un tableau de mes expressions, puis en fonction de la langue choisie je chargerais le fichier correspondant.

    Puis avec un simple sprintf sur la valeur de l'expression lorsque celle-çi est complexe, ou un echo lorsque celle-çi est simple.

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Par défaut
    Et avec un fichier de constante par langue ?

    Fichier "constante_inc_fra.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    define("__Nom","nom");
    define("__Prenom", "prénom");
    ..
    .
    Fichier "constante_inc_eng.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    define("__Nom","name");
    define("__Prenom", "first name");
    ..
    .
    Et dans ta page php tu charges avec include_once

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include_once '/chemin/constante_inc_' . $LANGUE_SELECTIONNE . '.php';
    et apres l'include tu peux faire ..

    echo __Nom;

  10. #10
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    effectivement, ta solution me plait bien :-)

    je ne m'était jamais servi des constantes, mais ca semble correspondre parfaitement à mon besoin :-)

    Merci
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/01/2008, 12h49
  2. Réponses: 14
    Dernier message: 10/04/2007, 07h59
  3. Partage de fichier : Marche sauf pour les exe
    Par JolyLoic dans le forum Windows XP
    Réponses: 2
    Dernier message: 27/08/2006, 17h24
  4. pb avec le fichier de def pour les tiles
    Par benoizette75 dans le forum Struts 1
    Réponses: 2
    Dernier message: 23/08/2006, 09h09
  5. Réponses: 7
    Dernier message: 21/05/2004, 17h13

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