我正在用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'); ?>