Internacionalización con getText o I18n

smrsmr
edited julio 2010 in Principiantes
Buenos días,

Estamos intentando hacer una aplicación con varios idiomas y no hay manera que nos funcione con kumbia spirit beta 1.

Hemos hecho una web de prueba (sin kumbiaphp) y creando los ficheros .po con el poedit, nos funciona la traducción. El problema está cuando lo intentamos hacer en la aplicación hecha con kumbia, no hace la traducción. Hemos intentado usar gettext i también la clase I18n que viene en kumbia.

Da la sensación que no encuentra los ficheros en el locale, pero hemos hecho mil pruebas con la ruta y no hay manera.

Sin usar la libreria de kumbia I18n hemos probado a usar gettext y poner el siguiente código en el aplication controler como pone en el ejemplo de la wiki, también en el template default.html y incluso en el mismo view, pero en ningún caso funciona.
$language="es_ES";
putenv("LC_ALL=$language");
setlocale(LC_ALL, $language);
bindtextdomain("messages", APP_PATH."./locale");
textdomain("messages");

el archivo se llama messages.po, pero cuando probamos con I18n lo llamamos default.po

Haber si saben que puede ser... muchas gracias!

Comentarios

  • Antes de darte una respuesta, te invito a que mires en la Wiki el tutorial de KumbiaPHP y gettext donde se explica el procedimiento...
  • smrsmr
    edited 2:17
    Gracias Deivinson,

    Ya había leído y releído el manual, pero no he conseguido que funcione.
    He perdido muchas horas mirando este tema, pero no ha habido suerte.

    ¿Se te ocurre alguna cosa que pueda probar?
  • edited 2:17
    Intenta cambiar la linea del bindtextdomain por esta:
    bindtextdomain("messages", APP_PATH . 'locale');

    Saludos
  • smrsmr
    edited 2:17
    Gracias por tu respuesta Joanhey,

    Lo he probado y sigue sin funcionar. Tal como dices y por las pruebas que he hecho la ruta correcta es como tu dices, pero sigue sin darme la traducción.
    De todas formas me da la impresión que el error va por aquí...
  • edited 2:17
    Hola,

    Yo me encuentro con un problema muy parecido, tengo un servidor windows con Xamp, con la versión Php 2.9.x.

    He seguido el tuto, paso a paso y no me reconoce las llamadas a las palabras clave.

    Como smr, comenta que es algo de los paths he probado de crear un php en la carpeta languages y si que funciona pero al traspasar el código de llamada a un view y el de inicialización en el active controller, no me funciona.

    Alguien sabe como solucionarlo? Si no tendré que optar por algún otro método para tener un portal multidioma.

    Muchas gracias.
  • edited 2:17
    Me parece que el problema no es kumbia sino el servidor. Tal vez no lo soporta. ¿Que servidor usan?
  • En windows eso es muy complicado, ya que su comportamiento no es el mismo lo propio para manejar i18n es SO Linux...

    Y como bien dice damvaz es un problema del servidor, haz de verificar los locales y demas...

    Éxitos!
  • smrsmr
    edited 2:17
    Consiguido!!!!!

    Gracias a todos por las respuestas.
    Lo estaba haciendo bien, pero por algún motivo que desconozco cada vez que modifico el archivo .po tengo que reiniciar el apache para que se muestren los cambios.
    ¿Es normal? ¿Tiene alguna explicación?

    Pruebalo victor, haber si tienes suerte!

    Saludos
  • edited 2:17
    Bueno, tal vez a algunos no les guste esta respuesta pero aqui va:

    Si tu sitio es pequeño y el contenido no cambia a menudo, te conviene usar gettext.

    Pero si es un sistema CMS donde a cada rato se cambia el contenido, ya no conviene porque el programador estará supeditado a los caprichos del SO. En estos casos se usa base de datos, archivos ini o simplemente includes guardados en alguna carpeta llamada "lenguajes" o algo parecido.

    Creanme, estoy hablando por experiencia. Usar gettext algunas veces conviene, pero otras no.
    Disculpen si ofendo las costumbres de algunos. <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: -->
  • No creo que ofendes, mas bien es una apreciación de acuerdo a tu experiencia que la veo totalmente válida, asi que deberían tomar en cuanta tu sugerencia y posiblemente generar alguna discución sobre el tema...

    Por último compartu tu apreciación y digo que un sitio con bastante contenido dinámico por un sitio de noticias todo el contenido estatico lo agregaría vía gettext y de acuerdo al idioma se generan las noticias, claro quizas es un ejemplo muy general pero ciertamente la idea va en este mismo camino...

    Éxitos!
  • smrsmr
    edited 2:17
    Estoy de acuerdo!

    Creo que en mi caso me interesa usar gettext ya que estoy desarrollando una aplicación y los cambios de texto son mínimos.
Sign In or Register to comment.