CI框架 -- 核心文件 之 Lang.php(加载语言包)
- <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
- class CI_Lang {
- var $language = array();
- var $is_loaded = array();
- function __construct()
- {
- log_message('debug', "Language Class Initialized");
- }
- //加载语言包
- function load($langfile = '', $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')
- {
- $langfile = str_replace('.php', '', $langfile);
- if ($add_suffix == TRUE)
- {
- $langfile = str_replace('_lang.', '', $langfile).'_lang';
- }
- $langfile .= '.php';
- if (in_array($langfile, $this->is_loaded, TRUE))
- {
- return;
- }
- $config =& get_config();
- if ($idiom == '')
- {
- $deft_lang = ( ! isset($config['language'])) ? 'english' : $config['language'];
- $idiom = ($deft_lang == '') ? 'english' : $deft_lang;
- }
- // Determine where the language file is and load it
- if ($alt_path != '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile))
- {
- include($alt_path.'language/'.$idiom.'/'.$langfile);
- }
- else
- {
- $found = FALSE;
- foreach (get_instance()->load->get_package_paths(TRUE) as $package_path)
- {
- if (file_exists($package_path.'language/'.$idiom.'/'.$langfile))
- {
- include($package_path.'language/'.$idiom.'/'.$langfile);
- $found = TRUE;
- break;
- }
- }
- if ($found !== TRUE)
- {
- show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile);
- }
- }
- if ( ! isset($lang))
- {
- log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);
- return;
- }
- if ($return == TRUE)
- {
- return $lang;
- }
- $this->is_loaded[] = $langfile;
- $this->language = array_merge($this->language, $lang);
- unset($lang);
- log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);
- return TRUE;
- }
- //从language数组中取出一条数据
- function line($line = '')
- {
- $value = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];
- // Because killer robots like unicorns!
- if ($value === FALSE)
- {
- log_message('error', 'Could not find the language line "'.$line.'"');
- }
- return $value;
- }
- }
CI框架 -- 核心文件 之 Lang.php(加载语言包)的更多相关文章
- 仿写自己的一个加载语言包的L函数
<?php /** * [L 加载语言的L的方法] * @param [string] $key [语言键的名称] * @return [string] $value [取到的语言值] */ f ...
- CI框架 -- 核心文件 之 Loader.php(加载器)
顾名思义,装载器就是加载元素的,使用CI时,经常加载的有: 加载类库文件:$this->load->library() 加载视图文件:$this->load->view() ...
- CI框架 -- 核心文件 之 Common.php
system/core/Common.php 文件中可以定义 公共函数,我们可以在这里定义自己的公共函数.在任何情况下你都能够使用这些函数.使用他们不需要载入任何类库或辅助函数. 接下来分析下该文件中 ...
- CI框架 -- 核心文件 之 Hooks.php
钩子 - 扩展框架核心 CodeIgniter 的钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改 核心文件.CodeIgniter 的运行遵循着一个特定的流程,你可以参考这个页面的 应用程 ...
- CI框架 -- 核心文件 之 Exceptions.php
使用CI框架,我们通常使用一下三个函数处理错误: show_error('消息' [, int $status_code = 500 ] ) show_404('页面' [, 'log_error'] ...
- CI框架 -- 核心文件 之 config.php
Config:该文件包含CI_Config类,这个类包含启用配置文件来管理的方法 /** * 加载配置文件 * * @param string $file 配置文件名 * @param bool $u ...
- CI框架 -- 核心文件 之 Output.php(输出类文件)
CI输出类Output.php的功能是将最终web页面发送给浏览器,这里面的东西可能是你用的最少的.你使用装载器加载了一个视图文件, 这个视图文件的内容会自动传递给输出类对象, 然后呢,在方法执行完毕 ...
- CI框架 -- 核心文件 之 Benchmark.php
Benchmark.php文件中定义的CI_Benchmark类可以让你标记点,并计算它们之间的时间差.还可以显示内存消耗. Benchmarking类库,它是被系统自动被加载的,不需要手工加载 cl ...
- easyui 动态加载语言包
解决办法是:把语言包中的语言类型写到cookie,动态修改cookie中的语言名称,修改完后重新渲染一下页面. 在页面加载完成后,先判断cookie存不存在,如果不存在就写入默认语言,存在就给easy ...
随机推荐
- MyBean-关于单实例插件
单实例插件可以通过两个途径实现 第一个在注册时注册成单实例 beanFactory.RegisterBean(pvPluginID: String; pvClass: TClass; pvSi ...
- DIOCP开源项目-DIOCP3的ECHO测试<贴图>
星期六开了测试台测试机子.星期天休息,今天早上来接两个图 开了2个客户端,一个qsl的echo client,一个是楠楠的dbiocp回调客户端.建立13240个连接 今天来后,机子很卡,后来发现是楠 ...
- pip升级Python程序包
列出当前安装的包: pip list 列出可升级的包: pip list --outdate 升级一个包: pip install --upgrade requests // mac,linux,un ...
- pandas入门——loc与iloc函数
oc与iloc函数 loc函数 import pandas as pd import numpy # 导入数据 df = pd.read_csv(filepath_or_buffer="D: ...
- ZooKeeper管理分布式环境中的数据
Reference: http://www.cnblogs.com/wuxl360/p/5817549.html 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它 ...
- 解决java.io.IOException: Cannot run program "javac"问题,并设置jdk版本
原因:没有配置java路径 解决方法:设置java_home路径 设置jdk版本是10的方法:在sbt文件中添加一行: javacOptions := Seq(") 然后重新执行命令:sbt ...
- 网络构建入门技术(3)——IP地址分类
说明(2017-5-16 09:48:08): 1. IP地址
- Faiss教程:索引(1)
索引是faiss的关键知识,我们重点介绍下. 索引方法汇总 有些索引名,我就不翻译了,根据英文名去学习更准确. 索引名 类名 index_factory 主要参数 字节数/向量 精准检索 备注 精准的 ...
- 基于jQuery图片元素网格布局插件
基于jQuery图片元素网格布局插件是一款可以将图片或HTML元素均匀分布排列为网格布局的jQuery插件jMosaic.效果图如下: 在线预览 源码下载 实现的代码. html代码: <c ...
- [emacs] org-mode的一些小技巧
Table of Contents 1 快速输入 #+BEGIN_SRC … #+END_SRC 2 代码按语法高亮 3 导出成HTML时的一些问题和技巧 3.1 生成目录表 3.2 为每个分节的标题 ...