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 サイトの他の関連記事を参照してください。