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.
| ||||
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/ |
| ||||
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. |
| |||
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:
settings_en.php<?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', ); ?>
Código:
settings_zh.php<?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', ); ?>
Código:
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í:<?php $settings_text = array ( 'txt_app_name' => '应用程序名称', 'txt_app_slogan' => '应用程序的口号', 'txt_app_tip1' => '第 1', 'txt_app_tip2' => '第 2', 'txt_btn_1' => '按钮 1', ); ?>
Código:
Eso sí deberías hacer la labor de traducción de cada item de menú, texto de botón, etc.<?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 }; ?> 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. |
Etiquetas: |