php setlocale

NeB1

Buenas a todos, tengo lo siguiente:


  switch(i18n_get_lang()){
	case "es":		
		setlocale(LC_ALL, 'es_ES');
	break;
	case "en":
		setlocale(LC_ALL, 'en_GB');	
	break;
	case "it":
		setlocale(LC_ALL, 'it_IT');	
	break;
	case "fr":
		setlocale(LC_ALL, 'fr_FR');	
	break;
  }

Me funciona bien para el español y el ingles, pero no para el italiano o el francés. Que puede estar pasando, he puesto mal los códigos? o quizás tenga que instalarle al servidor un paquete de idiomas o algo así?

#2 la duda es, que el setlocale me funciona bien para 2 idiomas sí, y para 2 idiomas no, y me gustaría saber si es cosa del servidor que no tiene los paquetes de idiomas que hacen falta o que (que algo me dice que sí).

Gracias de todas formas :)

willsmith

Yo tengo este escho

<?
session_start();

if(!$_SESSION[lang]){
	if(empty($sitelang)){
	      $sitelang = getenv("HTTP_ACCEPT_LANGUAGE");       
} $sitelang = substr($sitelang, 0, 2); switch($sitelang){ case "es" :
$_SESSION[lang] = 'es_ES'; break; case "ca" : $_SESSION[lang] = 'ca_CA'; break; case "fr" : $_SESSION[lang] = 'fr_FR'; break; default : $_SESSION[lang] = 'en_GB'; break; } } ?>
BeNaReS

Puede ser que como bien dices no tengas instalados los paquetes de idiomas correspondientes, hazle un locale -a para ver los que tienes instalados y si ves que no estan le haces un dpkg-reconfigure locales y marcas los que te hagan falta (suponiendo que sea basado en debian el servidor).

NeB1

#3 eso es! muchas gracias!

Usuarios habituales

  • NeB1
  • BeNaReS
  • willsmith