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:
La estructura de las carpetas es esta:<?php $language="esp_esp"; putenv("LC_ALL=$language"); setlocale(LC_ALL, $language); bindtextdomain("lang", "./locale"); textdomain("lang"); echo gettext("Hola"); ?>
-- 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:
La verdad es que ya no sé qué más probar. Ando un poco perdido ¿A alguien se le ocurre qué puede estar fallando?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"
Muchas gracias. Un saludo