Codeigniter Change loaded language Codeigniter Change loaded language codeigniter codeigniter

Codeigniter Change loaded language


an easier way is to reset the language data and is_loaded

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


I know it's a bit late to answer this but I think you can change the config item 'language' dynamically based on page requirement.

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

I had a requirement to send newsletters in users base lang, and this helped me change the language on the fly, hope this might help..


Have you tried just loading the language file you need?

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

It should be then accessible just like your default language. I haven't tested this tho, but from my understanding this should be the way to go about it.

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


REVISED

I ended up digging a bit more for you, and found that you CANNOT load a default language (define it as default in your controller) and then later try to change it to something else.

Follow these steps:

  • If you need a language OTHER than english (default), set that in your config.
  • If you want to load ANOTHER language on a controller basis, you need to define that (most commonly in your constructor using something like session array / user selection.
  • You cannot load 2 languages (1 in the constructor, then another in a different class.. won't work!)

Reference here per forum posts: http://codeigniter.com/forums/viewthread/176223/