Ver Mensaje Individual
  #21 (permalink)  
Antiguo 06/12/2013, 17:45
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: Idiomas en la web, como lograrlo?

Cita:
Iniciado por leonaryoel Ver Mensaje
Mi web tiene la opción de varios idiomas, tengo una página donde declaro las variebles y le doy los valores en los diferentes idiomas, es decir una página para cada idioma. El problema lo tengo a la hora de actualizarla, le hice un sistema administrativo para poder actualizar las noticias las cuales se guardan en una bd en mysql, pero no tengo ni la más remota idea de como hacer para que la noticia se vea en varios idiomas, alguin me puede ayudar???
Intentando aportar algo, aunque en este foro se está poniendo difícil ultimamente...
En principio, la opción de guardarmicorreo es correcta:

Cita:
Iniciado por guardarmicorreo
un contenido tiene una id única en la DB y uno o varios id foráneos que apuntan a cada versión del contenido en otro idioma. este contenido lo puedes mostrar según el lenguaje que seleccione el usuario con un botón. de manera que si el usuario pulsa sobre la versión en inglés, una variable de sesión con valor string "english" por ejemplo puede servir como parámetro a una consulta a una BD.
Pero hay un pequeño matiz que puede ser una ventaja, a partir de la frase:

Cita:
Iniciado por guardarmicorreo
apuntan a cada versión del contenido en otro idioma. este contenido lo puedes mostrar según el lenguaje que seleccione el usuario con un botón
El anterior, es 1 de al menos 2 posibles casos:
- Todas las noticias (contenidos) *tienen* que estar traducidas en todos los idiomas de la web.Existe un id de contenido, que tiene traducciones.
Un ejemplo de esto sería el manual de PHP.Cada página de manual tiene un id, y en otra tabla existen versiones en cada idioma de esa página de manual.
Es posible que tú quieras navegar de la versión en castellano, a la versión en inglés de ese mismo *contenido*.

Pero hay otra opción:
- Las noticias (contenidos) no tienen por qué estar traducidas en todos los idiomas.No puedes navegar de una versión en castellano a una versión en inglés de ese mismo contenido.
Pero , lo que ocurre, es que éste caso es común.
Si lo que tienes son noticias, el visitante no va a navegar de la versión en castellano a la versión en inglés de la noticia; el visitante usará la versión en castellano o en inglés de *tu web* al completo.
Entonces, es posible que tengas simplemente noticias en castellano, y noticias en inglés.Lo que ocurre es que las noticias en inglés, son traducciones de las noticias en castellano...o no.

En el primer caso, tienes 1 tabla llamada "noticias", que tiene un campo "id", y otra tabla "noticiasLenguaje" que tiene un id_noticia, id_lenguaje, textoNoticia.

En el segundo caso, no necesitas la tabla "noticias".Con "noticiasLenguaje" es suficiente.Pero la noticia "A" escrita en español, y la noticia "A" escrita en inglés, no tienen relación ninguna entre sí.Son 2 noticias independientes.

El primer modelo te permite identificar qué noticias no han sido traducidas a todos los lenguajes.
El segundo te hace más fácil tener contenidos en un lenguaje, que no tiene sentido que sean traducidos a otros lenguajes. (esto crearía "excepciones" en el primer modelo, que tendrías que distinguir de los casos en los que realmente faltan traducciones).Ejemplos de este tipo de noticias (o contenidos), son promociones en sitios de e-commerce que sólo existen para un país (cuando es igualable país a idioma, como italiano-Italia)