使用Codeigniter中的语言类从多维数组回显特定值

使用Codeigniter中的语言类从多维数组回显特定值,codeigniter,internationalization,Codeigniter,Internationalization,我对Codeigniter和语言课感到困惑。我正在使用Jerome Jaglale开发的关于国际化的库。这个问题听起来可能很傻,但如果在语言文件中存储了多维数组,如何在视图中加载特定的数组值?在我的控制器里说我有 class Statics extends CI_Controller { public function index($page = 'home') { // load language file $this->lang->load($page); $

我对Codeigniter和语言课感到困惑。我正在使用Jerome Jaglale开发的关于国际化的库。这个问题听起来可能很傻,但如果在语言文件中存储了多维数组,如何在视图中加载特定的数组值?在我的控制器里说我有

class Statics extends CI_Controller {

 public function index($page = 'home')
 { 
  // load language file
  $this->lang->load($page);
  $this->load->view($page);
 }
}
然后在我的语言文件中

$lang = array(   
 'description'   => array(     
    'main'  => 'Convallis habitant ultrices torquent consectetur sagittis eget metus magna elit fermentum diam tortor ad viverra nec consectetur id ac aliquam hac lobortis malesuada elit, elementum mollis tempor aliquam per nulla ipsum. Molestie non elit nec ante leo nam hendrerit aenean mauris aenean iaculis fringilla.',
    'secondary'  => 'Convallis habitant ultrices torquent consectetur sagittis eget metus magna elit fermentum diam tortor ad viverra nec consectetur id ac aliquam hac lobortis malesuada elit, elementum mollis tempor aliquam per nulla ipsum. Molestie non elit nec ante leo nam hendrerit aenean mauris aenean iaculis fringilla.',
)

 );
如何回显“main”?我试过以下方法,但没有效果

<p><?php echo lang('description.main')?></p>

<!-- I know this is wrong but tried it anyway -->
<p><?php echo lang('home.description.main')?></p> 
<p><?php echo lang('lang.description.main')?></p> 

请注意,如果我有$lang['description.main']='text here…'之类的东西,我的程序测试成功。对我来说,最好将所有数据放在一个多维数组中,类似于上面的数组


谢谢您的帮助。

这是一个很好的问题,但以下内容可能会有所帮助: 在您的文件中:

$lang['description']['main'] = 'Convallis habitant ultrices torquent consectetur sagittis eget metus magna elit fermentum diam tortor ad viverra nec consectetur id ac aliquam hac lobortis malesuada elit, elementum mollis tempor aliquam per nulla ipsum. Molestie non elit nec ante leo nam hendrerit aenean mauris aenean iaculis fringilla.';
$lang['description']['secondary'] = 'Convallis habitant ultrices torquent consectetur sagittis eget metus magna elit fermentum diam tortor ad viverra nec consectetur id ac aliquam hac lobortis malesuada elit, elementum mollis tempor aliquam per nulla ipsum. Molestie non elit nec ante leo nam hendrerit aenean mauris aenean iaculis fringilla.';
或:

并访问其中一个:

foreach ($this->lang->line('description') as $desc => $val)
{
    echo $desc . " : " . $val . "<br />";
}

可能
echo lang('description')['main']
echo lang('homescription')['main']?Reza,谢谢你的建议。我实际上想做的是将我的所有数据放在一个数组中,数组的格式是
$lang=array('description'=>array('main'=>'value','secondary'=>value')原因是我不想为数组中的每个值键入“$lang[][]”。我还希望在扫描我的lang文件时能够快速发现我的数组值,也就是说,考虑到我的数组很大,将其缩进非常适合这个目的(就像上面的示例)。从您的建议中,我注意到我对下面的语法不是很熟悉,怀疑的是()紧接着是[]。我在我的代码中尝试了这一行,但得到了一个语法错误<代码>echo$this->lang->line('description')['main']foreach ($this->lang->line('description') as $desc => $val)
{
    echo $desc . " : " . $val . "<br />";
}
echo $this->lang->line('description')['main'];