ホームページ > データベース > mysql チュートリアル > CodeIgniter で多言語 Web サイトの動的言語ファイル作成を実装するにはどうすればよいですか?

CodeIgniter で多言語 Web サイトの動的言語ファイル作成を実装するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-30 09:30:03
オリジナル
631 人が閲覧しました

How can dynamic language file creation be implemented in CodeIgniter for multi-language websites?

CodeIgniter を使用した多言語 Web サイトの動的言語ファイルの作成

問題:

の場合CodeIgniter を使用して多言語オンライン サイトを構築すると、ユーザーはデータベースから言語ファイルにデータを渡すという課題に遭遇する可能性があります。組み込み言語クラスには、データベース統合のネイティブ サポートがありません。

解決策:

データベース レイアウト:

言語関連の情報を格納する列を含む lang_token というテーブルを作成します。

CREATE TABLE IF NOT EXISTS `lang_token` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `category` text NOT NULL,
      `description` text NOT NULL,
      `lang` text NOT NULL,
      `token` text NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
ログイン後にコピー

CodeIgniter 言語ファイル構造:

英語またはドイツ語などのサブディレクトリが application/ language ディレクトリの下に作成される必要があります。各言語は独自のフォルダーに保存する必要があります。

その場での言語ファイルの作成:

カスタム関数 updatelangfile() をコントローラーで作成して言語を生成できます。ファイルを動的に:

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');
                /**
                *
                * Created:  2014-05-31 by Vickel
                *
                * Description:  ".$my_lang." language file for general views
                *
                */"."\n\n\n";



        foreach ($query->result() as $row){
            //$lang['error_csrf'] = 'This form post did not pass our security checks.';
            $langstr.= "$lang['".$row->category."_".$row->description."'] = \"$row->token\";"."\n";
        }
        write_file('./application/language/'.$my_lang.'/general_lang.php', $langstr);

    }
ログイン後にコピー

使用法:

データベースに変更が加えられるたびに、この関数を呼び出して、対応する言語ファイルを更新できます:

$this->updatelangfile('english');
ログイン後にコピー

注:

コントローラーのコンストラクターで次のものをロードすることを忘れないでください:

$this->load->helper('file');
$this->lang->load('general', 'english');
ログイン後にコピー

以上がCodeIgniter で多言語 Web サイトの動的言語ファイル作成を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート