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 :

Recuperer nom de constante [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 48
    Par défaut Recuperer nom de constante
    Bonjour à tous

    Je développe un site qui doit être traduit dans plusieurs langues. Chacun des textes est donc stocké dans une constante, qui est utilisée ensuite. Les constantes sont définies dans des fichiers de langue, par exemple, si je selectionne la langue française, il inclus le fichier fr.lang.php, et dedans j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define(BONJOUR, "Bonjour");
    alors que si je visionne en anglais, il inclus en.lang.php, avec la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define(BONJOUR, "Hello");

    Si je veux écrire bonjour, je n'ai plus qu'à faire <?php echo BONJOUR; ?> et selon la langue, j'aurai "Bonjour" ou "Hello"
    Petit problème : Pour associer une image avec un texte, en l'occurence des flags, je passe par une base de données.
    J'ai une table flags avec 4 champs : Id, image, pays, langue
    ça permet de lier l'image (donc le chemin est stocké dans le champ image) à la langue et au nom du pays. Toujours pour respecter les questions de traductions, ce n'est pas le NOM du pays qui est stocké, mais la CONSTANTE donnant son nom selon la langue.

    Sauf que, quand je récupère le tout, je me retrouve avec une variable contenant le nom de cette constante (dans l'exemple plus haut, BONJOUR) mais je ne sais pas comment afficher la valeur de cette constante (Bonjour ou Hello selon la situation.)

    Je voulais savoir comment faire pour récuperer cette valeur.

    J'espère avoir été assez clair

    Merci d'avance

    Seidris

  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
    Fonction constant pour obtenir la valeur d'une constante préalablement définie à partir de son nom.

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    cette démarche de faire un site multilingue est honorable, mais tu vas vite être limité.
    Souvent il vaut mieux utiliser des printf( ) ce qui te permet de déplacer un chiffre dans la traduction par rapport à l'équivalent natif avec un jeu subtil sur les positions des %d et des %s.

    sinon si ton projet est important tu dois t'intéresser à ce qui se dit sur gettext.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 48
    Par défaut
    La fonction constant() resout le problème, merci

    Je conserve le systeme de constantes pour l'instant (un similaire est utilisé sur DotClear il me semble) mais je vais étudier les deux alternatives proposées, merci du conseil

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

Discussions similaires

  1. Recuperer nom local d'1 dossier partagé depuis Poste Client
    Par bib34690 dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 14/10/2005, 20h51
  2. [PHP-JS] Recuperer nom de lien en PHP
    Par lemagicien dans le forum Langage
    Réponses: 3
    Dernier message: 10/10/2005, 16h03
  3. Réponses: 4
    Dernier message: 19/09/2005, 15h59
  4. Réponses: 2
    Dernier message: 12/01/2005, 10h18
  5. [web] récupérer nom du serveur
    Par GMI3 dans le forum Web
    Réponses: 4
    Dernier message: 24/09/2003, 14h10

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