CodeIgniter를 사용하여 다국어 웹사이트를 위한 동적 언어 파일 생성
문제:
언제 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/언어 디렉터리 아래에 영어 또는 독일어 등의 하위 디렉터리를 생성해야 합니다. 각 언어는 자체 폴더에 저장되어야 합니다.
즉시 언어 파일 생성:
컨트롤러에서 사용자 정의 함수 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에서 동적 언어 파일 생성을 어떻게 구현할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!