Codeigniter Cambiar el idioma cargado

Actualmente tengo un idioma cargado dentro de MY_Controller que extiende CI_Controller. Pero dentro de una página especial cuyo controlador (llamémoslo controlador ABC) amplía MY_Controller, necesito anular el idioma cargado con otro idioma. Intenté cargar otro idioma dentro de este controlador ABC, pero sin éxito. ¿Hay alguna forma de descargar el idioma cargado y cargar otro idioma?

¿Has intentado simplemente cargar el archivo de idioma que necesitas?

$this->lang->load('filename', 'language'); 

Debería ser accesible como su idioma predeterminado. No he probado esto aunque, desde mi entendimiento, esta debería ser la manera de hacerlo.

Referencia: http://codeigniter.com/user_guide/libraries/language.html


REVISADO

Terminé cavando un poco más para ti y descubrí que NO PUEDES cargar un idioma predeterminado (definirlo como predeterminado en tu controlador) y luego intentar cambiarlo a otra cosa.

Sigue estos pasos:

  • Si necesita un idioma que no sea inglés (predeterminado), configúrelo en su configuración.
  • Si desea cargar OTRO idioma en una base de controlador, necesita definir eso (más comúnmente en su constructor utilizando algo así como selección de matriz de sesión / usuario.
  • No puedes cargar 2 idiomas (1 en el constructor, luego otro en una clase diferente … ¡no funcionará!)

Referencia aquí por publicaciones del foro: http://codeigniter.com/forums/viewthread/176223/

una forma más fácil es restablecer los datos de idioma y está cargado

 $this->lang->is_loaded = array(); $this->lang->language = array(); 

Me encuentro con este problema y encuentro una solución difícil.

 $this->lang->load('text', 'english'); echo $this->lang->line('__YOUR_LANG_VARIABLE__'); //CI will record your lang file is loaded, unset it and then you will able to load another //unset the lang file to allow the loading of another file if(isset($this->lang->is_loaded)){ for($i=0; $i<=sizeof($this->lang->is_loaded); $i++){ unset($this->lang->is_loaded[$i]); } } $this->lang->load('text', 'chinese'); echo $this->lang->line('__YOUR_LANG_VARIABLE__'); 

Espero eso ayude.

Sé que es un poco tarde para responder a esto, pero creo que puedes cambiar el elemento de configuración ‘idioma’ dinámicamente en función del requisito de la página.

 $this->config->set_item('language', 'chinese'); $this->config->set_item('language', 'english'); // based on the language folder of course holding language files 

Tenía el requisito de enviar boletines de noticias a los usuarios de base lang, y esto me ayudó a cambiar el idioma sobre la marcha, espero que esto pueda ayudar.

Si tiene alguna aplicación instalada en codeigniter y desea agregar un paquete de idioma, solo siga estos pasos:

  1. Agregue archivos de idioma en la application/language/arabic carpeta application/language/arabic
  2. (Agregué lang árabe en sma2 integrado en ci)

  3. Vaya al archivo llamado setting.php
  4. En application/modules/settings/views/setting.php encontrarás la matriz:

 
'English', 'arabic' => 'Arabic', // +++ Add this line 'spanish' => 'Español'

Ahora guarda y ejecuta la aplicación.