Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Pagina web multi idioma php o MySql

Estas en el tema de Pagina web multi idioma php o MySql en el foro de PHP en Foros del Web. Saludos, Estoy creado una web con varios idiomas, me gustaría saber la opiniones y el por que sobre hacerlo con php o MySql. Gracias....
  #1 (permalink)  
Antiguo 26/05/2013, 08:48
 
Fecha de Ingreso: mayo-2013
Mensajes: 2
Antigüedad: 11 años
Puntos: 1
Pagina web multi idioma php o MySql

Saludos,
Estoy creado una web con varios idiomas, me gustaría saber la opiniones y el por que sobre hacerlo con php o MySql.
Gracias.
  #2 (permalink)  
Antiguo 26/05/2013, 09:08
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Pagina web multi idioma php o MySql

Pues en realidad no tiene porque ser en php o mysql. Eso seria cortar la creatividad de la gente a la hora de crear. Una pagina multi idioma puede ser creada de muchas formas, no existe una forma unica.

Opciones:

Crear plantillas e introducir el idioma a traves de:

bases de datos
archivos xml
archivos externos.

Hacerlo de una u otra manera dependera casi siempre del volumen de datos que se manejen. Si la pagina no es muy grande yo recomendaria hacerlo con archivos xml o archivos externos. Si la idea es crear una pagina que tiende a crecer creo que es mejor usar una base de datos (igual uno siempre habla de mysql pero es valido usar cualquier motor).

Si tienes alguna duda en concreto comentala y quizas se pueda discutir mejor. Lo que yo te doy son ideas, no verdades de perogrullo.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 26/05/2013, 09:14
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Pagina web multi idioma php o MySql

A mi me gusta más hacer esas cosas con ficheros XML o JSON, al menos para los datos y traducciones fijas, como menú y cosas así.

Luego ya si vas a, por ejemplo, escribir artículos en varios idiomas, entonces esa parte si que sería más lógico hacerla usando una base de datos.

No te tienes decantar por una sola opción, puedes usar varias a la vez.
  #4 (permalink)  
Antiguo 26/05/2013, 09:33
Avatar de 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
Puntos: 270
Respuesta: Pagina web multi idioma php o MySql

Al menos para mí, lo importante de una web multiidioma es plantearla como si fueran webs distintas para cada idioma, pero que comparten una serie de recursos comunes, que cada web usará, o no.
A veces, este planteamiento no es más que una cuestión de matiz, que tiene pocas consecuencias en el código.Pero pensándolo (y construyéndolo) así, puedes, si es necesario, hacer que una de las webs sea parcial o completamente distinta a las otras.
  #5 (permalink)  
Antiguo 26/05/2013, 12:05
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 17 años, 7 meses
Puntos: 14
Respuesta: Pagina web multi idioma php o MySql

Buenas tardes,

Yo crearía una carpeta llamada lang/ en mi aplicación. Dentro de ellas iría agregando por ejemplo los siguientes ficheros.

settings_es.php //Para Español
settings_en.php //Para Inglés
settings_zh.php //Para chino

Dentro de ésta agregaría una matriz asociativa donde las claves sean los items a traducir y los valores la traducción en cada uno de los idiomas.

Ej.

settings_es.php
Código:
<?php
$settings_text = array
                (
                'txt_app_name' => 'Nombre de la Aplicación',
                'txt_app_slogan' => 'Slogan de la aplicación',
                'txt_app_tip1' => 'Tip 1',
                'txt_app_tip2' => 'Tip 2',
                'txt_btn_1' => 'Botón 1',
);
?>
settings_en.php
Código:
<?php
$settings_text = array
                (
                'txt_app_name' => 'Application Name',
                'txt_app_slogan' => 'Application Slogan',
                'txt_app_tip1' => 'Tip 1',
                'txt_app_tip2' => 'Tip 2',
                'txt_btn_1' => 'Button 1',
);
?>
settings_zh.php
Código:
<?php
$settings_text = array
                (
                'txt_app_name' => '应用程序名称',
                'txt_app_slogan' => '应用程序的口号',
                'txt_app_tip1' => '第 1',
                'txt_app_tip2' => '第 2',
                'txt_btn_1' => '按钮 1',
);
?>
Posteriormente lo que haría sería si el usuario debe loguearse, es poner un desplegable donde seleccione el idioma. Ese desplegable arrojará vía GET o POST o simplemente una variable de SESSION el valor seleccionado que será la variable que recoja la aplicación para seleccionar entre settings_es, settings_en o settings_zh. Una vez almacenado ese valor de las options del desplegable validaríamos con algo así:

Código:
<?php $lenguaElegida = session::get('lenguaje'); ?>
        <?php
        if (isset($lenguaElegida)) {
            require_once APP_LANG . 'settings_' . $lenguaElegida . '.php'; //Donde APP_LANG hace referencia a la carpeta donde está alojado cada fichero de traducción
        };
        ?>
Eso sí deberías hacer la labor de traducción de cada item de menú, texto de botón, etc.

Así aislas cada fichero de traducción de lo que a la página principal o páginas se refiere, y simplemente luego sólo tienes que referenciar a ese fichero que usas en require_once como vertebrador de los items que mostrarás ya que usarás la CLAVE del array para referenciarlos en todas las páginas. Y no debes cambiarlo en cada página o tener una por cada idioma. Simplemente usas un array asociativo con las mismas claves pero distintos valores según el idioma. Así si cambias un fichero por ejemplo el settings_zh.php en algún item su traducción no afectará ni a la aplicación ni al resto de traducciones.

Saludos cordiales.
Francisco J.
  #6 (permalink)  
Antiguo 26/05/2013, 13:41
 
Fecha de Ingreso: mayo-2013
Mensajes: 2
Antigüedad: 11 años
Puntos: 1
Respuesta: Pagina web multi idioma php o MySql

Muchas gracias por sus comentarios.

Etiquetas: php+basedatos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:10.