2013-02-02 61 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')); //);  
      } 
现在

其工作