Hola.
Estoy intentanto montar un sistema multiidioma en una web y no soy capaz de hacerlo funcionar. Estoy utilizando gettext con archivos .mo y .po. He encontrado
este tema en el foro, pero no ha solucionado mi problema. He probado diferentes nomenglaturas, diferentes idiomas y no lo consigo. He cogido código de un millón de sitios para probar pero no consigo que funcione. Además, la web no muestra ningún mensaje de error ni ningún warning, simplemente, me muestra la cadena sin traducir.
Tengo un servidor apache 2.2.11 con php 5.3.0 sobre Windows con WAMP. Está la librería gettext instalada en el php.ini. Mi código es el siguiente:
Código:
<?php
$language="esp_esp";
putenv("LC_ALL=$language");
setlocale(LC_ALL, $language);
bindtextdomain("lang", "./locale");
textdomain("lang");
echo gettext("Hola");
?>
La estructura de las carpetas es esta:
-- index.php
-- locale
-- -- esp_esp
-- -- -- LC_MESSAGES
-- -- -- -- lang.mo
-- -- -- -- lang.po
He probado con diferentes códigos de lenguaje (esm_esp, en_GB, eng, esp) cambiando también el nombre de la carpeta y reiniciando el apache con cada cambio. El archivo lang.po es el siguiente:
Código:
msgid ""
msgstr ""
"Project-Id-Version: prueba1\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Pablo <[email protected]>\n"
"Language-Team: equipo1 <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Spanish\n"
"X-Poedit-Country: SPAIN\n"
"X-Poedit-SourceCharset: utf-8\n"
#: Hola
msgid "Hola"
msgstr "Hello"
La verdad es que ya no sé qué más probar. Ando un poco perdido ¿A alguien se le ocurre qué puede estar fallando?
Muchas gracias. Un saludo