データベース データを CodeIgniter 言語ファイルに渡す
CodeIgniter を使用して多言語 Web サイトを開発する場合、データベース コンテンツを言語ファイルに統合することが重要になります。これは、データベース テーブルを作成して翻訳情報を設定し、コントローラー関数を使用してデータベース データに基づいて言語ファイルを動的に生成することで実現できます。
1.データベース設計
次の列を持つ lang_token という名前のテーブルを作成します:
翻訳をテーブルに追加しますデータ。
2. CodeIgniter 言語ファイルの構造
CodeIgniter の言語ファイルは、アプリケーション/言語ディレクトリ内のフォルダーに保存する必要があります。各言語フォルダーには、次の構造の PHP ファイルが含まれている必要があります:
<code class="php"><?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * * Created: <timestamp> by <author> * * Description: <Language Name> language file for <category> * */ $lang = array( '<category>_noMail' => 'You must submit a valid email address', '<category>_noUser' => 'You must submit a username' );</code>
場所:
3.言語ファイルを生成するコントローラー関数
データベースから翻訳データを取得し、オンザフライで言語ファイルを生成するコントローラー関数を作成します。この関数は次のことを行う必要があります。
<code class="php">function updatelangfile($my_lang) { $this->db->where('lang',$my_lang); $query = $this->db->get('lang_token'); $lang = array(); $langstr = "<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');\n\n\n"; foreach ($query->result() as $row) { $langstr .= "$lang['{$row->category}_{$row->description}'] = \"{$row->token}\";\n"; } write_file('./application/language/' . $my_lang . '/general_lang.php', $langstr); }</code>
4.コントローラー関数の呼び出し
言語ファイルを動的に生成するには、データベースが変更されるたびに updatelangfile 関数を呼び出します。例:
<code class="php">function updateLanguages() { $this->updatelangfile('english'); }</code>
5.言語ファイルの使用
これで、アプリケーションは、言語クラスのloadメソッドを使用して、動的に生成された言語ファイルをロードして使用できるようになります。例:
<code class="php">$this->lang->load('general', 'english');</code>
次の手順に従います。データベースのコンテンツを CodeIgniter 言語ファイルにシームレスに統合し、Web サイトのローカライズを可能にします。
以上がデータベースから CodeIgniter 言語ファイルを動的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。