OVH Cloud OVH Cloud

Probleme avec gettext

1 réponse
Avatar
Daniel CAUSSE
Bonjour,

j'essaye actuellement de tester l'utilisation de gettext sur mon site.

Je n'ai pas eu de problème pour generer les fichiers messages.po avec
xgettext, j'ai réussi à compiler pour obtenir les fichiers messages.mo,
j'ai créé toute l'arborescence mais au final, les tests d'utilisation
avec un script se contentent d'afficher le msgid.

Je n'ai aucun warning ou message d'erreur et comme je sèche un peu sur
la cause du problème, toute aide est la bienvenue.

Source d'un fichier messages.po :
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2004 Free Software Foundation, Inc.
# Daniel xxx <xxx@yyy.com>, 2004.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2004-07-06 13:30+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Daniel xxx <xxx@yyy.com>\n"
"Language-Team: French <traduc@traduc.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"

# Exemples de texte a traduire

msgid "ADM0001"
msgstr "Traduction en cours ..."

msgid "ADM0002"
msgstr "Verifiez les valeurs de vos variables"

Source du script de test :
// Specification de la langue dans la variable d'environnement LANG.
putenv("LANG=en_US");
$vLocale = setlocale(LC_ALL, "en_US");

// Test de gettext
$vDomaine = "messages";
$vBind = bindtextdomain($vDomaine, "./gettext/locale/");

$vTextDomain = textdomain($vDomaine);

echo gettext("ADM0001");
echo "<BR />\n";
echo gettext("ADM0002");
echo "<BR />\n";
echo _("ADM0001");
echo "<BR />\n";
echo _("ADM0002");
echo "<BR />\n";

J'ai vérifié le résultat de putenv, setlocale, bindtextdomain et
textdomain en affichant les valeurs et tout fonctionne correctement à
première vue.

Cordialement,
Daniel

1 réponse

Avatar
Daniel CAUSSE
Bonjour,

A force d'essayer des modifications dans tous les sens, j'ai fini par
trouver qu'il faut appliquer putenv sur LANGUAGE et non sur LANG.

Ne me demandez pas pourquoi, je n'en ai aucune idée puisque toutes les
docs que j'ai consultées appliquent le putenv sur la variable LANG.

En espérant que cette expérience puisse servir à d'autres.

Cordialement,
Daniel