私の PHP Web サイトでは、30 の言語に翻訳された Web サイトにSiteTranslatorスクリプトを使用しています。各翻訳は独自のテーブル (text_en、text_de...) に格納され、各テーブルには 3 つの列 (textKey、textValue、lastUpdate) があります。
このデータベースを CodeIgniter アプリケーションで使用したいと考えています。それを行う最良の方法は何ですか?
私の PHP Web サイトでは、30 の言語に翻訳された Web サイトにSiteTranslatorスクリプトを使用しています。各翻訳は独自のテーブル (text_en、text_de...) に格納され、各テーブルには 3 つの列 (textKey、textValue、lastUpdate) があります。
このデータベースを CodeIgniter アプリケーションで使用したいと考えています。それを行う最良の方法は何ですか?
提案されているように複数のデータベースを使用できますが、アプリの言語ファイルをセットアップする必要があります
{ユーザーガイドで詳細を読む}
最初の 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;
}
}
}