Récupérer une variable dans un autre fichier ?

Récupérer une variable dans un autre fichier ? - PHP - Programmation

Marsh Posté le 09-08-2003 à 14:59:49    

Voilà,
 
Pour ce qui est du contexte, c'est pour le code d'un forum multilingue.
 
Ce forum possède des fichiers de langue (traductions) avec à l'intérieur des variables avec les libellés.
 
Par exemple, en français ça peut donner ça :

<?php
 
$lang['color'] = 'vert';
$lang['fruit'] = 'pomme';
 
?>


 
Et en anglais ça :

<?php
 
$lang['color'] = 'green';
$lang['fruit'] = 'apple';
 
?>


 
Or, par défaut une langue est paramétrée pour chaque user et une fonction include met à disposition des fichiers php les valeurs des variables dans la bonne langue.
 
Mais, j'ai besoin pour un cas particulier, quelque soit la langue sélectionnée pour le user d'aller rechercher un libellé en français.
J'ai donc besoin de rechercher la valeur d'une variable précise dans un fichier précis.
 
Comment faire ?
 
Car si je place un nouvel include dans le code, celà va basculer toutes les interrogations des variables de langue sur le nouveau fichier alors que je ne veux moi que récupérer 1 seule valeur ponctuellement :(  
 
Donc, j'ai mon chemin vers le fichier concerné...

Code :
  1. 'language/francais/libelles.php'


 
J'ai la variable à rechercher...

Code :
  1. $lang['libelle_x']


 
Et maintenant, comment récupérer la valeur ? :??:  
 
Merci d'avance :jap:


Message édité par -ET- le 09-08-2003 à 15:02:28
Reply

Marsh Posté le 09-08-2003 à 14:59:49   

Reply

Marsh Posté le 09-08-2003 à 16:08:38    

Voilà ce que j'ai fait perso pour un site en 4 langues
 
Un fichier pour chaque langue, english.php, francais.php, italiano.php, etc...
 
dans ces fichiers
 

Code :
  1. // accueil
  2. DEFINE('ACCUEIL_TITRE',"Home", true) ;
  3. DEFINE('ACCUEIL_FAVORIS',"Add to my favorites", true) ;
  4. // etc..


 
 
un fichier lang.php

Code :
  1. <?
  2. //session_start(); (déjà inclus)
  3. if (!isset($l))       // si pas de langue passée
  4. {
  5. if (!isset($_SESSION["lang"]))
  6.  $_SESSION["lang"] = "fr" ;  // langue par défaut
  7. }
  8. else
  9. $_SESSION["lang"] = $l ;
  10. if ($rep == "../" )      // zone admin : français
  11. {
  12. $_SESSION["lang"] = "fr" ;
  13. require_once ($rep."inc/francais.php" ) ;
  14. return ;
  15. }
  16. switch($_SESSION["lang"])
  17. {
  18. case "fr" :
  19. $_SESSION["lang"] = "fr";
  20. require_once ($rep."inc/francais.php" ) ;
  21. break ;
  22. case "de" :
  23. $_SESSION["lang"] = "de";
  24. require_once ($rep."inc/deutsch.php" ) ;
  25. break ;
  26. case "en" :
  27. $_SESSION["lang"] = "en";
  28. require_once ($rep."inc/english.php" ) ;
  29. break ;
  30. default :
  31. $_SESSION["lang"] = "fr";
  32. require_once ($rep."inc/francais.php" ) ;
  33. }
  34. ?>


 
que j'inclus dans chaque page. Il suffit alors de glisser dans tes page les mots-clés à remplacer. p. ex :  
 

Code :
  1. <? echo ACCUEIL_BIENVENUE ?>


 
Cette version à l'avantage que tu n'es pas obligé de passer à tous tes urls la langue vu qu'elle est dans les sessions. Mais rien t'empêche d'aller la changer
 


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 09-08-2003 à 17:49:14    

Merci de m'avoir répondu mais ça c'est une variante de ce qui existe déjà.
 
Imagine que tu partes sur "require_once ($rep."inc/deutsch.php" )" et que j'ai besoin tout à fait ponctuellement d'une valeur du fichier français, ou anglais, là je fais comment ?
 
C'est ça ma question :(

Reply

Marsh Posté le 09-08-2003 à 18:05:32    

c'est tjs les memes variables dans les meme langues que tu veux retrouver partout ?
dans ce cas la, le simple sera de creer un nouveau fichier ...

Reply

Marsh Posté le 09-08-2003 à 19:43:19    

tu lis ton fichier  
fopen
fread et tu t'arreres sur le terme que tu recheches pour recuperer la valeur ......  
 
ainsi tu n'as pas a faire d'inclusion [:spamafote]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 09-08-2003 à 22:42:52    

si c'est une valeur que tu dois utiliser quelque soit la langue en cours, tu la places dans un fichier de constantes indépendantes de la langue [:proy]  
pour les sites pluriluingues (ça se dit comme ça :??: ), j'ai un fichier constantes.php et un fichier langues.php

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed