3

来自 CodeIgniter 用户指南

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

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

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

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

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

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

4

2 回答 2

3

毕竟,我认为最好的解决方案是像这样扩展 CI_controller Simple

class MY_Controller extends CI_Controller {

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

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

    }
}
于 2013-02-21T10:31:05.953 回答
2

这是可能的,但您需要从会话中加载所需的语言:

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

从手册:

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

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

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

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

于 2013-02-07T11:18:20.177 回答