2013-04-25 7 views
0

나는 codeigniter에서 웹 사이트를 개발했으며 지금은 다국어가되고 싶습니다.codeigniter에서 사이트 언어를 변경하는 방법

나는 후크로 작업하는 튜토리얼을 따라 갔다. 여기 내 hook.php입니다

$hook['post_controller_constructor']=array(
            'class'=>'LanguageLoader', 
            'function'=>'initialize', 
            'filename'=>'LanguageLoader.php', 
            'filepath'=>'hooks' 
            ); 

나는 클래스를 생성하여 hooks 폴더 안에 넣었습니다. 여기

class LangSwitch extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::construct(); 
     $this->load->helper('url'); 
    } 

    function switchLanguage($language="") 
    { 
     $language=($language!="") ? $language:"english"; 
     $this->session->set_userdata('site_lang',$language); 
     redirect(base_url()); 
    } 
} 

또한 후크 내부에 배치 된 다른 파일이

class LanguageLoader 
{ 
    function initialize() 
    { 
     $CI=&get_instance(); 
     $CI->load->helper('language'); 
     $site_lang=$CI->session->userdata('site_lang'); 
     if($site_lang) 
     { 
      $CI->lang->load('dari','dari'); 
     } 
     else 
     { 
      $CI->lang->load('english','english'); 
     } 
    } 
} 

폴더이며, 여기 내보기 파일입니다.

<a href='<?=site_url('LangSwitcher/switchLanguage/english')?>'>English</a> 

"요청한 페이지를 찾을 수 없습니다."라고 표시됩니다. 어떤 시체에서 무슨 일이 일어나고 있는지 찾을 수 있습니까?

답변

0

컨트롤러는 LangSwitch라고하지만, URL에, 당신은 site_url(...)에서 "LangSwitch "를 생성한다. 이 경로를 설정하지 않았다면 아마 오타가있을 것입니다.

또한 LanguageLoader에서 if($site_lang) 상태가 잘못되었습니다. 다른 언어가 지원되는 언어로 if ($site_lang == "dari")elseif을 입력했거나 switch()

+0

을 입력하고 싶습니다. 질문 문구를 잘못 입력했습니다. 나는 위의 해결책을 따라 갔지만 파일이 발견되지 않았다고 말한다. 나는 파일 배치가 문제라고 생각한다. LanguageLoader.php와 LangSwitch.php를 application/hooks/폴더에 넣었습니다. –

+0

컨트롤러 ('LangSwitch')는'application/controllers /'폴더 밑으로 가야합니다. 파일 이름을 소문자로해서는 안됩니다. – complex857

+0

그 사람이 실제로 일했습니다. 도와 주셔서 감사합니다. 한가지 더. 다른 언어 버튼을 클릭 한 후 같은 페이지에있을 수 있습니까? –

관련 문제