Ver Mensaje Individual
  #16 (permalink)  
Antiguo 14/01/2014, 04:26
nexj
 
Fecha de Ingreso: septiembre-2005
Mensajes: 8
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: php idioma: cómo ocultar/mostrar botón de idioma

Hola otra vez!

Gracias Dashtrash y webankenovi.

De momento prefiero seguir con el tema de php antes que css... más que nada porque me da la sensación de que ya lo tengo avanzado y si empiezo con otra cosa... puuffff

En cuanto a ir paso a paso estoy de acuerdo... Lo que pasa es que la web está colgada, los idiomas los pilla, cambia de español a inglés sin problemas... o sea que en realidad funciona excepto por un par de cosas!

Realmente me gustaría entender esas dos cosas que no funcionan antes que emnpezar otra vez. Tengo pendiente hacer un curso de php y así afianzaré todo el tema de la sintaxis, cómo se escriben las cosas y etc. Pero mientras tanto, en el punto en el que estoy, me gustaría resolverlo desde donde estoy.

Jejeje.. digo resolverlo pero vamos, que yo sola veo que no puedo

He ido probando diferentes opciones con todas las respuestas que me habéis mandado.

Por ejemplo, si en el strolower pongo
Código PHP:
switch(strtolower($language)){ 
me da fallo.

Si pongo

Código PHP:
switch(strtolower($_GET['lang'])){ 
me funciona.


Si en el strolower pongo
Código PHP:
  default:
  
$lang_file 'lang.es.php'
El index no me carga los <li> de "es" y "en"

Si pongo
Código PHP:
  default:
  
header('location:'.$_SERVER['PHP_SELF'].'?lang=es');
 exit; 
aquí parece todo correcto.

Si en el index, en los <li> pongo
Código PHP:
<?php
 
require 'common.php';
 
if(isset(
$language)){
 
if(
$language === 'es'){ ?>
 
<li class="language">
<a href="index.php?lang=en"><span class="abrev">EN</span> <span class="sin-abrev"><?php echo $lang['MENU_EN_FULL']; ?></span></a>
</li>
 
<?php }elseif($language === 'en'){ ?>
 
<li class="language">
<a href="index.php?lang=es"><span class="abrev">ES</span> <span class="sin-abrev"><?php echo $lang['MENU_ES_FULL']; ?></span></a>
</li>
 
 
<?php }else{ ?>
 
 
<p>idioma no disponible</p>
 
 
<?php }}else{ ?>
 
<p>Se ha producido un error</p>
me da fallos.
Si lo dejo como lo tengo ahora (poniendo al inicio del documento el include del common):
Código PHP:
<?php
            
if($_GET['lang']=='es'){ ?> 
            <li class="language">
                <a href="index.php?lang=en"><span class="abrev">EN</span> <span class="sin-abrev"><?php echo $lang['MENU_EN_FULL']; ?></span></a>
            </li>
            <?php 
            if(
$_GET['lang']=='en'){  ?> 
             <li class="language">
                <a href="index.php?lang=es"><span class="abrev">ES</span> <span class="sin-abrev"><?php echo $lang['MENU_ES_FULL']; ?></span></a>
            </li>
            <?php }
            
?>
Entonces todo funciona ok, aunque no me guarda la cookie.



Si en el archivo de la ventana modal hago el include del common, me carga el texto de idioma PERO SIEMPRE EN ESPAÑOL.

Si no hago el include, no me carga el idioma, se queda vacío.

Desde el index llamo a la ventana así:
<a class="group1 icon zoom" href="session-whos-in-the-house.php?lang=$language" title="<?php echo $lang['MENU_SESIONES']; ?>"></a>

Webankenobi, entiendo esta frase que dices:
Código HTML:
tambien esta linea siempre te dara error $_SESSION['lang'] = $lang; ya que $lang no existe antes de esto.
Lo que quieres decir es que $lang hay que definirlo antes de los if, no?


Aquí se puede ver la web colgada, en realidad yo creo que da el pego... Funciona lo de las newsletters, funcina el formulario de contacto, se puede cambiar de idioma (aunque hay un montón de textos que no están traducidos)... pero saber que hay cosas que están mal me deja la conciencia intranquila:

w w w.b o u j i s b c n.com

Última edición por nexj; 24/01/2014 a las 02:33