Codeigniter更改加载的语言

cod*_*der 5 php codeigniter

目前我在MY_Controller中加载了一种语言,它扩展了CI_Controller.但是在一个特殊的页面中,哪个控制器(我们称之为ABC控制器)扩展了MY_Controller,我需要用另一种语言覆盖加载的语言.我尝试在这个ABC控制器中加载另一种语言,但不成功.有没有办法卸载加载的语言并加载另一种语言?

Dam*_*nis 18

一种更简单的方法是重置语言数据并is_loaded

$this->lang->is_loaded = array();
$this->lang->language = array();
Run Code Online (Sandbox Code Playgroud)


Anu*_*pam 7

我知道回答这个问题有点迟,但我认为您可以根据页面要求动态更改配置项"语言".

$this->config->set_item('language', 'chinese');
$this->config->set_item('language', 'english'); // based on the language folder of course holding language files
Run Code Online (Sandbox Code Playgroud)

我需要在用户基础上发送简讯,这有助于我动态更改语言,希望这可能会有所帮助..


Jak*_*kub 4

您是否尝试过仅加载所需的语言文件?

$this->lang->load('filename', 'language');
Run Code Online (Sandbox Code Playgroud)

然后它应该可以像您的默认语言一样访问。我还没有测试过这个,但根据我的理解,这应该是解决问题的方法。

参考: http: //codeigniter.com/user_guide/libraries/language.html


修改

我最终为您挖掘了更多信息,发现您无法加载默认语言(将其定义为控制器中的默认语言),然后尝试将其更改为其他语言。

按着这些次序:

  • 如果您需要英语(默认)以外的语言,请在您的配置中进行设置。
  • 如果您想在控制器的基础上加载另一种语言,您需要定义它(最常见的是 constructor 使用会话数组/用户选择之类的东西。
  • 您无法加载 2 种语言(一种在构造函数中,然后另一种在不同的类中......将无法工作!)

每个论坛帖子参考此处:http://codeigniter.com/forums/viewthread/176223/