Codeigniter has already provided with multi language facility, Its internationalization support,
All you need is a controller, language files, and view.
Based on the selected language, your controller will load the respective language file, and the view file will display the templates written in the language file.
Your language file will look something like this
$lang['language_key'] = "The actual message to be shown";
Your controller, the value of the siteLang can be retrieved either from the url, or you can have it stored as cookie in the browser.
function home(){
$this->lang->load('home', $this->siteLang);
}
Your view will look like, through this the value of the language_key will be displayed on that controller.
<?php echo $this->lang->line('language_key'); ?>
Some key points like the nomencalature of the lang files etc, You can find more about it, at the below link
http://ellislab.com/codeigniter/user-guide/libraries/language.html