Foros del Web » Programando para Internet » PHP »

Como selecciono el idioma?

Estas en el tema de Como selecciono el idioma? en el foro de PHP en Foros del Web. Hola, estoy intentando hace una pagina en varios idiomas, para seleccionar el idioma por defecto uso esto: Código: <?php if ($HTTP_ACCEPT_LANGUAGE != ''){ # Verificamos ...
  #1 (permalink)  
Antiguo 18/08/2008, 05:04
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Pregunta Como selecciono el idioma?

Hola, estoy intentando hace una pagina en varios idiomas, para seleccionar el idioma por defecto uso esto:

Código:
<?php
if ($HTTP_ACCEPT_LANGUAGE != ''){ # Verificamos que el visitante haya designado algún idioma
    $idiomes = explode(",", $HTTP_ACCEPT_LANGUAGE); # Convertimos HTTP_ACCEPT_LANGUAGE en array
    /* Recorremos el array hasta que encontramos un idioma del visitante que coincida con los idiomas
    en que está disponible nuestra web */
    for ($i=0; $i<count($idiomes); $i++){
        if (!isset($idioma)){
            if (substr($idiomes[$i], 0, 2) == "ca"){$idioma = "ca";}
            if (substr($idiomes[$i], 0, 2) == "es"){$idioma = "es";}
            if (substr($idiomes[$i], 0, 2) == "en"){$idioma = "en";}
            if (substr($idiomes[$i], 0, 2) == "fr"){$idioma = "fr";}
        }
    }
}

# Si no hemos encontrado ningún idioma que nos convenga, mostramos la web en el idioma por defecto
if (!isset($idioma)){$idioma = "es";}

include ($idioma.'.php');

?>

<html>
<head>
<title></title>
</head>
<body>

<?php echo (LINK_TIENDA) ?>


<?php echo ($idioma);?>

</body>
el texto definido esta en los ficheros, es.php, en.php, fr.php... Hasta aqui funciona de maravilla el problema es que no se como dar la opcion de cambiar de idioma, seguro que es sencillisimo, pero no doy con ello, me puede ayudar alguien???

(he estado curioseando en las tripas de oscommerce y en agunos codigos de por aqui, pero no me entero de na )
  #2 (permalink)  
Antiguo 18/08/2008, 06:13
Avatar de desendoll  
Fecha de Ingreso: mayo-2008
Mensajes: 340
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Como selecciono el idioma?

busca información de como utilizar las variables de SESSION, hay tienes la solución.
__________________
Francesc Jimenez
  #3 (permalink)  
Antiguo 18/08/2008, 07:55
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Como selecciono el idioma?

Hay un post sobre este tema aqui: http://www.forosdelweb.com/f18/web-m...nguaje-594130/
Sino, como biend dice desendoll, busca información sobre sessions.

Saludos
  #4 (permalink)  
Antiguo 18/08/2008, 09:01
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
De acuerdo Respuesta: Como selecciono el idioma?

WOW! Qué simple era...

Código:
<a href="idioma.php?idioma=es">esp</a> | <a href="idioma.php?idioma=en">eng</a>

y ale, ya esta el selector de cambio de idioma, mira que había probado combinaciones parecidas pero totalmente erroeneas...


infinitas gracias a los 2


(ahora vendrá el tema de las sesiones para que me mantenga el idioma entre diferentes paginas, pero bueno, esa será otra historia y por lo menos ya tengo la pista sobre la cual buscar la info...)
  #5 (permalink)  
Antiguo 20/08/2008, 14:00
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Respuesta: Como selecciono el idioma?

vaya, como no pillaba el tema de las sesiones, habia sorteado ese problema de la misma forma que los links de las banderitas peeeero, me surge un nuevo problema:

en el texto (que esta definido para cada idioma en un archivo con

define('BLA_BLA','esto es lo que se ve');

quiero poner un link de este tipo:

<a href="aviso.php?idioma=<?php echo($idioma); ?>" >

pero como ya va entre <? y ?> se hace "la picha un lio", he probado a combinar las " y las ' de diferentes modos pero no hay manera. Hay alguna otra forma de escribir las comillas para que no se lie?? O no tengo mas remedio que pasar por el aro y enterarme de como ¤%¤#%#¤ se usan las sesiones????

Mil gracias
  #6 (permalink)  
Antiguo 20/08/2008, 14:07
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Como selecciono el idioma?

Yo tengo definido un link así y no tengo problemas, a ver si te ayuda...

<a href="<?php echo $_SERVER['SELF']; ?>?lang=es"><img src="images/es.gif" alt="Español" /></a>
  #7 (permalink)  
Antiguo 21/08/2008, 03:10
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Respuesta: Como selecciono el idioma?

Gracias Chitoso, ayer creo que tenia el cerebro ya bastante frito.... porque resulta que...!no necesito meter codigo php!! en cada idioma puedo poner un link distinto...

en es.php
<a href="aviso.php?idioma=es" >

en en.php
<a href="aviso.php?idioma=en" >

y asi hasta el infinito y más allá...

:)
  #8 (permalink)  
Antiguo 28/08/2008, 11:17
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Respuesta: Como selecciono el idioma?

Hola de nuevo
resulta que en el server apache que tengo en local tira de lujo, peeeero

cuando lo subo a mi server "serio" resulta que no funciona, ni detecta el idioma ni cambia a picar en las banderitas :(

he probado, y cuando hago un echo a
$_SERVER['HTTP_ACCEPT_LANGUAGE']
o
$HTTP_ACCEPT_LANGUAGE
no devuelve ningun valor (en local si , da el idioma perfectamente)

Deberia ponerme en contacto con mi srerver a ver si hay algo desactivado?? O no tiene nada que ver????


MUCHAS GRACIAS :)
  #9 (permalink)  
Antiguo 28/08/2008, 11:22
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Como selecciono el idioma?

Mmm... no sabría decirte porqué no estas pudiendo acceder a esa variable.

Pero te recomiendo que setees un idioma por defecto, y la selección de idioma la guardes en una SESSION.
__________________
Pasión por la Música
  #10 (permalink)  
Antiguo 28/08/2008, 11:27
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Respuesta: Como selecciono el idioma?

oki, gracias chitoso, ya tengo un idioma por defento (o sea, que sale siempre por mucho que pique en otros) tendré que darle caña a las sessiones....

GRACIAS AGAIN!
:D
  #11 (permalink)  
Antiguo 29/08/2008, 01:12
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Respuesta: Como selecciono el idioma?

Podria tener que ver con que register globals, register argc argv, o register long arrays este on u off???en mi server (donde funciona) estan los 3 en ON y en el otro (donde no funciona) estan los 3 en OFF
  #12 (permalink)  
Antiguo 29/08/2008, 02:22
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Respuesta: Como selecciono el idioma?

Haciendo tests, con $_SERVER['HTTP_ACCEPT_LANGUAGE'] SI se entera del idioma del navegador, y lo coge bien, el problema es a la hora de cambiar manualmente de idioma, que no se entera de index.php?idioma=es
  #13 (permalink)  
Antiguo 29/08/2008, 03:22
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 15 años, 8 meses
Puntos: 56
Respuesta: Como selecciono el idioma?

Mas cosas extrañas (por lo menos para mi) que pasan...

de forma voluntaria no estoy creando ninguna cookie, peeeero despues de mucho probra y probar, oh!! en IE ha dejado de funcionar el cambio de idioma (el de mi server que si lo hacia) aunque en firefox aun funciona!!! y despues de eso no se porqué he tenido una iluminacion y he eliminado las cookies, y el resultado... que ha vuelto a funcionar, es posible que las cree sin darme cuenta???


EDIT:

definitivamente, el problema era los register_globals, que en local los tengo on y en el remoto en off...

Última edición por darchy; 31/08/2008 a las 13:52
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 17:36.