Hola a todos.
Bien, hace unos días supe de la existencia de una aplicación para internacionalizar páginas web y software, y me refiero a gettext.
Francamente, lo que vi me encantó mucho, así que me dispuse a probarlo por mí mismo, pero sin éxito.
Dejo aquí los pasos que hago:
1) Creo un archivo, por ejemplo prueba.php, y en él pongo lo siguiente:
Código:
<form id="Idioma" name="Idioma" action="">
<label for="language-select"><? echo _("Idioma"); ?>:</label>
<select id="language-select" name="languagesel" onchange="gotoFunction();">
<option value="http://127.0.0.1/prueba/prueba.php?l=de">Deutsch</option>
<option value="http://127.0.0.1/prueba/prueba.php?l=es">Español</option>
</select>
</form>
<?php
bindtextdomain('messages', './locale');
textdomain('messages');
switch ($_GET['l']) {
case 'es':
setlocale(LC_ALL,'es_ES');
break;
case 'en':
default:
setlocale(LC_ALL,'de_DE');
break;
}
echo _('Hola mundo');
?>
2) creo el archivo messages.po, lo muevo a locale/es_ES/LC_MESSAGES/, luego copio ése a locale/de_DE/LC_MESSAGES/, y en ése último le pongo la traducción (Idioma / Sprache, Hola mundo / Hallo Welt), con el charset utf-8.
3) creo el archivo messages.mo.
Y ya está. Ahora se supone que cuando selecciono el idioma Deutsch, se ve la traducción que hice. Pero no es así, sino que se sigue viendo en español.
Quisiera saber cuál es el problema. Esto lo hice a partir de este tutorial: http://www.sourcerally.net/regin/49-How-to-get-PHP-and-gettext-working-%28ubuntu,-debian%29
Gracias.
EDIT: Ya intenté otras maneras para hacer lo mismo, y ninguna funciona. El caso es que necesito que se cambie el idioma de una web completa simplemente seleccionando dicho idioma desde un formulario php, como el que se ve en la página principal de wordpress.com. Igual hace falta mysql, y esperemos que no porque eso es una tortura para mí.