Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/08/2009, 04:39
Avatar de Abyss
Abyss
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Traducción de PHP-Calendar

Bueno, al final encontré la solución tras días devanándome los sesos. Resulta que, casualmente, leí en un foro que los servidores con FreeBSD hacen caso omiso de la funcion setlocale() que sí iría en uno bajo Linux (y que usa el php-calendar). Estuve haciendo pruebas. Por ejemplo, esta tontería viene bien para ver si se detecta el alias de gettext():

Código:
<?php
if (function_exists('_')) {
    echo "Existe.<br />\n";
} else {
    echo "NO existe.<br />\n";
}
?>
Tras eso, me puse a hacer pruebas con setlocale, putenv y los locales. Al final, la opción que me funcionó fue, como ya he dicho, utilizar putenv(). Y respecto a los locales, es_ES.ISO-8859-1, ya que no pillaba otro para el español (ni es, ni es_ES, ni es_ES.UTF-8...).

Código:
<?php
$locale = 'es_ES.ISO-8859-1';
$dominio = 'messages';
$directorio = 'locale';

putenv("LANG=".$locale);
bindtextdomain($dominio, $directorio);
textdomain($dominio);
echo _('January'), '<br />', _('Invalid action');
?>
Al final, en el archivo setup.php, la cosa quedaría así:

Código:
        case 'es':
            putenv("LANG=".'es_ES.ISO8859-1');
			setlocale(LC_ALL, 'es_ES@euro', 'es_ES', 'es', 'es_ES.ISO8859-1');
			break;
Espero que esto ayude a alguien que en el futuro tenga estos problemas con la internacionalización de una aplicación y, de este modo, no pase por lo mismo que yo (y que me mande un MP saludando jaja).

Un saludo.

Última edición por Abyss; 02/09/2009 a las 05:56