Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2012, 06:31
hhaawwaa
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Guardar idioma cookie Gettext

Hola a todos!

Utilizando Gettext para poder tener una web con varios idiomas me estoy volviendo loco al intentar guardar el idioma seleccionado al cambiar de página. He probado con sessions y cookies pero, la verdad, no lo he logrado. He leído y releído foros y la web de php. Pero no consigo adaptarlo. Agradecería muchísimo que me indicarais cómo hacerlo, a ser posible, con cookies.

Os adjunto el código que he hecho para trastear con gettext:

1a página
Código PHP:
<?php
$language
=(isset($_REQUEST['language']))?trim(strip_tags($_REQUEST['language'])):"es_ES";                          

putenv("LC_ALL=$language");
setlocale(LC_ALL$language);
bindtextdomain("messages""./locale");
textdomain("messages");
bind_textdomain_codeset("messages"'UTF-8'); 
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento sin título</title>
</head>

<body>
<?php print "<p><a href=\"".$_SERVER['PHP_SELF']."?language=en_GB\">English</a> - <a href=\"".$_SERVER['PHP_SELF']."?language=es_ES\">Español</a></p>\n";?>
<br /><br />

<?php print _("What do we say to the god of death?"); ?>
<br />

<a href="bbb.php">Next page</a>

</body>
</html>
Segunda página
Código PHP:
<?php
$language
=(isset($_REQUEST['language']))?trim(strip_tags($_REQUEST['language'])):"es_ES";

putenv("LC_ALL=$language");
setlocale(LC_ALL$language);
bindtextdomain("messages""./locale");
textdomain("messages");
bind_textdomain_codeset("messages"'UTF-8'); 
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento sin título</title>
</head>

<body>
<?php print "<p><a href=\"".$_SERVER['PHP_SELF']."?language=en_GB\">English</a> - <a href=\"".$_SERVER['PHP_SELF']."?language=es_ES\">Español</a></p>\n";?>
<br /><br />

<?php print _("Not today!"); ?>
<br />

<a href="aaa.php">Next page</a>

</body>
</html>
Por cierto, si alguien tiene problemas con la codificación, que añada bind_textdomain_codeset("messages", 'UTF-8'); o es_ES.UTF8 en el idioma, en el caso de tenerlo en UTF-8. Yo tardé una semana en descubrirlo!!

Muchas gracias!!!