1

私の PHP Web サイトでは、30 の言語に翻訳された Web サイトにSiteTranslatorスクリプトを使用しています。各翻訳は独自のテーブル (text_en、text_de...) に格納され、各テーブルには 3 つの列 (textKey、textValue、lastUpdate) があります。

このデータベースを CodeIgniter アプリケーションで使用したいと考えています。それを行う最良の方法は何ですか?

4

1 に答える 1

1

提案されているように複数のデータベースを使用できますが、アプリの言語ファイルをセットアップする必要があります

{ユーザーガイドで詳細を読む}

最初の uri セグメントに基づいて、次のようなことを試すことができます。

ルートの追加

$route['en|fr|gr/test'] = 'test';

最初のセグメントは、enまたはfrまたはその他をチェックします。

次に、テストコントローラーが初期化され、db(object) && app(language)ファイルが設定される前に、メイン コントローラーが最初のセグメントをキャッチします。

www.site.com/en/test => 英語ファイル ( application/language/english/mylanguage ) とデータベースをロード

www.site.com/fr/test => フランス語ファイル ( application/language/french/mylanguage ) と db をロード ...など

メインコントローラー

class MY_Controller extends CI_Controller{

    protected $lang, $db;

    public function __construct(){
        parent::__construct();

        $this->set_language();
    }

    protected function set_language(){
        switch($this->uri->segment(1))
        {
            case 'en':
                $this->lang     = $this->lang->load('mylanguage', 'english');
                $this->db       = $this->load->database('en', TRUE); 
            break;

            case 'fr':
                $this->lang     = $this->lang->load('mylanguage', 'french');
                $this->db       = $this->load->database('fr', TRUE); 
            break;

            default:
                $this->lang     = $this->lang->load('mylanguage', 'english');
                $this->db       = $this->load->database('en', TRUE); 
            break;
        }
    }


}
于 2012-09-06T12:17:26.657 に答える