Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

Traducción de PHP-Calendar

Estas en el tema de Traducción de PHP-Calendar en el foro de Sistemas de gestión de contenidos en Foros del Web. Hola a todos, Os rogaría, si alguno ha tenido un problema similar al mío, que me echarais una pequeña mano con este asunto que me ...
  #1 (permalink)  
Antiguo 29/08/2009, 07:22
Avatar de Abyss  
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 4 meses
Puntos: 0
Traducción de PHP-Calendar

Hola a todos,

Os rogaría, si alguno ha tenido un problema similar al mío, que me echarais una pequeña mano con este asunto que me está volviendo loco debido a mi inexperiencia supongo.

He instalado "php-calendar" en el hosting compartido que tengo contratado y todo ha marchado correctamente. El calendario funciona muy bien tanto en su versión estable como en la beta.

El problema viene con las traducciones (usa gettext). Según las instrucciones del creador, hacer que las traducciones funcionen correctamente no es una tarea automatizada aún:
  1. You will need to make sure that you have the locale for the desired language installed. This is very much system dependent. On Debian run 'dpkg-reconfigure locales' as root and select the desired locale.
  2. You will need to generate the messages.mo files for each language. In the LC_MESSAGES directory for each language you will need to run the command 'msgfmt -o messages.mo messages.po'

Supongo que las locale estarán instaladas en el servidor correctamente. Y el archivo .mo lo he generado con Poedit sin problemas. He hablado con el hosting y me han comentado que han activado la librería gettext y me han dado la ruta donde está ubicada.

Sin embargo, esto sigue sin funcionar.
  • ¿Influye que en lugar de usar la función gettext(), php-calendar utilice el alias _()?

Os agradezco vuestro interés y cualquier ayuda que podáis prestarme será bienvenida.

Última edición por Abyss; 01/09/2009 a las 15:55
  #2 (permalink)  
Antiguo 31/08/2009, 04:39
Avatar de Abyss  
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 4 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:38.