目前我在MY_Controller中加载了一种语言,它扩展了CI_Controller。但是在一个特殊的页面中,哪个控制器(我们称之为ABC控制器)扩展了MY_Controller,我需要用另一种语言覆盖加载的语言。我尝试在这个ABC控制器中加载另一种语言,但不成功。有没有办法卸载加载的语言并加载另一种语言?
答案 0 :(得分:18)
更简单的方法是重置语言数据并is_loaded
$this->lang->is_loaded = array();
$this->lang->language = array();
答案 1 :(得分:7)
我知道回答这个问题有点迟,但我认为您可以根据页面要求动态更改配置项“语言”。
$this->config->set_item('language', 'chinese');
$this->config->set_item('language', 'english'); // based on the language folder of course holding language files
我需要在用户基础上发送简讯,这有助于我动态更改语言,希望这可能有所帮助..
答案 2 :(得分:4)
我遇到了这个问题并找到了一个棘手的解决方案。
$this->lang->load('text', 'english');
echo $this->lang->line('__YOUR_LANG_VARIABLE__');
//CI will record your lang file is loaded, unset it and then you will able to load another
//unset the lang file to allow the loading of another file
if(isset($this->lang->is_loaded)){
for($i=0; $i<=sizeof($this->lang->is_loaded); $i++){
unset($this->lang->is_loaded[$i]);
}
}
$this->lang->load('text', 'chinese');
echo $this->lang->line('__YOUR_LANG_VARIABLE__');
希望它有所帮助。
答案 3 :(得分:3)
您是否尝试过加载所需的语言文件?
$this->lang->load('filename', 'language');
然后应该像默认语言一样访问它。我没有测试过这个,但根据我的理解,这应该是解决问题的方法。
参考:http://codeigniter.com/user_guide/libraries/language.html
<强> REVISED 强>
我最后为你挖了一些,发现你无法加载默认语言(在控制器中将其定义为默认语言),然后尝试将其更改为其他语言。
请按照以下步骤操作:
constructor
使用类似会话数组/用户选择的内容。答案 4 :(得分:-1)
如果您在codeigniter
内置了任何应用程序,并且想要添加语言包,请按以下步骤操作:
application/language/arabic
setting.php
application/modules/settings/views/setting.php
中,您将找到数组:
醇>
<div class="controls">
<?php /*
$lang = array (
'english' => 'English',
'arabic' => 'Arabic', // +++ Add this line
'spanish' => 'Español'
现在保存并运行该应用程序。