CodeIgniter 在使用数组时无法加载语言文件

CodeIgniter cannot load language files when using array

我正在尝试在我的 CodeIgniter 3 项目中加载多个语言文件。只要我一次加载 1 个语言文件,一切正常。当我尝试使用数组加载语言文件时,它 returns 一个 NULL 值。

// This works fine:
$this->lang->load('homepage_lang', 'dutch');
$this->lang->load('login_lang', 'dutch');

// This does not work:
$this->lang->load(array('homepage_lang', 'login_lang'), 'dutch');

根据 CodeIgniter 文档,这段代码应该可以工作:

http://www.codeigniter.com/user_guide/libraries/language.html#loading-a-language-file

在他们的示例代码中,他们没有任何其他参数,但即使我将我的参数排除在外('dutch' 一个),我仍然无法使用数组。关于如何解决此问题的任何想法?

我认为您必须从语言文件名中删除结尾的 _lang。您的其余代码看起来不错。

编辑

在查看 CodeIgniter 3 核心源代码时,我发现了语言加载函数:

public function load($langfile, $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')
    {
        if (is_array($langfile))
        {
            foreach ($langfile as $value)
            {
                $this->load($value, $idiom, $return, $add_suffix, $alt_path);
            }
            return;
        }
        etc...

这意味着当第一个参数是数组时,它将循环数组。循环后它将 return 什么都不会停止函数的进一步执行。我认为这就是您获得 NULL 值的原因。

即使加载函数 return 为空,两种语言文件都将被加载并可用。