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


Codeigniter Language, replace with default where not existing

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

我注意到,如果我切换语言(比如从意大利语到英语),如果在english_lang.php(或任何文件)中没有设置变量,我只会得到一个空白,而不是使用默认语言。

那么,假设我有这个:

意大利

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

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

正如您所看到的,main_titolo在英文文件中缺失,所以当我以英文加载页面时,我有一个空标题,而不是为特定变量使用意大利语(默认)字符串。

是否有一种方法来使用默认语言的不存在的语言行(变量)?

No。您不能将"default"定义为可重写的语言。事实上,你可以在这个var中定义language-files-folder .但是你可以设置默认语言,例如"mydefault",创建mydefault_lang.php,定义所有的默认字符串,将这个lang-file添加到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'); ?>