2011-03-27 41 views
1

我在想CI最佳實踐Codeigniter MVC結構用戶參數檢測

我需要一些代碼來檢測瀏覽器的語言並分配合適的語言文件。

這樣的代碼是屬於庫還是助手? (如果我是正確的助手是PHP的功能,而不是圖書館是類)

也是什麼將是最好的方式來啓動一個類,而不是隻加載它。

謝謝。

回答

3

您可以從瀏覽器獲取語言信息提供:

$this->input->server('HTTP_ACCEPT_LANGUAGE'); 

礦井返回en-US,en;q=0.8所以你需要做一些解析來將其轉化爲有用的東西給你。

但你可以設置哪些CI用於加載與

$config['language'] = 'english'; 

其中「英語」是文件夾的名稱中包含您的語言文件的文件夾application/languages語言文件的語言。

在代碼運行之前,您可以在任何位置執行這些操作。我建議製作一個application/libraries/MY_Lang.php(2.0中的application/core/MY_Lang.php)並將其放入構造函數中,然後在使用語言文件之前始終裝載它。

最後應該閱讀this。但基本上,你從你的語言文件中檢索一行:

$this->lang->line('language_key'); 
2

PHP有一個函數get_browser來檢測用戶的瀏覽器。我認爲最佳做法是:

  1. 設置前端控制器以使用Javascript獲取用戶的瀏覽器。
  2. 將用戶重定向到一個合適的功能,設置語言並加載您的主視圖。

不管怎麼說,在谷歌,我發現了幾個片段:

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); 

,從這裏,在計算器上:Checking browser's language by php