<?php
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 5.2.4 or newer
 *
 * NOTICE OF LICENSE
 * 
 * Licensed under the Open Software License version 3.0
 * 
 * This source file is subject to the Open Software License (OSL 3.0) that is
 * bundled with this package in the files license.txt / license.rst.  It is
 * also available through the world wide web at this URL:
 * http://opensource.org/licenses/OSL-3.0
 * If you did not receive a copy of the license and are unable to obtain it
 * through the world wide web, please send an email to
 * licensing@ellislab.com so we can send you a copy immediately.
 *
 * @package		CodeIgniter
 * @author		EllisLab Dev Team
 * @copyright	Copyright (c) 2008 - 2012, EllisLab, Inc. (http://ellislab.com/)
 * @license		http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
 * @link		http://codeigniter.com
 * @since		Version 1.0
 * @filesource
 */

$lang['profiler_database']		= 'DATABASE';
$lang['profiler_controller_info'] = 'CLASS/METHOD';
$lang['profiler_benchmarks']	= 'BENCHMARKS';
$lang['profiler_queries']		= 'QUERIES';
$lang['profiler_get_data']		= 'GET DATA';
$lang['profiler_post_data']		= 'POST DATA';
$lang['profiler_uri_string']	= 'URI STRING';
$lang['profiler_memory_usage']	= 'MEMORY USAGE';
$lang['profiler_config']		= 'CONFIG VARIABLES';
$lang['profiler_session_data']	= 'SESSION DATA';
$lang['profiler_headers']		= 'HTTP HEADERS';
$lang['profiler_no_db']			= 'Database driver is not currently loaded';
$lang['profiler_no_queries']	= 'No queries were run';
$lang['profiler_no_post']		= 'No POST data exists';
$lang['profiler_no_get']		= 'No GET data exists';
$lang['profiler_no_uri']		= 'No URI data exists';
$lang['profiler_no_memory']		= 'Memory Usage Unavailable';
$lang['profiler_no_profiles']	= 'No Profile data - all Profiler sections have been disabled.';
$lang['profiler_section_hide']	= 'Hide';
$lang['profiler_section_show']	= 'Show';

/* End of file profiler_lang.php */
/* Location: ./system/language/english/profiler_lang.php */