1

我希望用户从我网站上的任何子页面中选择他的语言。存储每种用户语言的最佳解决方案是会话。

我的网站默认语言是英语,但我应该如何加载用户选择的其他语言?我想我应该这样做:

$this->lang->load('my_language_file', $this->session->userdata('language'));

但是这样,我必须在每个控制器中加载语言。有没有办法从全局会话中选择用户语言?所以我可以$this->lang->line('some-message');在我网站的每个地方使用?

4

1 回答 1

4

要么做一个

$CI =& get_instance();
$CI->lang->load('my_language_file', $CI->session->userdata('language'));

在自定义帮助程序的开头并将其自动加载到您的 config/autoload.php 中。

否则你可以通过hooks来做到这一点。
基本使用

$CI =& get_instance();
$CI->lang->load('my_language_file', $CI->session->userdata('language'));

这里也在 __construct() 内部,并且有 Hook Point post_controller_constructor

这将使您在所有控制器中包含 lang 文件。但是,您要自动加载多少语言文本取决于您,因为即使只是在很小程度上也会耗尽服务器。

于 2012-04-17T12:33:56.950 回答