2013-02-02 106 views
1

codeigniter 2.1.3多語言網站怎麼樣?codeigniter 2.1.3多語言網站如何?

我有上/語言/英語和/語言/法語

這個法國 $ LANG [ 'USER_LOGIN'] = 'Connecté';

這個英文 $ lang ['user_login'] ='登錄';

語言文件其所謂user_lang.php

控制器上的構造器,我有這樣的:

$this->load->helper('url');   
    $this->load->helper('language'); 

的性能指標,我有這樣的:

public function index() 
{ 

      $this->lang->load('user', 'french'); 

....

關於視圖我有以下內容:

<div class="pageTitle"><?php echo $this->lang->line('user_login');?></div> 

/* 
| ------------------------------------------------------------------- 
| Auto-load Language files 
| ------------------------------------------------------------------- 
| Prototype: 
| 
| $autoload['language'] = array('lang1', 'lang2'); 
| 
| NOTE: Do not include the "_lang" part of your file. For example 
| "codeigniter_lang.php" would be referenced as array('codeigniter'); 
| 
*/ 

$autoload['language'] = array('user'); 

的問題是,該網站正在其要去user_lang.php 得到了這個詞登錄

,但只到英文文件

$this->lang->load('user', 'french'); 

IAM上面這樣做,它不工作從來沒有讀法國文件

我有另一個問題,我怎麼能得到這個工作,所以我可以切換語言與錨或href

感謝 佩德羅

+0

lang->line('user_login');?>
pedro

回答

1

我會創建這樣一個功能:

function language($language){ 

     $language = urldecode($language); 

     switch($language){ 

      case "French": 
       $this->session->set_userdata('lang_id', 2); 
       $this->session->set_userdata('lang_name', 'french'); 
       redirect('/', 'refresh'); 

      break; 

      case "Russian": 
       $this->session->set_userdata('lang_id', 3); 
       $this->session->set_userdata('lang_name', 'russian'); 
       redirect('/', 'refresh'); 

      break; 

      default: //default is English 
       $this->session->set_userdata('lang_id', 1); 
       $this->session->set_userdata('lang_name', 'english'); 
       redirect('/', 'refresh'); 

      break; 

     } 

    } 

而且我會改變語言導航到:http://www.domain.com/controller/language/French

然後在每一個控制器或每個控制器I類的構造函數將檢查lang_id和lang_name會話。如果會議設置,我會使用它們。否則,配置中的默認語言將自動加載。例如:

$lang = $this->session->userdata('lang_name'); 
if(!isset($lang)){ //load default language 
       $this->lang->load('home'); 
       $data = array(
        'title' => lang('page_title') 
       ); 
//etc etc 

      }else{ //load language from session 
       $this->lang->load('home', $this->session->userdata('lang_name')); 

       $data = array(
        'title' => lang('page_title') 
       );  
//etc etc  
      } 
+0

我應該在哪裏創建這個類 功能語言( $ language){ – pedro

+0

將它創建爲模型中的一個函數。或者任何適合你的方式 – mallix

0

在我的歡迎控制器

public function french() 
    { 
     $this->session->set_userdata('lang_id', 2); 
     $this->session->set_userdata('lang_name', 'french'); 
     $DContent['page_details'] = array('page_title' => 'Index of onplans'); 
     $Dheader = array(); 
     $Dsidebar = array(); 
     $Dfooter = array(); 
     $Dmeta = array('meta_title'=>'Welcome to onplans','meta_descricao'=>'onplans'); 



     $this->template->write_view('meta', 'html/meta', $Dmeta, true); 
     $this->template->write_view('header', 'html/header', $Dheader, true); 
     $this->template->write_view('content', 'onplans/frenchset', $DContent,true); 
     $this->template->write_view('sidebar', 'html/sidebar'); 
     $this->template->write_view('footer', 'html/footer'); 
     $this->template->render(); 

    } 

    public function english() 
    { 
     $this->session->set_userdata('lang_id', 3); 
     $this->session->set_userdata('lang_name', 'english'); 
     $DContent['page_details'] = array('page_title' => 'Index of onplans'); 
     $Dheader = array(); 
     $Dsidebar = array(); 
     $Dfooter = array(); 
     $Dmeta = array('meta_title'=>'Welcome to onplans','meta_descricao'=>'onplans'); 



     $this->template->write_view('meta', 'html/meta', $Dmeta, true); 
     $this->template->write_view('header', 'html/header', $Dheader, true); 
     $this->template->write_view('content', 'onplans/englishset', $DContent,true); 
     $this->template->write_view('sidebar', 'html/sidebar'); 
     $this->template->write_view('footer', 'html/footer'); 
     $this->template->render(); 

    } 

目標控制器上稱爲用戶

$this->load->helper('url'); 

     $this->load->helper('language'); 


     print_r('lang_session'.$this->session->userdata('lang_name')); 


     $lang = $this->session->userdata('lang_name'); 

     if(!isset($lang)){ //load default language 

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


      }else{ //load language from session 
print_r('lang :'.$this->session->userdata('lang_name')); 
       $this->lang->load('user',$this->session->userdata('lang_name')); //);  
      } 
現在

其工作