<?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 */