• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

CI框架源码翻阅-Lang.php

php 搞代码 3年前 (2022-01-24) 18次浏览 已收录 0个评论

CI框架源码阅读———Lang.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package		CodeIgniter * @author		ExpressionEngine Dev Team * @copyright	Copyright (c) 2008 - 2011, EllisLab, Inc. * @license		http://codeigniter.com/user_guide/license.html * @link		http://codeigniter.com * @since		Version 1.0 * @filesource */// ------------------------------------/** * Language Class * 官方使用手册:http://codeigniter.org.cn/user_guide/libraries/language.html  * @package		CodeIgniter * @subpackage	Libraries * @category	Language * @author		ExpressionEngine Dev Team * @link		http://codeigniter.com/user_guide/libraries/language.html */class CI_Lang {	/**	 * List of translations	 * 语言包列表	 * @var array	 */	var $language	= array();	/**	 * List of loaded language files	 * 已经被加载的语言包列表	 * @var array	 */	var $is_loaded	= array();	/**	 * Constructor	 * 	 * @access	public	 */	function __construct()	{		log_message('debug', "Language Class Initialized");	}	// --------------------------------	/**	 * Load a language file	 * 加载语言包	 * @access	public	 * @param	mixed	the name of the language file to be loaded. Can be an array	 *					要被加载的语言文件。	 * @param	string	the language (english, etc.) 要使用的语言	 * @param	bool	return loaded array of translations 直接返回语言包数组	 *					不加入到$this->is_loaded和$this->language中去		 * @param 	bool	add suffix to $langfile 文件是否添加后缀	 * @param 	string	alternative path to look for language file 语言包文件的自定义路径	 * @return	mixed	 */	function load($langfile = '', $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')	{		// langfile 文件的.php 后缀去掉		$langfile = str_replace('.php', '', $langfile);		// 判断需不需要添加后缀如果需要		// 将_lang. 去掉并再langfile后面添加_lang		if ($add_suffix == TRUE)		{			$langfile = str_replace('_lang.', '', $langfile).'_lang';		}				// 为langfile添加.php后缀		$langfile .= '.php';		// 判断当前文件是否被加载过		if (in_array($langfile, $this->is_loaded, TRUE))		{			return;		}		// 获取配置文件的数据		$config =& get_config();		// 如果要使用的语言为空		// 那么 我们将从$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		{			// 如果自定义路径下没找到调用get_instance()->load->get_package_paths(TRUE)			// 在包路径下寻找			// get_package_paths这个函数在loader.php中			$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;	}	// --------------------------------	/**	 * Fet本&文来源gao@daima#com搞(%代@#码网@ch a single line of text from the language array	 * 获取一行文本	 * @access	public	 * @param	string	$line	the language line	 * @return	string	 */	function line($line = '')	{		/*		 *	$this->language 的样子		 *	$lang['error_email_missing'] = "You must submit an email address";		 *	$lang['error_url_missing'] = "You must submit a URL";		 *	$lang['error_username_missing'] = "You must submit a username";		 */		$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;	}}// END Language Class/* End of file Lang.php *//* Location: ./system/core/Lang.php */


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CI框架源码翻阅-Lang.php
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址