Foros del Web » Programando para Internet » PHP »

Web En Varios Idiomas

Estas en el tema de Web En Varios Idiomas en el foro de PHP en Foros del Web. Hola a todos, me gustaría que alguien me esplicase. Dos cosas (o por lo menos una de ellas) por favor: Primera Como realizar una web ...
  #1 (permalink)  
Antiguo 17/04/2007, 07:43
 
Fecha de Ingreso: septiembre-2006
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Busqueda Web En Varios Idiomas

Hola a todos, me gustaría que alguien me esplicase. Dos cosas (o por lo menos una de ellas) por favor:

Primera
Como realizar una web en varios idiomas (X). Con sus contenidos almacenados. No en variables en ficheros sino en una Base de Datos. ¿Por qué? porque pienso que es más fácil de actualizar y más facil de manejar la información. Aunque no tengo mucha idea y puede que diga una tontería.

Segunda
He oido hablar muy bien de Gettext. Pero en ningun lado he encontrado una explición de como se usa (instalación y ejemplos practicos con código y todo) y para qué (también se usa para contenido o sólo para menús y demás partes "fijas" de la web). Y mucho menos nada en castellano.

Un cosa más

Como se hace para que cuando el usuario está en cualquier sitio de la web y pincha en la banderita de inglaterra (por ejemplo). Se le redireccione a esa mis página pero en inglés???

He estado mirando y por ningún lado he visto un sitio que se pare ha explicar paso a paso como hacer multidioma una web. Si me dais la dirección de algún tutorial o algo así también estaría bien.

Sé que lo que acabo de pedir es mucho, pero pienso que el tema de las webs multidiomas es muy interesante. y si me responden aquí a mí, esto le servirá a mucha gente. Pero repito esto lo pienso yo y tal vez vuelva a decir una tontería.

Gracias
  #2 (permalink)  
Antiguo 17/04/2007, 08:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Web En Varios Idiomas

Mira si te es muy complicado usar getText y sus alias, puedes optar por hacer un sistema propio de traduccion usando enteros y una base de datos, donde tengas una tabla de idiomas:
idString - Entero PK Autonumerico
idLang - Entero FK
LangCode - Entero
LangString - Texto

Entonces por decir por alguna parte defines que idioma vas a usar (ejemplo Ingles = 1, entonces a la hora de imprimir un string envias un query, buscas por numero el string y lo imprimes, algo asi:
Código PHP:
function gettransText$code$lang ) {
     
$conn mysql_connect();
     
mysql_select_db$tuDb$conn );
     
$query "SELECT `LangString` FROM `textos` WHERE `idLang`=$lang AND `LangCode`=$code LIMIT 1";
     
$result mysql_query$query ) or die( mysql_error() );
     
$row mysql_fetch_array$result );

     return 
$row[0];

Y asi imprimes todos tus textos, la ventaja de usar gettext es que automaticamente, hace cacheo y es muy rapido, al contrario de una version en una base de datos donde es mas lento el acceso por cada string.

Para contestar tu ultima pregunta, solo es cuestion de que tengas definido una variable de sesion, y cada que picas una banderita le envias el codigo y cambias tu variable de sesion que te define el idioma.

Salu2.
  #3 (permalink)  
Antiguo 18/04/2007, 01:49
 
Fecha de Ingreso: septiembre-2006
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Web En Varios Idiomas

Muchas gracias por tu respuesta GatorV, aunque como puedes ver por el número de mis mensajes. No soy muy entendido y tu explicación la entiendo pero se me queda corta.

Me podrías decir lo mismo pero con más código de ejemplo. Te lo agradecería muchísimo. Por otro lado noto que tu entiendes de Gettext. Me puedes recomendar algún tutorial o darme alguna explicación de su funcionamiento con código de jemplo...

No sé, espero no estar pidiendo mucho. Pero pienso que las cosas sólo se aprenden combinando dos métodos:

-VIENDOLAS HACER (tú en este caso, internet en general)
-HACIENDOLAS (esto es cosa mía)

Por este orden

Gracias
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




La zona horaria es GMT -6. Ahora son las 22:37.