我正在使用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
,因此当我用英文加载页面时,我有一个空标题,而不是使用该特定变量的意大利语(默认)字符串。
有没有办法为非现有语言行(变量)使用默认语言?
答案 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'); ?>