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 为空,两种语言文件都将被加载并可用。
我正在尝试在我的 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 为空,两种语言文件都将被加载并可用。