データベースから CodeIgniter 言語ファイルを動的に生成するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-30 00:32:02
オリジナル
521 人が閲覧しました

How to Dynamically Generate CodeIgniter Language Files from a Database?

データベースから 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!