gettext marche bien en local , pas en prod ;-(

gettext marche bien en local , pas en prod ;-( - PHP - Programmation

Marsh Posté le 13-10-2013 à 10:43:30    

Bonjour
 
Je ne comprends pas ce qui cloche dans le gettext que j'ai mis en place. Ca fonctionne nickel en local (windows XP +  php 5.4.3). Ca marche pas chez OVH.  
 
Ca marche en local : j'ai bien le fichier 'po' et 'mo' dans les bons répertoires. Et

Code :
  1. echo gettext('bonjour')

affiche bien "bonjour" ou "hello" selon que je passe le code langue "fr_FR" ou "en_GB" en get. J'ai passé toute ma soirée d'hier soir à comprendre comment ça marchait (car peu de tuto) et enfin ça marche en local.  
 
Et voilà qu'en mettant tout ça en prod ce matin chez ovh, patatra : rien ne fonctionne .JE soupçonne un pb de locale car en local je suis sous windows et en prod chez ovh sous linux (je pense). Et d'apres ce que je lis ça peut influer sur le gettext. Mais voilà je suis bloqué.  
 
Y a t-il des précautions particulières à prendre chez OVH ?  
Qui peut me faire son retour d'expérience sur le gettext (entre chez lui et en prod chez ovh).
Peut etre faut il redémarrer le server d'appli ? (et là c'est pas possible évidemment je suis en mutualisé) ?
 
Merci beaucoup.
 
DOminique


Message édité par domi_bu le 13-10-2013 à 10:45:05
Reply

Marsh Posté le 13-10-2013 à 10:43:30   

Reply

Marsh Posté le 13-10-2013 à 11:33:38    

La bibliothèque est activée sur OVH?

Reply

Marsh Posté le 13-10-2013 à 12:12:22    

Hello
 
Oui j'imagine que cette extension est activée, sans quoi j'aurai un méchant message d'erreur. Et ce n'est pas le cas. Ma page affiche les libellés non traduits (l'id en quelque sorte).  
 
Mais j'ai lu que fallait redémarrer le serveur , et comme je suis en mutualisé j'ai pas la main la dessus. JE continue à chercher. Merci pour ta réponse.  
Dominique

Reply

Marsh Posté le 14-10-2013 à 10:08:58    

ES-tu sûr que les msg d'erreurs sont pas désactivés ? En général sur un serveur de prod, ils sont désactivés pour pas révéler de possibles failles de sécurité...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-10-2013 à 20:24:07    

hello. Oui les messages d'erreur sont bien activés.La moindre erreur de code quelque part (accés bdd, exception diverses et variées, etc...) apparaissent en clair.  
 
J'avais bon espoir ce matin que ce pb de gettext qui je marche pas soit résolu. Car peut être qu'ovh reboot ses serveurs mutualisés la nuit... Mais non rien de neuf. Ca ne marche pas.

Reply

Marsh Posté le 14-10-2013 à 21:33:34    

La documentation, http://www.php.net/manual/en/function.gettext.php, conseille de faire aussi un putenv().
Voir les exemples qui suivent les explications.

Reply

Marsh Posté le 15-10-2013 à 08:12:25    

hello olivthill
 
J'utilise bien un putenv("LANG=fr_FR" ).  
 
Ca marche parfaitement chez moi en local (windows) et pas chez ovh (linux j'imagine). Je pense qu'il s'agit d'un pb de locale mais j'arrive pas à trouver de la doc sur le sujet (ni en français, ni en anglais). A croire que le multilinguisme n'est pas géré avec gettext() dans la majorité des cas...JE vais poser la question à OVH et je vous tiens au courant.  
 
Merci tout de même pour ta réponse.  
 
Dominique
 
 

Reply

Marsh Posté le 15-10-2013 à 10:12:02    

C'est vrai que perso, je me suis fait mon propre système pour le multilinguisme. Un fichier php par langue, chaque texte est une variable qui est appelée dans les autres fichiers de l'IHM. Dans mon fichier Config.php, j'ai une variable qui définit la langue et un fichier qui contient un switch() permettant de charger le bon fichier langue. Ca marche bien et c'est simple à gérer, pas besoin de passer par une lib qui pourrait potentiellement faire chier, comme dans ton cas :D


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-10-2013 à 15:30:12    

Oui en général tu gères ça avec un bête tableau :
 
$lang['id'];
 
 
Un fichier fr.php :
 

Code :
  1. $lang = array(
  2. 'id1' => 'trad_fr_1',
  3. 'id2' => 'trad_fr_2',
  4. 'id3' => 'trad_fr_3',
  5. ...
  6. );


 
 
Un fichier en.php :
 

Code :
  1. $lang = array(
  2. 'id1' => 'trad_en_1',
  3. 'id2' => 'trad_en_2',
  4. 'id3' => 'trad_en_3',
  5. ...
  6. );


 
 
Et en fonction de la langue choisit tu include le fichier de traduction nécessaire.


Message édité par MaybeEijOrNot le 15-10-2013 à 15:30:46
Reply

Marsh Posté le 15-10-2013 à 16:15:47    

Oui, c'est ça l'idée.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-10-2013 à 16:15:47   

Reply

Marsh Posté le 15-10-2013 à 19:35:48    

J'ajoutais la notion de tableau car tu parlais de variables, tu sous-entendais peut-être des tableaux mais ce n'était pas explicite. On peut aussi faire avec de nouvelles variables à chaque fois mais bon après ton code est moins clair.

Reply

Marsh Posté le 16-10-2013 à 10:34:23    

Suivant mes aplis, j'ai fait les 2 systèmes : ensemble de variables globales ou tableau associatif. Pour les variables globales, elles sont nommées du genre $LANG_MODULE_PAGE_FONCTION (MODULE représente le nom du module, PAGE, le nom de la page web où elle est utilisée et FONCTION, la fonction du texte au sein de la page). Les textes "génériques" (= utilisables dans plusieurs pages) sont nommés $LANG_MODULE_FONCTION voire carrément $LANG_FONCTION.
 
Je l'ai jamais vérifié mais je me demandais si, dans le cas de grosses applis, toutes les traductions dans une seule variable tableau ne consommait pas plus de mémoire ? En effet, avec des variables globales, y'a aussi la possibilité de faire un fichier langue par module; du coup, on peut charger que les traductions dont on a besoin et pas toutes les traductions de l'appli...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

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