Codeigniter 2:如何将自动加载的lang文件切换为不同的语言

时间:2013-02-07 10:29:35

标签: php codeigniter codeigniter-2

来自CodeIgniter用户指南

  

如果您发现全世界都需要特定语言   你的应用程序,你可以告诉CodeIgniter在它期间自动加载它   系统初始化。这是通过打开来完成的   application / config / autoload.php文件并将语言添加到   自动加载阵列。

我在会话中存储有关用户语言的信息。

$this->session->set_userdata('lang', $lang);

如何更改自动加载的全局lang文件的语言(使用用户使用的语言)(默认语言是从config.php加载的 - 显然可以理解)

$autoload['language'] = array('global');

这是可能的,如果没有,应该怎么做? 我是否需要扩展CI_Controller?

2 个答案:

答案 0 :(得分:3)

毕竟,我认为最好的解决方案是扩展CI_controller 很简单

class MY_Controller extends CI_Controller {

    function __construct() {
        parent::__construct();

        // Global Lang File
        $this->lang->load('global', $this->session->userdata('lang'));

    }
}

答案 1 :(得分:2)

这是可能的,但您需要使用以下方法从会话中加载所需的语言:

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

从手册:

其中filename是您要加载的文件的名称(没有文件扩展名),而language是包含它的语言集(即英语)。如果缺少第二个参数,将使用application / config / config.php文件中设置的默认语言。

加载所需的语言文件后,您可以使用此功能访问任何文本行:

$this->lang->line('language_key');

当然,您的语言文件将采用“应用程序/语言”