Foros del Web » Programando para Internet » PHP »

Seleccionar idioma, como?

Estas en el tema de Seleccionar idioma, como? en el foro de PHP en Foros del Web. Hola, he estado buscando por internet como poder seleccionar el idioma de una pagina cuyos textos estan guardados en una base de datos., La pagina ...
  #1 (permalink)  
Antiguo 04/12/2007, 04:18
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Seleccionar idioma, como?

Hola, he estado buscando por internet como poder seleccionar el idioma de una pagina cuyos textos estan guardados en una base de datos.,

La pagina tiene dos links "sueco" e "ingles". En la base de datos tengo una tabla con el id de la pagina, el titulo y el contenido, todos en sueco, ahora necesito permitir al usuario poder escoger ingles por si no sabe sueco y he creado otra tabla "engcontent" con las mismas caracteristicas que la que tiene el contenido en sueco.

Mi pregunta es como identificar cual link a presionado el usuario para poder mostrar los textos correspondientes desde la base de datos?

Me parece que es algo simple pero no puedo hacerlo

Espero que me puedan ayudar, gracias!!
  #2 (permalink)  
Antiguo 04/12/2007, 04:58
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: Seleccionar idioma, como?

Buenas,

Tienes dos formas, una por cookies y otra empleando variables de sesion. Yo hace cuatro dias me plantee el mismo problema y finalmente opte por emplear variables de sesion.

Para controlar que LINK se ha pulsado, tendras que trabajar con una variable que traspase el idioma, por ejemplo

Código PHP:
echo "<a href=\"http://www.tudominio.com/index.php?languaje=en\">English</a>"
Y para controlar el idioma seleccionado empleando sesiones puedes emplear este script:

Código PHP:
<?php 
global $languaje// variable que traspasa el valor de idioma mediante URL 
session_start(); 
//Primero revisamos si la variable de session contiene algun valor, con el fin
//de actualizar el mismo en caso de que se haya efectuado un cambio de idioma 
//En nuestro ejemplo, lang es la variable de sesion y languaje contiene el valor 
//del idioma en caso de que se efectue el cambio.

if($lang==""){ 
    if (isset(
$_SESSION['lang'])) { 
        
$lang=$_SESSION['lang'];  
    }else{ 
        
session_register('lang');  
        
$_SESSION['lang'] = "en";  
    }  
}else{  
//lang tiene un valor traspasado en URL por lo que actualizamos  
//el valor de la variable de session 
    
$_SESSION['lang']=$languaje


//aqui podras montar la consulta a la bbdd para extraer la información de los 
textos según el idioma que se haya seleccionado o el predeterminado en caso 
de que la variable de sesión no contenga información
.

?>
Espero que te haya servido de ayuda.

Saludos
  #3 (permalink)  
Antiguo 04/12/2007, 07:21
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Re: Seleccionar idioma, como?

Gracias por la respuesta.

He intentado hacer funcionar el script en mi pagina pero algo estoy haciendo mal por que no me funciona.

La primera parte la he hecho tal cual como aparece en el ejemplo.

Código PHP:
global $languaje
    
session_start(); 
    
    if(
$lang==""){ 
        if (isset(
$_SESSION['lang'])) { 
            
$lang=$_SESSION['lang'];  
        }else{ 
            
session_register('lang');  
            
$_SESSION['lang'] = "sv";  
        }  
    }else{  
        
$_SESSION['lang']=$languaje
    } 
Pero despues no se como seguir, asi que he inventado una consulta:
Código PHP:
<div id="content">
            <?php
                
//Aqui muestro el texo te la pagina en sueco
                
if($languaje="sv"){
                    
$query mysql_query("SELECT * FROM glada_content WHERE pageId = '1'");
                    
$row mysql_fetch_array($query);
                    echo 
'<p class="titel">' $row["title"] . '</p><br />';
                    echo 
'<p class="brod">' $row["content"] . '</p>';
                }
                else { 
//llamo el texto en ingles
                    
$query mysql_query("SELECT * FROM glada_engcontent WHERE pageId = '1'");
                    
$row mysql_fetch_array($query);
                    echo 
'<p class="titel">' $row["title"] . '</p><br />';
                    echo 
'<p class="brod">' $row["content"] . '</p>';
                }
                
            
?>
        </div>
He hecho que si la variable $languaje es "sv" o sea sueco, me muestre el contenido de la tabla con los textos en sueco, de lo contrario que me los muestre en ingles, pero a pesar que se haga click en el link de los idiomas no cambia el idioma y siempre es en sueco.

Estos son los links:

Código PHP:
 echo "<a href='index.php?languaje=sv\'>Svenska</a>&nbsp;&nbsp;"
                echo 
"<a href='index.php?languaje=en\'>English</a>"
Que estoy haciendo mal?
  #4 (permalink)  
Antiguo 04/12/2007, 07:35
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 6 meses
Puntos: 1
Re: Seleccionar idioma, como?

Si el contenido de la página es igual para todos los idiomas puedes hacerlo por cookies o sessiones, pero si varía para mejorar el posicionamiento es mejor hacerlo por dominio, subdominio o simular carpeta. Aún así el posicionamiento que mejor se hará será el del idioma por defecto.

Código PHP:
session_start();

$idiomas = array('en''es');

function 
obtenerIdioma()
{
  global 
$idiomas;
    static 
$idioma;
    
    if (!
$idioma)
    {
        if (isset(
$_GET['lang']) && in_array($_GET['lang'], $idiomas))
        {
            
$idioma $_GET['lang'];
        }
        elseif (isset(
$_SESSION['idioma']))
        {
            
$idioma $_SESSION['idioma'];
        }
        else
        {
            
$idioma 'en';
        }
    }
    
    return 
$idioma;
}

echo 
obtenerIdioma(); 
  #5 (permalink)  
Antiguo 04/12/2007, 08:33
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: Seleccionar idioma, como?

Hola de nuevo Jarkaos,

No te funciona el script tal y como lo tienes por que has cometido un error en la siguiente linea:

Código PHP:
if($languaje="sv"){ 
Cuando deberia de ser...

Código PHP:
if($languaje=="sv"){ 
Siempre te mostraba el texto en Sueco por que en lugar de hacer la comparacion del contenido de la variable estabas dandole el valor "sv", por lo que al efectuar el cambio de idioma y llegar a ese punto, volvia a darle el valor "sv".

Prueba cambiandolo o en caso contrario, mira de aplicar la solucion de Sanubrio, que también es muy valida :) :D

Saludos
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 03:04.