将数据从数据库传递到 Codeigniter 语言文件
在您寻求使用 Codeigniter 创建多语言网站时,您正确地设想使用管理语言内容的数据库。本文将指导您完成实现此目标的具体步骤。
数据库结构和语言文件
首先,设置一个名为 lang_token 的数据库表来存储语言标记。使用 id、category、description、lang 和 token 列填充它。例如,创建英语标记,例如:
| 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/language/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中文网其他相关文章!