首頁 >資料庫 >mysql教程 >如何在CodeIgniter中實現多語言網站的動態語言檔案建立?

如何在CodeIgniter中實現多語言網站的動態語言檔案建立?

Linda Hamilton
Linda Hamilton原創
2024-10-30 09:30:03629瀏覽

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

使用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/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中實現多語言網站的動態語言檔案建立?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn