我正在尝试使我的网站多语言。到目前为止,我创建了2个文件夹和2个文件:
/application/language/en-us/
/application/language/en-us/application_lang.php
/application/language/fr-ca/
/application/language/fr-ca/application_lang.php
在语言文件中,我有以下声明:
$lang['lang_company_name'] = 'Hello'; // en-us
$lang['lang_company_name'] = 'World'; // fr-ca
然后是我的测试代码:
$this->lang->load('application', 'en-us');
echo $this->lang->line('lang_company_name');
$this->lang->load('application', 'fr-ca');
echo $this->lang->line('lang_company_name');
输出为:HelloHello
。为什么我没有HelloWorld
?
更新
$autoload['language']
。$config['language'] = 'english'
答案 0 :(得分:0)
您加载的第一种语言将成为默认语言。如果你以相反的顺序做到这一点,你就会得到“世界世界”。
答案 1 :(得分:0)
加载语言后,它会跟踪已加载“应用程序”语言文件。因此,一旦加载,第二次调用实际上并没有做任何事情,因为它将其视为已加载(在跟踪加载的文件时忽略第二个参数)。
查看这里的代码:https://github.com/EllisLab/CodeIgniter/blob/master/system/core/Lang.php,看起来你可能会破解它以便再次加载它(从$ is_loaded属性中取消设置),但我想更好的问题可能就是为什么你需要这样做吗?不知何故加载2种不同的语言文件似乎有点奇怪!