0

このアプローチを使用して、codeigniter Web アプリをローカライズしています。この繰り返しコードを削除したいことを除いて、すべて正常に動作するようになりました。ローカライズするには、次のすべてのコントローラー アクション内に配置する必要があります

public function history() 
    {            
        $selectedLang = $this->lang->lang();
        switch ($selectedLang)
        {
            case "en":
                $data['switchLang'] = "fr";  
                $langView = "company/historyEN";
                break;
            case "sr":
                $data['switchLang'] = "en";                                
                $langView = "company/history";
                break;
            default:
               $data['switchLang'] = "en";                       
                $langView = "company/history";
        }          

        $this->lang->load("content");
        $this->load->view($langView, $data);
    }

これをすべてのコントローラーで使用できる CI_Controller クラス内に移動することは可能ですか? もしそうならどのように?

または何か、正しい方向にアドバイスしてください

4

2 に答える 2

1

または、この関数をモデルに配置し、そのモデルを自動ロードすることもできます...したがって、すべてのコントローラーで使用できます..すべてのコントローラーで1行だけであるこのメソッドを呼び出すだけです。

よし、ここに行く..1 つのモデルを作成し、config/autoload.php から AutoLoad します。次に、このコードをそれに入れます....モデル名がlanguageであるとします。

<?php
class Language extends CI_Model {
public function history() 
    {            
        $selectedLang = $this->lang->lang();
        switch ($selectedLang)
        {
            case "en":
                $data['switchLang'] = "fr";  
                $langView = "company/historyEN";
                break;
            case "sr":
                $data['switchLang'] = "en";                                
                $langView = "company/history";
                break;
            default:
               $data['switchLang'] = "en";                       
                $langView = "company/history";
        }          

        $this->lang->load("content");
        $this->load->view($langView, $data);
    }
}

今あなたのすべてのコントローラーから

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class controllername extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->language->history();
    }

于 2013-05-21T11:02:55.370 に答える