Using it in the path like actually makes things a lot more complicated, because you ALWAYS need the first segment to be a country code (so you need to use /en for English)
An easier method to consider is to set a session variable when they select a language, and do it "in the background":
In your MY_Controller:
public function __construct()
{
parent::__construct();
$lang_code = ($this->session->userdata('lang_code'))? $this->session->userdata('lang_code'):'english';
$this->lang->load('project_launch', $lang_code);
$this->lang->load('project_launch_template', $lang_code);
$this->lang->load('project_launch_uploader', $lang_code);
}
function lang_select(){
$lang_code = $this->input->post('lang_code');
$this->session->set_userdata('lang_code', $lang_code );
}
and have your language selector (dropdown, little flags, whatever) call lang_select() to change the language & set the session variable; the construct will check the language each page load and load the appropriate language files