2013-03-15 98 views
3

我正在開發多語言網站。 我在CI_Controller類文件中編寫了以下代碼,因此我無需將語言加載到每個控制器文件。在codeigniter中從類CI_Controller加載不同的語言

$this->lang->load('english'); 

問題是當我必須改變其他語言例如:讓我們說西班牙語。

$this->lang->load('spanish'); 

如何在菜單選項中選擇語言>英語/西班牙語時在這兩種語言之間加載?

+1

我的建議是在會話中設置lang類型(英文/西班牙文)。然後將相應的lang加載到基本控制器構造函數中。 – mrsrinivas 2013-03-15 12:08:12

+0

如何在CI_Controller類文件中定義會話? – yajay 2013-03-18 04:19:40

回答

1

檢查和加載

將此代碼放在控制器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>') 
+0

致命錯誤:調用第53行上的FILE PATH \ system \ core \ Controller.php中的非對象的成員函數userdata() 我想在system/core/contoller.php文件上設置語言,即CI_Controller類。 這樣我就不必在所有的控制器文件中使用它了。 – yajay 2013-03-18 08:06:34

+0

只需在'config/autoload.php'中添加'$ this-> load-?library('session');'在頂部或在lirararies數組中添加'session' – mrsrinivas 2013-03-19 19:22:03

1

如果你有任何安裝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' 

現在保存並運行應用程序的工作罰款