Gettext PHP probleme

Résolu/Fermé
imike - 20 nov. 2015 à 15:36
 imike - 21 nov. 2015 à 18:35
Bonjour,

J'ai installé gettext sur mon serveur, je l'utilise sur un site en php pour une traduction en 3 langues.

Le site originale dans la source php est écrit en anglais.

Les autres langues sont les français et l'italien.

Je peux sans problème changer de langue vers le français ou l'italien.. Mais lorsque j'essaie de charger le fichier correspondant à l'anglais afin d'overrider les textes originaux, ça ne fonctionne pas. En gros, toutes les langues chargent correctement leur fichier .mo sauf l'anglais avec son en_EN.mo

J'ai essayé plein de chose... restart apache, régénérer le fichier etc... Sans résultat.

Je peux créer une nouvelle langue, j'ai testé par exemple avec l'allemand et pas de problème. Les traductions sont affichées.

Mes traductions respectent toutes la même arborescence.

locale

en_EN
LC_MESSAGES
en_EN.mo
fr_FR
LC_MESSAGES
fr_FR.mo
...

Même en essayant de forcer l'usage du fichier de trad english..

$directory = './locale';
$domain ='en_EN';
$locale ='en_EN';

putenv('LC_ALL='.$locale);
setlocale(LC_ALL, $locale);
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');


Je n'obtiens pas de résultat

Je ne sais pas quoi faire pour débuger ça.. Connaissez-vous une méthode ? Des fichiers log ? Un moyen de voir les erreurs ?

Je n'arrive pas comprendre pourquoi tout fonctionne sauf pour une langue.. J'ai régénéré à plusieurs reprise le fichier mo avec Poedit. De la même façon que pour les autres langues..

Si quelqu'un a une idée je suis preneur..

Mercii

A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
20 nov. 2015 à 16:25
Salut,

Je n'ai malheureusement pas de solutions à te proposer mais tu devrais pouvoir trouver les erreurs PHP dans le journal d'erreur d'Apache (nommé en général error_log ou error.log dans le dossier /var/log/apache2 si tu es sur linux).

Je ne sais pas si cela a un rapport mais il semble que la locale en_EN n'existe pas, en effet il existe plusieurs locales anglaises selon le pays, par exemple en_GB ou en_US, mais pas de en_EN.

En espérant que cela t'aide à avancer.

Bonne journée
0
Merci,

c'était effectivement un problème lié à en_EN..

Mais j'ai toujours pas très bien compris le fonctionnement...

dans xx_YY

xx correspond à la langue et YY doit correspondre au pays... Mais si je ne souhaite pas cibler un pays plus rien ne fonctionne... Pourtant quand je créais un fichier avec poedit.. Je peux parfaitement créer un fichier de langue avec uniquement 'en' sans préciser le pays.. Je n'ai jamais réussis à utiliser une traduction de type "en.mo".. Donc j'ai triché en forçant un en_US..
0