Sto provando gettext, ma... si inventa le traduzioni 
Codice PHP:
putenv("LC_ALL=fr_FR");
echo setlocale(LC_ALL, "fr_FR", "fra_FRA");
bindtextdomain("messages", "./locale");
textdomain("messages");
echo "<br>" . _("search");
Il file ./locale/fr_FR/LC_MESSAGES/messages.po (Che ho poi compilato i un .mo)
codice:
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2014-08-27T15:21:11+02:00\n"
"POT-Creation-Date: 2014-08-27T15:21:11+02:00\n"
msgid "home"
msgstr "page d'accueil"
msgid "search"
msgstr "recherche"
Il risultato della pagina:
codice:
French_France.1252
cerca
Quel cerca nel file non c'è da nessuna parte 
(In realtà c'è, ma in un file che non dovrebbe centrare niente)