我正在開發多語言網站。 我在CI_Controller類文件中編寫了以下代碼,因此我無需將語言加載到每個控制器文件。在codeigniter中從類CI_Controller加載不同的語言
$this->lang->load('english');
問題是當我必須改變其他語言例如:讓我們說西班牙語。
$this->lang->load('spanish');
如何在菜單選項中選擇語言>英語/西班牙語時在這兩種語言之間加載?
我正在開發多語言網站。 我在CI_Controller類文件中編寫了以下代碼,因此我無需將語言加載到每個控制器文件。在codeigniter中從類CI_Controller加載不同的語言
$this->lang->load('english');
問題是當我必須改變其他語言例如:讓我們說西班牙語。
$this->lang->load('spanish');
如何在菜單選項中選擇語言>英語/西班牙語時在這兩種語言之間加載?
檢查和加載
將此代碼放在控制器constructor
$this->load->library('session');
$lang= $this->session->userdata('language');
if($lang != ''){
switch($lang){
case 'en' :
$this->lang->load('english', 'english');
break;
case 'sp' :
$this->lang->load('spanish', 'spanish');
break;
}
}
設置郎
將此代碼放置在您設置lang
$this->session->set_userdata('language', '<set english or spanish>')
致命錯誤:調用第53行上的FILE PATH \ system \ core \ Controller.php中的非對象的成員函數userdata() 我想在system/core/contoller.php文件上設置語言,即CI_Controller類。 這樣我就不必在所有的控制器文件中使用它了。 – yajay 2013-03-18 08:06:34
只需在'config/autoload.php'中添加'$ this-> load-?library('session');'在頂部或在lirararies數組中添加'session' – mrsrinivas 2013-03-19 19:22:03
如果你有任何安裝codeigniter的應用程序,或者你在製作1並且你想添加一些語言包,只需按照以下步驟操作:
1:在文件夾中添加語言文件application/language/arabic建於笨經理提前)
2:轉到應用程序/模塊/設置/查看/ setting.php文件名爲setting.php這裏ü找到陣列
<?php /*
$lang = array (
'english' => 'English',
'arabic' => 'Arabic', // i add this here
'spanish' => 'Español'
現在保存並運行應用程序的工作罰款
我的建議是在會話中設置lang類型(英文/西班牙文)。然後將相應的lang加載到基本控制器構造函數中。 – mrsrinivas 2013-03-15 12:08:12
如何在CI_Controller類文件中定義會話? – yajay 2013-03-18 04:19:40