Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1780 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2206597
domi_bu
Posté le 13-10-2013 à 10:43:30  profilanswer
 

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
mood
Publicité
Posté le 13-10-2013 à 10:43:30  profilanswer
 

n°2206600
MaybeEijOr​Not
but someone at least
Posté le 13-10-2013 à 11:33:38  profilanswer
 

La bibliothèque est activée sur OVH?

n°2206605
domi_bu
Posté le 13-10-2013 à 12:12:22  profilanswer
 

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

n°2206658
rufo
Pas me confondre avec Lycos!
Posté le 14-10-2013 à 10:08:58  profilanswer
 

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
n°2206747
domi_bu
Posté le 14-10-2013 à 20:24:07  profilanswer
 

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.

n°2206758
olivthill
Posté le 14-10-2013 à 21:33:34  profilanswer
 

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

n°2206776
domi_bu
Posté le 15-10-2013 à 08:12:25  profilanswer
 

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
 
 

n°2206786
rufo
Pas me confondre avec Lycos!
Posté le 15-10-2013 à 10:12:02  profilanswer
 

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
n°2206809
MaybeEijOr​Not
but someone at least
Posté le 15-10-2013 à 15:30:12  profilanswer
 

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
n°2206819
rufo
Pas me confondre avec Lycos!
Posté le 15-10-2013 à 16:15:47  profilanswer
 

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
mood
Publicité
Posté le 15-10-2013 à 16:15:47  profilanswer
 

n°2206829
MaybeEijOr​Not
but someone at least
Posté le 15-10-2013 à 19:35:48  profilanswer
 

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.

n°2206861
rufo
Pas me confondre avec Lycos!
Posté le 16-10-2013 à 10:34:23  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
Préprod/Prod, cpan, activestate, intégration librairies[PHP] php_flag ne marche pas
PrestaShop: lien dans div ne marche pascréer un fichier xml et l'afficher dans un emplacement bien déterminé
char *pString; pString = "Bonjour"; pourquoi ca marche ?J'aimerais créer une fonction bien spéciale aidez-moi un peu svp ;)
Envoyer des alertes aux ordinateurs d'un réseau local en vbaReader Adobe PDF en local sur page HTML
[jquery] ca marche la première fois et pas les fois suivantesCréer un mini serveur local
Plus de sujets relatifs à : gettext marche bien en local , pas en prod ;-(


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR