Hello,
I'm testing gettext on my website but it doesn't work.
phpinfo returns correct informations:
configure command => '--with-gettext=/usr'
GetText Support => enabled
I have no problem to create messages.mo and messages.po files.
I've created all directories under a 'locale' root directory
../locale/fr_FR/LC_MESSAGES/messages.mo
../locale/fr_FR/LC_MESSAGES/messages.po
../locale/en_US/LC_MESSAGES/messages.mo
../locale/en_US/LC_MESSAGES/messages.po
Here's the source of a fr_FR messages.po (en_US is similar):
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2004 Free Software Foundation, Inc.
# Daniel xxx <xx*@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 <xx*@yyy.com>\n"
"Language-Team: French <tr****@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"
Here's the source of a test script:
// Specification de la langue dans la variable d'environnement LANG.
$vLang=getenv("LANG");
echo "Variable d'environnement LANG = " . $vLang;
echo "<BR />\n";
putenv("LANG=en_US");
$vLang=getenv("LANG");
echo "Variable d'environnement LANG = " . $vLang;
echo "<BR />\n";
$vLC_ALL = getenv("LC_ALL");
echo "Variable d'environnement LC_ALL = " . $vLC_ALL;
echo "<BR />\n";
$vLocale = setlocale(LC_ALL, "en_US");
echo "Variable locale LC_ALL = " . $vLocale;
echo "<BR />\n";
$vLC_ALL = getenv("LC_ALL");
echo "Variable d'environnement LC_ALL = " . $vLC_ALL;
echo "<BR />\n";
// Test de gettext
$vDomaine = "messages";
$vCodeset = bind_textdomain_codeset($vDomaine, "ISO-8859-1");
echo "Resultat de bind_textdomain_codeset = " . $vCodeset;
echo "<BR />\n";
$vBind = bindtextdomain($vDomaine, "./gettext/locale");
echo "Resultat de bindtextdomain = " . $vBind;
echo "<BR />\n";
$vTextDomain = textdomain($vDomaine);
echo "Resultat de textdomain = " . $vTextDomain;
echo "<BR />\n";
echo gettext("ADM0001");
echo "<BR />\n";
echo gettext("ADM0002");
echo "<BR />\n";
echo gettext("ADM0003");
echo "<BR />\n";
echo _("ADM0001");
echo "<BR />\n";
echo _("ADM0002");
echo "<BR />\n";
echo _("ADM0003");
echo "<BR />\n";
Here's the result of th script:
Variable d'environnement LANG = en_us
Variable d'environnement LANG = en_US
Variable d'environnement LC_ALL = en_US
Variable locale LC_ALL = en_US
Variable d'environnement LC_ALL = en_US
Resultat de bind_textdomain_codeset = ISO-8859-1
Resultat de bindtextdomain = /home/web/site123/admin/gettext/locale
Resultat de textdomain = messages
ADM0001
ADM0002
ADM0003
ADM0001
ADM0002
ADM0003
I don't understand what's wrong, I've run the test script with fr_FR
configuration too, the result is the same, only the msgid is displayed,
help needed.
Regards,
Daniel