Codeigniter更改加载语言
目前我有一个语言加载在MY_Controller中,它扩展了CI_Controller。但是在一个特殊的页面中,控制器(我们称之为ABC控制器)扩展了MY_Controller,我需要用另一种语言覆盖加载的语言。我尝试在这个ABC控制器中加载另一种语言,但没有成功。有没有办法卸载加载的语言并加载另一种语言?Codeigniter更改加载语言
您是否尝试过只加载所需的语言文件?
$this->lang->load('filename', 'language');
应该然后访问就像你的默认语言。我还没有测试过这个寿命,但从我的理解来看,这应该是一条路。
参考:http://codeigniter.com/user_guide/libraries/language.html
修订
我结束了挖多一点给你,发现你不能加载默认语言(在你的控制器将其定义为默认)然后再尝试将其更改为其他内容。
遵循以下步骤:
- 如果你需要比英语(默认)之外的语言,设置,在你的配置。
- 如果要加载其他语言的控制器的基础上,你需要使用类似会议阵列/用户选择在
constructor
定义(最常见的。 - 你不能在构造函数中加载2种语言(1,则另一个不同的类..不会每次论坛的帖子在这里工作)
我遇到这样的问题,并找到一个棘手的解决方案
$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__');
。
希望它有帮助。
这是使用具有相同密钥的语言文件处理时唯一的工作解决方案 –
像魅力一样工作!谢谢! – Roomm
一个更简单的办法就是重新设置语言数据和is_loaded
$this->lang->is_loaded = array();
$this->lang->language = array();
我知道这是一个有点晚来回答这个问题,但我认为你可以更改配置项目“语言”动态基于网页的要求。
$this->config->set_item('language', 'chinese');
$this->config->set_item('language', 'english'); // based on the language folder of course holding language files
我不得不在用户基础郎发送简讯的要求,帮我更改语言上飞,希望这可以帮助..
适用于我:D ...这应该是我接受的答案,我相信这是所有给出答案中最简单的解决方案。 –
如果您安装了内置codeigniter
和您要添加的语言包的任何应用程序,只需按以下步骤操作:
- 添加文件夹
application/language/arabic
语言文件(我加了阿拉伯语郎SMA2建于CI )
- 转到指定的文件
setting.php
在你会发现阵列:
<div class="controls">
<?php /*
$lang = array (
'english' => 'English',
'arabic' => 'Arabic', // +++ Add this line
'spanish' => 'Español'
现在保存并运行应用程序。
检查在这篇文章中的答案http://*.com/questions/31895341/codeigniter-dynamic-language-functionality/41661355#41661355 –