データベースから Codeigniter 言語ファイルにデータを渡す
Codeigniter を使用して多言語 Web サイトを作成するという探求において、あなたは当然、言語コンテンツを管理するためのデータベース。この記事では、これを実現するための具体的な手順について説明します。
データベース構造と言語ファイル
まず、言語トークンを保存するために lang_token という名前のデータベース テーブルを設定します。 ID、カテゴリ、説明、言語、トークンの列を入力します。たとえば、次のような英語トークンを作成します。
| id | category | description | lang | token | |---|---|---|---| | 1 | error | noMail | english | You must submit a valid email address | | 2 | error | noUser | english | You must submit a username |
次に、アプリケーション/言語内のサブディレクトリに言語ファイルを整理します (例: application/ language/english)。
Codeigniter 言語ファイル構造
言語ファイルは特定の構造に従います:
$lang['category_description'] = 'token';
たとえば、application/ language/english/general_lang.php では次のようになります:
$lang['error_noMail'] = 'You must submit a valid email address'; $lang['error_noUser'] = 'You must submit a username';
動的言語ファイル生成用のコントローラー関数
データベースから言語ファイルを動的に作成するには、次のようなコントローラー関数を作成します:
function updatelangfile($my_lang){ $query = $this->db->where('lang', $my_lang)->get('lang_token'); $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); }
使用法
データベースを更新するたびに、関数 updatelangfile('english') を呼び出して言語ファイルを再生成します。
追加メモ
以上がデータベースから CodeIgniter 言語ファイルを動的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。