我正在将网站转换为多种语言。在这个转换自动化的过程中,我使用类似菜单,静态文本等语言文件。我正在考虑合并这种方法,以便根据语言从数据库中检索内容。
就像管理员为每种语言输入多个内容一样。我尝试了几种无法找到管理方式的方法......
这是我的代码。 ....
创建了一个钩子......
$hook['post_controller_constructor'] = array(
'class' => 'LanguageLoader',
'function' => 'initialize',
'filename' => 'LanguageLoader.php',
'filepath' => 'hooks'
);
并在hooks.php中
class LanguageLoader
{
function initialize() {
$ci =& get_instance();
$ci->load->helper('language');
$site_lang = $ci->session->userdata('site_lang');
if ($site_lang) {
$ci->lang->load('topmenu',$ci->session->userdata('site_lang'));
} else {
$ci->lang->load('topmenu','english');
}
}
}
然后是控制器...
class Lang extends MX_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('url');
}
function change($language = "") {
$language = ($language != "") ? $language : "english";
$this->session->set_userdata('site_lang', $language);
redirect(base_url());
}
function index() {
// get partials
}
}
并简单地这样打电话......
<?php echo lang('sign_up')?>
答案 0 :(得分:3)
有点晚,但Language Class Extended DB是一个非常好的解决方案。
答案 1 :(得分:0)
在构造函数控制器中使用
class Service extends CI_Controller {
public function __construct() {
parent::__construct();
header('Content-Type: application/json; charset=utf-8');
}
public function func1....
{
//code
}
}