Foros del Web » Programando para Internet » PHP »

Idioma

Estas en el tema de Idioma en el foro de PHP en Foros del Web. Tengo una pagina que tiene que ir en dos idiomas. Entonces yo he creado un script con un seguido de variables que toman un valor ...
  #1 (permalink)  
Antiguo 01/12/2004, 09:08
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 1 mes
Puntos: 0
Idioma

Tengo una pagina que tiene que ir en dos idiomas. Entonces yo he creado un script con un seguido de variables que toman un valor u otro segun el idioma que se selecciona, pero mi problema es que el valor que me dice el idioma no se propaga, he probado con sessiones pero no me salgo.

Código PHP:

<class=class1 href=index.php?idioma=e>Castellano</a
esta el la variable que envio

luego en mis paginas llamo al script

include('idiomas.php');

que es donde tengo las variables, pero esa variable no la recibo correctamente,más bien dicho no la recibo, entonces supongo que con sesiones se podria arreglar pero no se como.

Muchas gracias.
  #2 (permalink)  
Antiguo 01/12/2004, 09:45
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 22 años, 11 meses
Puntos: 0
no entiendo, la variable idioma no la recibís?
deberías poder recibirla con $_GET['idioma'], después podés propagarla por la url siempre, convertirla en cookie, en sesion o lo que quieras.
__________________
Julio
Clasificados Gratis
  #3 (permalink)  
Antiguo 01/12/2004, 09:48
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 1 mes
Puntos: 0
Recibirla si que la recibo en el script idioma.php pero depue para propagarla con una session es lo que no se hacer, si alguien me pued prestar una ayuda lo agredeceria muchisimo

Gracias
  #4 (permalink)  
Antiguo 01/12/2004, 09:57
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 22 años, 11 meses
Puntos: 0
Código PHP:
//tenés que poner primero en el script:
session_start();
después podrías hacer así:
if(!isset(
$_SESSION['idioma'])){ $_SESSION['idioma']=$_GET['idioma'];
$idioma=$_GET['idioma']}//si no está definida la variable de sesión, la definís y a su vez tomás la variable get para elegir el idioma
else{
$idioma=$_SESSION['idioma'];}// si ya está seteada la sesión solo la lees 
Espero que te sirva
__________________
Julio
Clasificados Gratis

Última edición por jnegro; 01/12/2004 a las 10:00
  #5 (permalink)  
Antiguo 01/12/2004, 10:35
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 1 mes
Puntos: 0
Perfecto,una vez tengo la session e identifico que idioma tengo, como hago para coger las variables que estan dentro del script idioma.php y las utilizo en los otros scripts?
  #6 (permalink)  
Antiguo 01/12/2004, 11:19
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 1 mes
Puntos: 0
Y otra cuestion cada vez que canvie de script la variable de sesion la tengo que pasar por URL? Es decir cada vez que tenga un link hacia otro script esa variable idioma tiene que estar en el link? Es que no me salgo aún con esto.
Muchas gracias!

Última edición por Shute; 09/12/2004 a las 10:17
  #7 (permalink)  
Antiguo 09/12/2004, 10:19
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 1 mes
Puntos: 0
Lo he intentado de mil formas y no me salgo, seria correcto lo que menciono en el post anterior o hay otra forma mas idonea?

Gracias otra vez.
  #8 (permalink)  
Antiguo 09/12/2004, 10:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por Shute
Y otra cuestion cada vez que canvie de script la variable de sesion la tengo que pasar por URL? Es decir cada vez que tenga un link hacia otro script esa variable idioma tiene que estar en el link? Es que no me salgo aún con esto.
Muchas gracias!
No .. el hecho de que tu script que usas para cambiar el idioma cree esa varaible de sesión es justamente para evitarte tener que propagar tu variable que indentifica el idioma en todo link que hagas ...

En todos tus scripts .. tendrás que incluir el código que lee tu variable de sesión que contiene el valor de tu "idioma" que el usuario tiene seleccionado.

indioma.inc.php
Código PHP:
<?
session_start
();
$idioma=$_SESSION['idioma'];
?>
Y donde corresponda .. ya filtras tu $idioma para incluir el contenido o variables que correspondan según tu idioma .. de hecho podrías tener toda es lógica ahí mismo y llamar a todo eso bajo un include() en todos tus scripts que lo requieran.

Un saludo,
  #9 (permalink)  
Antiguo 09/12/2004, 10:51
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 1 mes
Puntos: 0
Mira mi script de idioma se llama idioma.php y es el siguiente:

Código PHP:
<?php
if(!isset($_SESSION['idioma'])){
$idioma=$_GET['idioma'];
}else{
session_start(); 
$idioma=$_SESSION['idioma'];
}
if(empty(
$idioma)){
$idioma="c";
}
//echo $idioma;
if($idioma=="c"){
etc...luego vienen las variables, pues cuando en la pantalla index.php preto castellano o catalan si que me canvia ya que por ese link le paso la variable del idioma, pero una vez seleccionado, cuando quiero ir a otros script, me coje que la variable de session esta vacia y me coje por defecto "c", que es la default, que hago mal?

Muchas gracias!
  #10 (permalink)  
Antiguo 10/12/2004, 06:31
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 22 años, 11 meses
Puntos: 0
Encontré algo que no está bién en tu código:
Código PHP:
<?php
if(!isset($_SESSION['idioma'])){
$idioma=$_GET['idioma'];
}
deberías poner:

Código PHP:
if(!isset($_SESSION['idioma'])){ $_SESSION['idioma']=$_GET['idioma'];
$idioma=$_GET['idioma'];} 
de esta manera creás la variable de sesión, en el primer caso no la estás creando entonces no la podés recoger en otras páginas
__________________
Julio
Clasificados Gratis
  #11 (permalink)  
Antiguo 10/12/2004, 08:31
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 1 mes
Puntos: 0
en link que tengo para los idiomas son estos
Código PHP:
<td width="101" align="center"><a class=class1 href=index.php?idioma=c&nuevo_mes=<?php echo $mes?>&nuevo_ano=<?php echo $ano?>>Catala</a></td>
    <td width="100" align="center"><a class=class1 href=index.php?idioma=e&nuevo_mes=<?php echo $mes?>&nuevo_ano=<?php echo $ano?>>Castella</a></td>
que esta en index.php y que la variable por defecto al principio coje "c" como se ve en el script anterior. Y haciendo lo que tu me dices solo me coje ahora catalan, no me canvia de idioma. Algo debo tener mal en el script de idioma.
  #12 (permalink)  
Antiguo 10/12/2004, 08:44
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 1 mes
Puntos: 0
Tengo un grave problema,en la pantalla index.php si que me recoje bien las variables ya que las paso por URL, para canviar de idioma, pero cuando voy a otro script a traves de un link de la pagina index.php,pierdo la variable de sesion,no tengo nada dentro.
  #13 (permalink)  
Antiguo 10/12/2004, 08:49
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 22 años, 11 meses
Puntos: 0
quizás tendrías que hacer al revés:
if(!isset($_GET['idioma'])){ $_SESSION['idioma']=$_GET['idioma'];
$idioma=$_GET['idioma'];}
con lo cual, si cambiás de definición con el get, toma el cambio
__________________
Julio
Clasificados Gratis
  #14 (permalink)  
Antiguo 10/12/2004, 09:03
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 22 años, 11 meses
Puntos: 0
A ver, reconstruyamos todo el script para que tenga sentido:

Código PHP:
session_start();//inicio sesion
if(isset($_GET['idioma'])){
$_SESSION['idioma']=$_GET['idioma'];
$idioma=$_GET['idioma'];}//si el idioma esta en la url lo tomo y lo paso a la sesion
elseif(isset($_SESSION['idioma'])){
$idioma=$_SESSION['idioma'];
}
// si no esta en la url pero está la sesion, tomo la variable de la sesion
else{
$idioma="c";
$_SESSION['idioma']=$idioma;
//si no está en ningun lado, lo defino como "c" y genero la sesión con "c" 
Espero que te sirva
__________________
Julio
Clasificados Gratis
  #15 (permalink)  
Antiguo 10/12/2004, 09:07
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 1 mes
Puntos: 0
Diste en el clavo!!!! Funciona a la perfeccion!!!! Muchas gracias, llevaba dias con esto y has acertado de pleno. EN serio muchissimas gracias,si puedo ayudarte en algo no dudes en preguntar,para ver si te puedo ayudar!!!

Gracias!
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 22:10.