簡體   English   中英

如何在Codeigniter中更改站點語言

[英]How to change the site language in 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());
   }
}

這是另一個文件,它也放置在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>

它說“找不到所請求的頁面”。 任何人都能找到它發生了什么嗎?

您的控制器稱為LangSwitch但在您的url中,您在site_url(...)生成“ LangSwitch er ”。 如果您沒有為此設置路線,則可能是拼寫錯誤。

另外,在LanguageLoaderif($site_lang)條件看起來錯誤。 也許您想要if ($site_lang == "dari")elseif到其他支持的語言或switch()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM