elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Capturar idioma navegador (codeigniter)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Capturar idioma navegador (codeigniter)  (Leído 4,795 veces)
KateLibby

Desconectado Desconectado

Mensajes: 90



Ver Perfil
Capturar idioma navegador (codeigniter)
« en: 17 Noviembre 2011, 15:25 pm »

¿Sabéis alguna forma de hacer esto mismo pero con el framework Codeigniter? Si lo pongo tal cual me da error.

Código:
$_SERVER['HTTP_ACCEPT_LANGUAGE']

Gracias


En línea

madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: Capturar idioma navegador (codeigniter)
« Respuesta #1 en: 17 Noviembre 2011, 16:12 pm »

Puedes usar la clase UserAgent.

Con el método $this->agent->accept_lang().

Código
  1. if ($this->agent->accept_lang('en'))
  2. {
  3.    echo 'You accept English!';
  4. }



En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
KateLibby

Desconectado Desconectado

Mensajes: 90



Ver Perfil
Re: Capturar idioma navegador (codeigniter)
« Respuesta #2 en: 17 Noviembre 2011, 17:42 pm »

Gracias por tu respuesta. He visto que podía usar esta sentencia, pero no he llegado a mirármela detenidamente proque creo que no me serviría para lo que quiero hacer.

Lo que quiero es capturar el idioma del navegador para hacer que al entrar en la página se dirija directamente a ese idioma, en lugar de poner uno por defecto.
En línea

madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: Capturar idioma navegador (codeigniter)
« Respuesta #3 en: 17 Noviembre 2011, 18:03 pm »

Te puede servir perfectamente para lo que tu quieres.

En el constructor del controlador, lo usas así:

Código
  1. if ($this->agent->accept_lang('en'))
  2. {
  3.    redirect('site/english');
  4. }else if ($this->agent->accept_lang('es')
  5. {
  6.    redirect('site/spanish');
  7. }


Claro está que el controlador debe tener los métodos english y spanish.

En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
KateLibby

Desconectado Desconectado

Mensajes: 90



Ver Perfil
Re: Capturar idioma navegador (codeigniter)
« Respuesta #4 en: 22 Noviembre 2011, 12:13 pm »

No lo consigo.

He cargado la clase $this->load->library('user_agent'); en el controlador home.php y creo que con esto ha dejado de darme error, pero ahora no sé cómo hacerlo para redireccionar, porque la forma como llamo a la página de inicio es la siguiente, y no sé cómo diferenciarlo por idiomas:

Código:
$this->load->view('index', $data);

Así es como diferencio los idiomas por URL, no sé si os puede servir:

ES: http://www.dominio.com
EN: http://www.dominio.com/index.php/en/home/index/

Otra cosa que he probado es modificando el archivo system\application\libraries\langsystem.php. Aquí tengo este código que me permite cambiar el idioma por defecto.

Código:
			
if($CI->uri->segment(1))
   $this->lang_code = $this->get_language($CI->uri->segment(1));
else
   $this->lang_code = 'es';

He intentado hacer esto

Código:
			
if($CI->uri->segment(1))
   $this->lang_code = $this->get_language($CI->uri->segment(1));
else {
   if ($this->agent->accept_lang('en')){
      $this->lang_code = 'en';
   }else{               
      $this->lang_code = 'es';
   }
}

pero me da error otra vez  :-\

En línea

KateLibby

Desconectado Desconectado

Mensajes: 90



Ver Perfil
Re: Capturar idioma navegador (codeigniter)
« Respuesta #5 en: 23 Noviembre 2011, 10:29 am »

Haciéndolo como propuso madpitbull_99 y redireccionándolo, por ejemplo, a www.google.es me funciona. Sin embargo, si lo redirecciono tal cual pero a la URL de mi web, el navegador me da el error de que no se está redireccionando correctamente. ¿Alguna idea?

Esto es lo que he añadido al controlador home.php


Código:
$this->load->library('user_agent');
           
if ($this->agent->accept_lang('en'))
{
    redirect("http://www.midominio.com");

En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: Capturar idioma navegador (codeigniter)
« Respuesta #6 en: 23 Noviembre 2011, 13:44 pm »

Haciéndolo como propuso madpitbull_99 y redireccionándolo, por ejemplo, a www.google.es me funciona. Sin embargo, si lo redirecciono tal cual pero a la URL de mi web, el navegador me da el error de que no se está redireccionando correctamente. ¿Alguna idea?

Creo que no se añade parametro, es como utilizar base_url(), sino corrijanme.

Código
  1. $this->load->library('user_agent');
  2. if ($this->agent->accept_lang('en'))
  3. {
  4.    redirect();
  5. }
  6.  
En línea

KateLibby

Desconectado Desconectado

Mensajes: 90



Ver Perfil
Re: Capturar idioma navegador (codeigniter)
« Respuesta #7 en: 24 Noviembre 2011, 09:14 am »

 >:( Nada, tampoco me funciona así.

También intenté hacer una chapuza. Me fui a views/index.php y allí redireccioné hacia el idioma, de esta manera:

Código:
<script>
location.href="URL";
</script>

El resultado que obtuve es que parecía que hacía un bucle redireccionándose todo el rato.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
IDE para CodeIgniter?
PHP
[u]nsigned 0 3,785 Último mensaje 16 Diciembre 2010, 21:55 pm
por [u]nsigned
IDE para CodeIgniter?
Desarrollo Web
[u]nsigned 1 5,136 Último mensaje 18 Abril 2011, 17:43 pm
por Nakp
Desarrollo modular en CodeIgniter
PHP
madpitbull_99 1 5,729 Último mensaje 3 Agosto 2011, 07:38 am
por bomba1990
CodeIgniter y Postgre
PHP
RepsaGlez 2 7,364 Último mensaje 8 Agosto 2011, 23:29 pm
por RepsaGlez
URL multi-idioma Codeigniter
PHP
KateLibby 0 1,522 Último mensaje 14 Noviembre 2012, 10:22 am
por KateLibby
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines