如何从数据库创建Codeigniter语言文件?

如何从数据库创建Codeigniter语言文件?,第1张

如何从数据库创建Codeigniter语言文件

您走在正确的轨道上。您需要动态创建一个语言文件(例如,每当您更新数据库的语言内容时)

第一:数据库布局

创建一个表

lang_token
的列
id
category
description
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 ;    INSERT INTO `lang_token` (`id`, `category`, `description`, `lang`, `token`)     VALUES      (1, 'error', 'noMail', 'english', 'You must submit a valid email address'),      (2, 'error', 'noUser', 'english', 'You must submit a username');

第二:关于CodeIgniter语言文件

CodeIgniter将首先在您的application /
language目录中查找,每种语言应存储在其自己的文件夹中。确保创建了英语或德语等子目录,例如

application/language/english

第三:控制器功能可即时创建语言文件

关于Codeigniter语言文件:好的做法是对给定文件中的所有消息使用通用前缀(类别),以避免与其他文件中名称相似的项目发生冲突。结构类似:

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

    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');     "."nnn";        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);    }

最后说明:

  1. 每当您更改数据库时,都将调用该函数
    updatelangfile(‘english’)
  2. 不要忘记在updatelangfile()所在的控制器的构造函数中加载 文件助手语言类
    function __construct(){parent::__construct();$this->load->helper('file');$this->lang->load('general', 'english');

    }



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5062273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存