Config et Lang

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Config et Lang

Re: Config et Lang

par Dr@ke » 04 sept. 2009, 18:41

Pour definir une constante ont utilise define()
define ('nom de la constante', 'valeur de celle-ci')
Je sais mais le script n'était pas complet je pense :wink:
Il était tout à fait possible de les définir ensuite.
Je parlais surtout en général, comme pour les fichiers langues de Php-Nuke ( ou anciennement de Php_Nuke):
...
define("_TOPIC","Sujet");
define("_UDOWNLOADS","Téléchargements");
define("_VOTE","Vote");
define("_VOTES","Votes")
...

Re: Config et Lang

par dunbar » 04 sept. 2009, 18:28

Je n'ai défini aucune constante, l'erreur dans mon exemple est d'avoir déclarer mes clés en MAJUSCULE :wink:

Pour definir une constante ont utilise define()
define ('nom de la constante', 'valeur de celle-ci')

Re: Config et Lang

par Dr@ke » 04 sept. 2009, 17:55

Sauf que l'utilisation de constantes pour les fichiers langues, c'est pas Top à mon avis...
Déjà la définition d'une constante c'est quelle est une constante, mais dans un fichier langue elles se comportent plus comme des variables, donc déjà pour le principe ce n'est pas Top, de plus une constante est en quelque-sorte une Global...
Exemple en reprenant le code de Dunbar:
<?php
$Langue = (isSet($_GET['language'])) ? $_GET['language'] : 'FR' ;
        switch ($Langue)
         {
           case 'FR':
                   $Language = array('bonjour' => 'Bonjour',
                                              'bonsoir' => 'Bonsoir');
             break;

           case 'US':
                  $Language = array('bonjour' => 'Hello',
                                              'bonsoir' => 'Good evening');
             break;

           case 'ES':
                 $Language = array('bonjour' => 'Hola',
                                             'bonsoir' => 'Buenas tardes');
             break;
         }
echo 'hey ' . $Language[bonjour] . ',' . $Language[bonsoir]; 
?>
Mais je me trompe peut-être, c'est juste mon avis perso...

Re: Config et Lang

par dunbar » 04 sept. 2009, 17:05

Bonjour à tous :)

Petite question, quelles sont les bonnes (meilleurs ?) solutions pour gérer des données de configuration ainsi que des langues (traductions) ?

J'ai vu que certains utilisaient des simples tableaux associatifs dans des fichiers ".php" autonomes, d'autres utilisent les fameux fichiers ".ini", d'autres des simples fichiers texte avec des données sérialisées, etc.

Quel est votre avis à ce sujet ?
Autrement, quelles solutions avez-vous adopté dans vos développements ?

Merci de vos lumières :)
Personnellement
php, switch ()
Exemple :
$Langue = (isSet($_GET['language'])) ? $_GET['language'] : 'FR' ;
	switch ($Langue)
	 {
	   case 'FR':
	           $Language = array('TEXT_BONJOUR' => 'Bonjour',
	                             'TEXT_BONSOIR' => 'Bonsoir');
	     break;

	   case 'US':
	          $Language = array('TEXT_BONJOUR' => 'Hello',
	                             'TEXT_BONSOIR' => 'Good evening');
	     break;

	   case 'ES':
	         $Language = array('TEXT_BONJOUR' => 'Hola',
	                           'TEXT_BONSOIR' => 'Buenas tardes');
	     break;
	 }

Re: Config et Lang

par FredoMkb » 01 sept. 2009, 11:35

Bonjour à tous :)

Merci FuZZyLine pour ta réponse et surtout pour ton exemple, cela montre en effet qu'il y a plusieurs solutions possibles pour le même problème.

Perso, pour l'instant je m'oriente vers une solution avec des fichiers de type ".ini", un par langue, avec évidemment des clés communes et des adaptations (traductions) dans chaque fichier...

Ce que j'ai omis de dire au début, c'est que le fichier de configuration ainsi que les fichiers de langues seront destinés à être modifies manuellement par les utilisateurs, il était donc important que le contenu des fichiers soit compréhensible et accessible sans trop de difficultés... je pense que le format "ini" répond assez bien à cette contrainte.

D'autre part, la possibilité de regrouper les différentes valeurs par sections, de manière assez simple, est un plus appréciable.

Voilà où j'en suis pour le moment, de toutes manières j'ai encore pas mal de pain sur la planche avant de finir ce projet, je n'en suis qu'au début, mais je me devais de résoudre cette question car elle déterminait d'autres choix par la suite...

En tout cas, un grand merci à tous pour vos réponses (s'il y a d'autres avis, je suis toujours preneur ;) )

Re: Config et Lang

par FuZZyLine » 01 sept. 2009, 09:17

Salut ,
[...]
Mais il y a en effet de nombreuses autres méthodes .. aprés les gouts et les couleurs :D
Qu'écrire de plus sans te périphraser? +1... allez, un 'tit +2 ;)

@FredoMkb:

Vaste sujet, vaste débat. En développement y a toujours (...ou presque toujours) au moins 3
possibilités pour aller au même endroit. Et trouver le bon chemin implique:

- Que l'éxécution soit rapide,
- Que le code soit petit, (je parle par habitude, aujourd'hui c'est plus à la mode)
- Que l'accès soit facile/ludique,
- Que...

Un bon équilibre de ses éléments et tu devrais savoir quelle méthode employer.

Perso j'utiliserais une langue par défault puis selon la sélection je renvérrai le résultat
avec la langue voulue. Ce qui peut se traduire ainsi:

(FALSE Default) Remplace(Default -> Choix)

Ca évite de faire une page par langue, tu ne traduits QUE ce que tu souhaites...
Mais, biensur, ca reste mon choix à toi d'essayer les diverses possibilités ;)

// Concordence
//
// fr[0] = "Bonjour";
// us[0] = "Hello";

// J'insiste pas sur le système des clefs et ne mentionne pas non plus
// que ce modele est utilisé via une DB 

// Si la langue voulue n'est pas la langue par défaut
//
if (!$bfDefault)
{
   // Tu récupère la clef correspondant à ce mot/cette phrase de la langue par default
   //
   $iClefMotByDefault = functionName(...);

   // Tu vas dans la catégorie de la langue voulue pour l'affichage
   //
   switch($iLang)
   {
      case uk:
         // Tu récupères le mot/la phrase 
         //
         $getText = $strMotDefault[$iClefMotByDefault];
      break;

      case nl:
         ...
      break;
     
      .
      .
      .
   }
}
C'est juste un exemple s'entend. C'était juste démontrer ma façon de penser face à ta question.
Du reste je reste, tout comme toi, à attendre d'autres réponses ;)

@+ ;)

Re: Config et Lang

par FredoMkb » 01 sept. 2009, 00:01

Merci pour vos réponses :)

Je viens de jeter un coup d'oeil à "YAML", j'aime bien le concept, mais je trouve la syntaxe un peu confuse, certes plus lisible que d'autres, mais bon, à première vue j'accroche pas trop...

Concernant le "XML", ça a l'air très intéressant, mais comme je n'ai encore jamais essayé, faut que je me penche plus sérieusement sur ses possibilités...

Enfin, à propos de "gettext", là c'est vraiment sur-dimensionné pour mon modeste projet...

Donc, pour l'instant, les pistes que je retiens et qui me paraissent convenir à mon développement sont :

- fichiers de type ".ini" (syntaxe simple et claire, parseur Php natif)
- fichier de type ".php" avec une variable de type tableau associatif

Faut que je regarde un peu mieux le "XML", c'est peut-être une piste à explorer un peu plus...

Merci en tout cas à tous de vos commentaires, j'attends encore un peu d'autres réactions avant de mettre "[résolu]" :)

Re: Config et Lang

par jojolapine » 31 août 2009, 22:59

Une solution pour des gros sites (à mettre en place dès le dapart, bien s'organiser, et avoir l'hébergement idouane), c'est gettext... Après pour un petit site avec une 20 aines de pages, des fichiers xml/php/autres sont bien suffisant!!!
Personnellement, j'utilise des fichiers php avec au choix: des variables (ou tableaux) ou bien des constantes (se pose la question de la performance...?)
rangés dans des dossiers fr/de/en/etc...

Re: Config et Lang

par Alkann » 31 août 2009, 22:51

Hello,

Je pencherais plutôt pour le XML avec un bon format, tu peux ensuite récupérer toutes les données par une requête XPath (rien de plus rapide pour récupérer des données dans un XML).
Cela te permet également d'avoir un fichier qui ne pardonne pas les erreurs (genre une balise mal fermée).

/my 2 echo

Re: Config et Lang

par FredoMkb » 31 août 2009, 22:44

Merci pour vos réponses :)

Le "XML", effectivement, c'est pas mal, mais je trouve que c'est un peu trop acrobatique tout de même... à comparer avec un simple tableau Php par exemple.

Le "Yaml" en revanche je ne connais pas... faut que je regarde ça...

Je penche également pour l'utilisation des ".ini" pour mon projet, je trouve que c'est assez simple à utiliser, mais, aurait-il des précautions à prendre côté sécuirté ?

Sinon, toujours avec mes questions à deux balles, pour la gestion des langues (des traductions donc), est-ce que l'utilisation des fichiers ".ini" ça peut fonctionner ou il y a mieux comme solution ?

Encore merci pour vos retours d'expérience... :)

Re: Config et Lang

par Berzemus » 31 août 2009, 21:53

Yaml est pas mal.

Perso, j'aime bien les inis. Il faut rendre son code configurable, c'est plus pratique.

Re: Config et Lang

par stopher » 31 août 2009, 20:23

Salut ,

personnellement , j'utilise du xml !

Rien de plus simple pour les exploiter avec simplexml() .

Mais il y a en effet de nombreuses autres méthodes .. aprés les gouts et les couleurs :D

Ch.

Config et Lang

par FredoMkb » 31 août 2009, 20:07

Bonjour à tous :)

Petite question, quelles sont les bonnes (meilleurs ?) solutions pour gérer des données de configuration ainsi que des langues (traductions) ?

J'ai vu que certains utilisaient des simples tableaux associatifs dans des fichiers ".php" autonomes, d'autres utilisent les fameux fichiers ".ini", d'autres des simples fichiers texte avec des données sérialisées, etc.

Quel est votre avis à ce sujet ?
Autrement, quelles solutions avez-vous adopté dans vos développements ?

Merci de vos lumières :)