2012-04-17 140 views
1

我希望用戶從我網站上的任何子頁面中選擇他的語言。存儲每種用戶語言的最佳解決方案是會話。CodeIgniter語言選擇

我的網站默認語言是英語,但我應該如何加載用戶選擇的其他語言? 我想我應該做這樣的:

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

可是這樣一來,我必須加載每個控制器的語言。 沒有辦法,從全局會話中選擇用戶語言?所以我可以在我網站的每個地方使用$this->lang->line('some-message');

回答

4

無論是在自定義helper的開始做

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

,並在你的config/autoload.php有它autoloaded

否則您可以通過hooks來完成。
Basicly使用

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

這裏藏漢的__construct()內,並有掛鉤點post_controller_constructor

這將使您在所有控制器中包含lang文件。然而,由您自動加載多少個lang-text取決於您,因爲即使只有很小的範圍,它也會耗盡服務器。

+0

那麼,默認語言(英文)是自動加載的,那麼它是如何重要的,如果我將加載每個用戶的英文文件和其他用戶的其他語言? – Lucas 2012-04-17 12:48:26

+0

我想這不重要。爲什麼呢? – 2012-04-17 13:12:39

+0

你寫道:'[..]因爲它耗盡服務器,即使只有很小的程度。「 – Lucas 2012-04-17 13:14:53