我希望用户从我网站上的任何子页面中选择他的语言。存储每种用户语言的最佳解决方案是会话。
我的网站默认语言是英语,但我该如何加载用户选择的其他语言? 我想我应该这样做:
$this->lang->load('my_language_file', $this->session->userdata('language'));
但是这样,我必须在每个控制器中加载语言。
是否有办法从全局会话中选择用户语言?所以我可以在我网站的每个地方使用$this->lang->line('some-message');
吗?
答案 0 :(得分:4)
要么做一个
$CI =& get_instance();
$CI->lang->load('my_language_file', $CI->session->userdata('language'));
在自定义helper的开头,并在config / autoload.php中添加autoloaded。
否则你可以通过hooks来完成 基本使用
$CI =& get_instance();
$CI->lang->load('my_language_file', $CI->session->userdata('language'));
此处以及__construct()内部,并有钩点post_controller_constructor
。
这将使您在所有控制器中包含lang文件。然而,由您自动加载多少lang-text,因为即使只是在很小程度上耗尽了服务器。