Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/02/2016, 11:32
Avatar de xfxstudios
xfxstudios
 
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Hacer sitio web multiidioma

bueno para que sea multiidioma no es necesaario crear directorios por cada idioma a utilizar, solo necesitas de una cookie y un archivo php por cada idioma a utilizar, sria algo asi mas o menos:

idioma ingles (ejemplo):
Código PHP:
Ver original
  1. //idioma ingles
  2. define('cabecera','header');
  3. define('casa','house');
  4. define('puerta','door');
  5. //y así sucesivamente

lo siguiente lo puedes colocar en un archivo externo y integrarlo con un include en las paginas a traducir:

Código PHP:
Ver original
  1. session_start(); //iniciamos una sesion en el navegador
  2. header('Cache-control: private'); // IE 6 FIX
  3.  
  4. if(isset($_GET['lang'])){
  5.     $lang = $_GET['lang']; //verificamos si se envío el idioma
  6.  
  7.     //registra sesion
  8.     $_SESSION['lang'] = $lang; registramos la sesion basada en el idioma enviado
  9.    
  10.     //define cookie
  11.     setcookie('lang', $lang, time() + (3600 * 24 * 30)); definimos una cookie con el idioma
  12.    
  13.     //busca en variables cookie y session
  14. }else if(isset($_SESSION['lang'])){
  15.     $lang = $_SESSION['lang'];
  16. }else if(isset($_COOKIE['lang'])){
  17.     $lang = $_COOKIE['lang'];
  18. }else{
  19.     $lang = 'es';
  20. }
  21.  
  22. //cargamos el archivo de traduccion correspondiente al idioma seleccionado y si no se ha seleccionado uno, cargamos uno por defecto
  23. switch ($lang) {
  24.   case 'en':
  25.   $lang_file = 'lang/lang.en.php';
  26.   break;
  27.  
  28.   case 'es':
  29.   $lang_file = 'lang/lang.es.php';
  30.   break;
  31.  
  32.   case 'po':
  33.   $lang_file = 'lang/lang.po.php';
  34.   break;
  35.  
  36.   default:
  37.   $lang_file = 'lang/lang.es.php';
  38.  
  39. }
  40.  
  41. include_once $lang_file;

y donde vas a traducir va esto:


Código PHP:
Ver original
  1. <?php echo CASA; //traduce casa si es ingles se visualiza house ?>


podrias configurar un par de enlaces o select de esta manera:

Código HTML:
Ver original
  1. <a href="testb.php?lang=es">Español</a>
  2. <br>
  3. <a href="testb.php?lang=en">Ingles</a>
  4. <br>

y el php que cambia el idioma (crea la cookie):
Código PHP:
Ver original
  1. if($_GET['lang']=="es"){
  2. setcookie('lang','es');
  3. }else{
  4.     setcookie('lang','en');
  5. }
  6.  
  7. header('location:'.$_SERVER['HTTP_REFERER']);

de esa manera cambias el idioma con un enlace y este te devuelve a la pagina en la que estabas al momento de solicitar el cambio.

podrias utilizar js para creaer las variables de sesion y cookie de idioma cuando el visitante le haga clic a un enlace o un select por ejemplo. Saludos
__________________
[email protected]
HITCEL

Última edición por xfxstudios; 02/02/2016 a las 11:53