将整个语言文件合并到具有CI的数组中


Merge a whole language file into an array with CI

在我的codeigniter应用程序中,我有一个语言文件中有200多个短语的文件。

目前我有这个代码:

$this->lang->load("语言");

// Define variables
$data['title'] = $this->lang->load('title');
$data['slogan'] = $this->lang->load('slogan');
// And so on

我想知道是否有办法让我做这样的事情:

$data = $this->lang->line;

我知道它不是这样工作的,但也许一些更有经验的CI开发人员可以建议最好的方法。

谢谢,

Peter

尝试向加载方法添加第三个参数。如果将第三个参数设置为TRUE,则在加载语言文件时,它将返回文件中所有语言值的数组。

// created error file according to the CI docs
print_r($this->lang->load('error', 'english', true));
// Example output
Array
(
[error_email_missing] => You must submit an email address
[error_url_missing] => You must submit a URL
[error_username_missing] => You must submit a username
)

加载的配置文件最终合并到$this->lang->language中。你可以访问这个属性,因为它现在已经被声明为公共的,但我会用通常的方式创建一个子类,并添加一个访问函数,这样如果以后它被更改为受保护的,它仍然可以工作:

class MY_Lang extends CI_Lang {
    public function all_line() {
        return $this->language;
    }
}