SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: aobradors en Martes 14 de Febrero de 2006, 14:45

Título: Web Multilenguaje
Publicado por: aobradors en Martes 14 de Febrero de 2006, 14:45
Hola, tengo que desarrollar un proyecto web con PHP y MySQL, donde tendra una parte privada para entrar los contenidos y una parte publica, para visualizarlos.

Los contenidos se tienen que poder entrar en 4 idiomas, y naturalmente en la parte publica mostrar segun el idioma escogido.

¿Cual es la mejor forma de diseñar los formularios para poder entrar los contenidos en los 4 idiomas?

Saludos y gracias.
Agustín
Título: Re: Web Multilenguaje
Publicado por: NRM en Martes 14 de Febrero de 2006, 15:27
Gettext seria una buena solucion.

http://ar.php.net/gettext (http://ar.php.net/gettext)

http://www.onlamp.com/pub/a/php/2002/06/13/php.html (http://www.onlamp.com/pub/a/php/2002/06/13/php.html)
Título: Re: Web Multilenguaje
Publicado por: gnfrs en Martes 14 de Febrero de 2006, 17:56
Si no hay soporte para gettext en el servidor ???
Mmmmm...

Qué probabilidades hay de que un servidor tenga instalada esta extensión? Sí las probabilidades son altas sería una muy buena opción...
Título: Re: Web Multilenguaje
Publicado por: NRM en Martes 14 de Febrero de 2006, 19:49
Cita de: "gnfrs"
Si no hay soporte para gettext en el servidor ???
Mmmmm...

Qué probabilidades hay de que un servidor tenga instalada esta extensión? Sí las probabilidades son altas sería una muy buena opción...
Si no contas con soporte para gettext en el server podes usar lo siguiente.

http://savannah.nongnu.org/projects/php-gettext (http://savannah.nongnu.org/projects/php-gettext)

Lo probe y funciona muy bien.
Título: Re: Web Multilenguaje
Publicado por: gnfrs en Miércoles 15 de Febrero de 2006, 13:20
Muy bueno, lo bajé pero me muestra algunos errores en los ejemplos, voy a seguir probandolo.

Gracias por el dato.
Título: Re: Web Multilenguaje
Publicado por: gnfrs en Miércoles 15 de Febrero de 2006, 14:00
Está hecha a medio pelo esa clase, tiene varios errores...
Voy a tratar de corregirlos e infromar a los creadores de la clase.

Saludos...
Título: Re: Web Multilenguaje
Publicado por: gnfrs en Miércoles 15 de Febrero de 2006, 14:21
Otra vez yo...

La clase funciona perfectamente salvo por algunos errores que comento acá:

En pigs_dropin.php hay que reemplazar esto

Código: Text
  1. define(PROJECT_DIR, realpath('./'));
  2. define(LOCALE_DIR, PROJECT_DIR .'/locale');
  3. define(DEFAULT_LOCALE, 'en_US');
  4.  
  5.  

con esto

Código: Text
  1. define('PROJECT_DIR', realpath('./'));
  2. define('LOCALE_DIR', PROJECT_DIR .'/locale');
  3. define('DEFAULT_LOCALE', 'en_US');
  4.  
  5.  

Código: Text
  1. setlocale(LC_MESSAGES...
  2.  
No existe en PHP 4

En streams.php hay que agregar
Código: Text
  1. $data = '';
  2.  
en la línea 100 o reemplazar
Código: Text
  1. $data  .= $chunk;
  2.  
con
Código: Text
  1. @$data  .= $chunk;
  2.  
en la línea 113.

Hay un par de notices más que se muestran por definir constantes sin las comillas, aclaro que yo tengo error_reporting(E_ALL) así que puedo ver todos los notices que se producen...

Es necesario el @ delante de la variable $data porque se está concatenando una cadena que nunca fue inicializada y eso genera un NOTICE.

Además para poder utilizar esta librería es necesario tener la extensión mbstring instalada en PHP (en Windows sólo hay que sacar el ; delante de la respectiva línea en PHP.ini)

Con eso funcionó muy bien la librería.

Saludos.
Título: Re: Web Multilenguaje
Publicado por: aobradors en Miércoles 15 de Febrero de 2006, 15:51
Interesante el Gettext, pero yo tengo que crear unos forms relacionados con una base de datos MySQL, para poder introducir los contenidos en los 4 idiomas. Luego, en el portal publico, dependiendo del idioma, tengo que mostrar los contenidos del idioma escogido.

Alguna sugerencia.

Saludos.
Agustín
Título: Re: Web Multilenguaje
Publicado por: gnfrs en Miércoles 15 de Febrero de 2006, 16:54
Ahhh cagamos...
A ver, hacete 3 tablas: 1 de referencia, 1 de palabras y 1 de idiomas.
La de referencia tiene los nombres de las palabras.
La de palabras tiene el código de referencia, el código de idioma y su respectiva traducción.
Entonces cuando seleccionás italiano por ejemplo hacés una consulta en la tabla de palabras filtrando por palabra y/o idioma y obtenés su respectiva traducción...

Se me ocurrió ahora, por lo que puede que haya un método mejor o más eficiente.

Saludos.

PD: ¿Se entendió algo o expliqué para el or..?
Título: Re: Web Multilenguaje
Publicado por: aobradors en Viernes 17 de Febrero de 2006, 09:29
Si que se entiende.

Otra cosa, como se puede crear el formulario para introducir los contenidos en les 3 o 4 idiomas, quiero decir, si tengo que dar de alta un articulo con su nombre y descripcion en los 4 idiomas, que es mejor, un solo formulario donde tenga el campo titulo 4 veces y el campo descripcion tambien 4 veces?

Saludos.
Agustín
Título: Re: Web Multilenguaje
Publicado por: ibito en Viernes 17 de Febrero de 2006, 17:41
creo que esa sería le mejor manera, o si no, la mas sencilla y rápida.