0

私は codeigniter でウェブサイトを開発しましたが、今は多言語にしたいと思っています。

フックを操作するチュートリアルに従いました。これが私のhook.phpです

$hook['post_controller_constructor']=array(
                                   'class'=>'LanguageLoader',
                                   'function'=>'initialize',
                                   'filename'=>'LanguageLoader.php',
                                   'filepath'=>'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());
   }
}

そして、これはhooksフォルダー内にも配置されている別のファイルです

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>

「要求されたページは見つかりませんでした」と表示されます。何が起こっているのか、体はそれを見つけることができますか?

4

1 に答える 1

0

コントローラーが呼び出さLangSwitchれますが、URL で "LangSwitch er "を生成しますsite_url(...)。このためのルートが設定されていない場合は、おそらくタイプミスです。

また、 のif($site_lang)状態が間違っているように見えますLanguageLoader。サポートさif ($site_lang == "dari")elseifている他の言語またはswitch()

于 2013-04-25T12:55:50.260 に答える