0

メニューだけでなく、記事のタイトルとコンテンツを変更する多言語 Web サイトをコーディングする方法を教えてください。

基本的には、記事を書くたびに、2 つの言語に分けて書いてから、mysql に挿入すると思います。フロントエンドで言語を変更すると、すべてが別の言語に変更され、元に戻すまでその言語のままになります

だから、誰でもこれに対する最善のアプローチを教えてください。至急お願いします

前もって感謝します

4

2 に答える 2

0

H、

codeigniter 言語クラスを使用http://ellislab.com/codeigniter/user_guide/libraries/language.html

ここにいくつかの古い投稿があります。codeigniter Web サイトを多言語化する最良の方法をご覧ください。lang配列からの呼び出しはlangセッションに依存しますか?

よろしく

iijb

于 2012-11-22T12:15:33.580 に答える
0

次のようなコンテンツ: メニュー、ボタン、メッセージはデータベースに移動する必要はありません。それらを処理するには、CI と言語クラスを使用します。

ブログ投稿やニュース、記事などの動的コンテンツがある場合は、さまざまな言語のデータベースを使用します。

コントローラーは次のようになります。

    class Language extends CI_Controller{

    function Language(){
        parent::__construct();
    }

    function change($language = null){  
        $language = urldecode($language);

        switch($language){

            case "English":
                $this->session->set_userdata('lang_id', 2);
                $this->session->set_userdata('lang_name', 'english');
                redirect($_SERVER['HTTP_REFERER'], 'refresh');

            break;

            case "Deutsch":
                $this->session->set_userdata('lang_id', 3);
                $this->session->set_userdata('lang_name', 'deutsch');
                redirect($_SERVER['HTTP_REFERER'], 'refresh');

            break;

            default:
                $this->session->set_userdata('lang_id', 3);
                $this->session->set_userdata('lang_name', 'deutsch');
                redirect($_SERVER['HTTP_REFERER'], 'refresh');

            break;

        }

    }
}

そして、ページ/クラスのインデックスに移動します:

//LOAD LANGUAGE SETTINGS
        $lang = $this->session->userdata('lang_name');

        if($lang != ''){
            //load default language folder
            $this->lang->load('home');
            $this->lang->load('extra_menu');
            $this->lang->load('base_menu');
            $this->lang->load('breadcrumbs');

        }else{
            //load language file and folder
            $this->lang->load('home', $this->session->userdata('lang_name'));
            $this->lang->load('extra_menu', $this->session->userdata('lang_name'));
            $this->lang->load('base_menu', $this->session->userdata('lang_name'));
            $this->lang->load('breadcrumbs', $this->session->userdata('lang_name'));                
        }
于 2012-11-22T17:05:29.383 に答える