Foros del Web » Programando para Internet » PHP »

Método para crear web multi idioma

Estas en el tema de Método para crear web multi idioma en el foro de PHP en Foros del Web. Hola, necesito crear un sitio en varios idiomas. Las ideas que tengo es meter el idioma en un array o en la db. Para desde ...
  #1 (permalink)  
Antiguo 25/08/2011, 01:44
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 12 años
Puntos: 73
Método para crear web multi idioma

Hola, necesito crear un sitio en varios idiomas. Las ideas que tengo es meter el idioma en un array o en la db.

Para desde e('hello') me saque de la db 'hola' o del array.

¿Qué método será más optimizado para el idioma?

Por lo que vi la mayoría van en arrays.
__________________
:)
  #2 (permalink)  
Antiguo 25/08/2011, 02:36
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 14 años, 8 meses
Puntos: 253
Respuesta: Método para crear web multi idioma

Depende, tienes dos opciones, cada una mejor para un tipo de aplicación:

- Con arrays, te ahorras las conexiones a la base de datos y el tráfico entre la aplicación y la misma, pero amplías los recursos de memoria utilizados por el PHP, ya que las variables se almacenan en memoria directamente.
- Con una tabla en la base de datos en la que aparezca cada texto en varios idiomas, obtienes mayor aprovechamiento de recursos, pero aumentas el trajín de datos entre aplicación y base de datos.

Qué pregunta te tienes que hacer? Básicamente una, cuántos textos en mi aplicación son estáticos, es decir, qué cantidad de contenido ya viene de la base de datos y qué cantidad de contenido tendría que incluir en el tema de los idiomas? Si la respuesta es mucho, tendrás que tirar hacia la segunda solución e intentar optimizar las conexiones a la base de datos, ya que la memoria utilizada por los arrays sería bastante grande. Si la respuesta es poco, podrás utilizar arrays y ahorrarte tráfico entre app y ddbb.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 25/08/2011, 02:39
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 12 años
Puntos: 73
Respuesta: Método para crear web multi idioma

Grcias vgonga, utilizaré la base de datos
__________________
:)
  #4 (permalink)  
Antiguo 25/08/2011, 08:09
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 11 años, 5 meses
Puntos: 181
Respuesta: Método para crear web multi idioma

Acabo de entrar a este tema porque tengo que hacer algo igual para un cliente (para mi mucho mejor porque gano más plata ). Se me ha ocurrido que el valor del idioma lo guarde en una variable de sesión y en función del boton que oprima el usuario este valor cambie en la variable de sesión. (Por ejemplo como lo hace la pagina de Warcry). ¿Es buena esta idea o existe una mejor opción? Gracias de antemano por la respuesta.
  #5 (permalink)  
Antiguo 25/08/2011, 08:16
Avatar de jamesjara  
Fecha de Ingreso: mayo-2008
Ubicación: san jose
Mensajes: 449
Antigüedad: 14 años, 6 meses
Puntos: 7
Respuesta: Método para crear web multi idioma

Hace tiempo postee un tema parecido..

Aunque usted no especifica si quiere el contenido traducido o el texto general de la pagina..
Si fuera el texto general de la pagina utiliza un array divido por categorias no creo que tengas tantos strings como para aumentar signifcantemente la carga osea la memoria..

Puedes combinar los dos
lang files para contenido de la pagina el estatico
db para el contenido dinamico

Una solucion no 100% good puede ser una columna idioma , pero esto hace que un select sea mas largo..

La mejor para mi es prefijos es_articulos, en_articulos.. dado que luego con prefijo en php ES/EN selecciona la tabla y los select no serian tan largos..
__________________
X7CLOUD El webservice latino!
Compatible
con mysql,sql,sqlitte.
Compatible con extjs , sencha , smargwt, Gwt , Jquery , Charts, Streaming.
  #6 (permalink)  
Antiguo 25/08/2011, 08:52
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 14 años, 8 meses
Puntos: 253
Respuesta: Método para crear web multi idioma

Para mí, independientemente de que la solución sea vía DB o vía arrays, la clave está en utilizar una estructura de key->value, de forma que tengas como key qué texto es y como value la traducción en cada idioma y luego una variable discriminatoria (en SESSION o en Base de Datos, da igual) que te haga el switch de una estructura a otra.

Por ejemplo, tienes la key "texto_introducción_login" y tienes para inglés el value "Wellcome to my Site, write your user and password, please" y para español "Bienvenido a mi página, escribe tu usuario y contraseña, por favor". Si luego discriminas cambiando la estructura entre uno y otro, el código de la página no cambiará, ya que utilizarás $idioma['texto_introducción_login'], lo que variará será la estructura $idioma.

Como veis, esto se puede aplicar tanto si la solución es bases de datos o arrays, es decir, el cambio es mínimo, en general la página tendrá siempre el mismo código.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: multi, idiomas
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 15:59.