Foros del Web » Programando para Internet » PHP »

Problema con multilenguaje PHP

Estas en el tema de Problema con multilenguaje PHP en el foro de PHP en Foros del Web. Hola, aprendiendo sobre explicaciones de compañeros, me ha surgido un problema Estoy usando el multilenguaje por php como explicó un compañero en este post: http://www.forosdelweb.com/f91/cambio-idioma-con-php-580802/ ...
  #1 (permalink)  
Antiguo 26/04/2015, 14:36
Avatar de agusax  
Fecha de Ingreso: junio-2011
Ubicación: Puerto Real (Cádiz)
Mensajes: 74
Antigüedad: 13 años, 6 meses
Puntos: 3
Problema con multilenguaje PHP

Hola, aprendiendo sobre explicaciones de compañeros, me ha surgido un problema
Estoy usando el multilenguaje por php como explicó un compañero en este post: http://www.forosdelweb.com/f91/cambio-idioma-con-php-580802/

Sin embargo se me plantea un problema, cuando cambio de pagina en el menú, pasa al idioma por defecto, en vez de quedarse la anterior seleccionada, como podría solventar esto?
Estoy probando aquí: http://agusax.netai.net/

Os adjunto los codes
index.php y rainbow.php que tiene estructura similar (solo cambia la variable a mostrar)
Código:
<?php
	$lang = $_GET['lang'];
	switch($lang){
		case 'es':
			include('lang/es.php');
			break;
		case 'en':
			include('lang/en.php');
			break;
		default:
			include('lang/es.php');
			break;
	}
?>
<!DOCTYPE html>
<html>

<head>
	<meta charset="UTF-8">
	<title>Index</title>
</head>
<body>
	Seleccione el idioma:<br />
	<a href="?lang=es">Español</a> / <a href="?lang=en">Ingles</a>
	<br><br>
	<?php include('lang/menu.php') ?>
	<br><br>
	<?php echo $Texto1 . " " . $Texto2; ?>
</body>

</html>
menu.php:
Código:
<?php
	$lang = $_GET['lang'];
	switch($lang){
		case 'es':
			include('lang/es_menu.php');
			break;
		case 'en':
			include('lang/en_menu.php');
			break;
		default:
			include('lang/es_menu.php');
			break;
	}
?>
<ul id="menu">
	<li><a href="http://www.forosdelweb.com/f91/index.php"><?php echo $Menu1; ?></a></li>
	<li><a href="#"><?php echo $Menu2; ?></a></li>
	<li><a href="http://www.forosdelweb.com/f91/rainbow.php"><?php echo $Menu3; ?></a></li>
	<li><a href="#"><?php echo $Menu4; ?></a></li>
	<li><a href="#"><?php echo $Menu5; ?></a></li>
	<li><a href="#"><?php echo $Menu6; ?></a></li>
</ul>
  #2 (permalink)  
Antiguo 26/04/2015, 14:46
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 9 meses
Puntos: 67
Respuesta: Problema con multilenguaje PHP

Puedes utilizar cookies para almacenar el idioma que se selecciono y mantenerlo en toda la navegación:

http://php.net/manual/es/features.cookies.php

Por otro lado, está categoría es para diseño web, no para php.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #3 (permalink)  
Antiguo 26/04/2015, 15:10
Avatar de agusax  
Fecha de Ingreso: junio-2011
Ubicación: Puerto Real (Cádiz)
Mensajes: 74
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Problema con multilenguaje PHP

Vale, le echaré un ojo y probaré mañana.
Con respecto a la categoría, pido disculpas, tomé el otro post como referencia y lo publiqué en el mismo lugar.
Gracias por responder
  #4 (permalink)  
Antiguo 27/04/2015, 03:46
Avatar de agusax  
Fecha de Ingreso: junio-2011
Ubicación: Puerto Real (Cádiz)
Mensajes: 74
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Problema con multilenguaje PHP

No he conseguido recargar la variable en cookie, e incluso he probado por sesión de usuario.
Así que he optado por hacer esta solución temporal hasta que consiga solucionarlo

Código:
<li><a href="index.php?lang=<?php echo $idioma; ?>"><?php echo $Menu1; ?></a></li>
¿Podrían redirigirme a un ejemplo funcional para llevarlo a cabo?

Gracias
  #5 (permalink)  
Antiguo 27/04/2015, 06:54
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 9 meses
Puntos: 67
Respuesta: Problema con multilenguaje PHP

Cuando se cambia el idioma asignale una cookie, por ejemplo

Código PHP:
Ver original
  1. setcookie("lang",$_GET['lang'],time()+500);

Una vez registrada, realizas la comprobación para cuando siga navegando, ejemplo

Código PHP:
Ver original
  1. if(!empty($_COOKIE['lang'])) {
  2. include('lang/'.$_COOKIE['lang'].'.php');
  3. // llamamos al archivo con la cookie guardada
  4. }else {
  5. include('lang/es.php');
  6. // aqui le asignamos un idioma por defecto ya que no hay cookie guardada
  7. }

Esto mas o menos es para que te des una idea de como realizarlo.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.

Etiquetas: diseño-web, idiomas, multi-idioma
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 19:12.