CodeIgniter 多语言制作

core文件夹

MY_Controller.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller extends CI_Controller
{
     function __construct()
     {
      parent::__construct();
     
           

        $web_lang=isset($_GET['lang'])?trim($_GET['lang']):'';

        if($this->session->userdata('web_lang') and empty($web_lang)){
               
            $lang = $this->session->userdata('web_lang');
       
        }else{
            $lang = $web_lang?$web_lang:'en';
            $this->session->set_userdata('web_lang', $web_lang);//设置session
        }
        //echo $lang;
        $this->config->set_item('language', $lang);//设置语言
        $this->language = $this->config->item('language');//得到语言

        $this->loadLanguageFile('bm',$lang);

    }

    function loadLanguageFile($filename, $language='english')
    {
        $langfolder = 'en';//初始化
        switch ($language){
        case 'en'://加载英文文件
        $langfolder = 'en';
        break;
        case 'zh'://加载中文文件
        $langfolder = 'zh';
        break;
        default:
        $langfolder = 'en';
        }
        $this->lang->load($filename, $langfolder);
    }

}
/* End of file MY_Controller.php */

?>

controllers 文件夹

Contacts.php 继承MY_Controller类获取语言包

<?php
class Contacts extends MY_Controller {
    
  public function __construct()
  {
    parent::__construct();
    $this->load->model('contacts_model');
    $this->load->model('group_model');
    $this->load->model('template_model');

  }

  public function index()
  {
     

    // Load template view
    $this->load->view('template');
    
  }
 

}

language 文件夹建立语言包文件bm_lang.php
<?php
$lang['Please login'] = "请登录";

?>
放在 zh 和 en 文件夹下

view文件夹下

<?php echo lang('Please login'); ?>