>데이터 베이스 >MySQL 튜토리얼 >데이터베이스에서 CodeIgniter 언어 파일을 동적으로 생성하는 방법은 무엇입니까?

데이터베이스에서 CodeIgniter 언어 파일을 동적으로 생성하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 00:32:02617검색

How to Dynamically Generate CodeIgniter Language Files from a Database?

데이터베이스에서 Codeigniter 언어 파일로 데이터 전달

Codeigniter로 다국어 웹사이트를 만들려는 과정에서 언어 내용을 관리하는 데이터베이스입니다. 이 기사에서는 이를 달성하기 위한 구체적인 단계를 안내합니다.

데이터베이스 구조 및 언어 파일

먼저 언어 토큰을 저장할 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 |

다음으로 애플리케이션/언어 내의 하위 디렉터리에 언어 파일을 구성합니다(예: 애플리케이션/언어/영어).

Codeigniter 언어 파일 구조

언어 파일은 특정 구조를 따릅니다.

$lang['category_description'] = 'token';

예를 들어 application/언어/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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.