Codeigniter语言,替换为默认不存在的地方

时间:2014-06-18 08:35:02

标签: php codeigniter

我正在使用Codeigniter开发一个项目,我有多种语言,我在配置文件中加载了我的默认语言(意大利语),这很好。

如果在english_lang.php(或任何文件)中没有设置变量,我注意到我是否切换语言(让我们说意大利语为英语)我只是空白而不是使用默认语言。 / p>

所以,让我们说我有这个:

意大利语

$lang['main_loading'] = "Caricamento...<br>Attendere.";
$lang['main_titolo'] = "Titolo";
$lang['main_descrizione'] = "Descrizione";

ENGLISH

$lang['main_loading'] = "Loading...<br>Please Wait.";
$lang['main_descrizione'] = "Description";

如您所见,英文文件中缺少main_titolo,因此当我用英文加载页面时,我有一个空标题,而不是使用该特定变量的意大利语(默认)字符串。

有没有办法为非现有语言行(变量)使用默认语言?

1 个答案:

答案 0 :(得分:1)

没有。您无法将“默认”定义为可覆盖的语言。实际上,您在此var中定义了language-files-folder。但您可以设置默认语言,例如“mydefault”,创建mydefault_lang.php,定义所有您的默认字符串,将此lang文件添加到autoload.php,然后在app中加载您的lang文件,其中包含language-param并覆盖它。例如mydefault

$lang['title'] = "I'm default title";
$lang['header'] = "Hello, world!";

...某处,例如,controllers/user.php

// ....
function login(){
    //                  _desireable lang here_
    $this->load->lang('user','english');
    $this->load->view('user/login');
}

您的language/english/user_lang.php

$lang['title'] = "I'm English title";

并在views/user/login.php

<?php echo $this->lang->line('title'); ?>