<?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['cal_su']			= 'Su';
$lang['cal_mo']			= 'Mo';
$lang['cal_tu']			= 'Tu';
$lang['cal_we']			= 'We';
$lang['cal_th']			= 'Th';
$lang['cal_fr']			= 'Fr';
$lang['cal_sa']			= 'Sa';
$lang['cal_sun']		= 'Sun';
$lang['cal_mon']		= 'Mon';
$lang['cal_tue']		= 'Tue';
$lang['cal_wed']		= 'Wed';
$lang['cal_thu']		= 'Thu';
$lang['cal_fri']		= 'Fri';
$lang['cal_sat']		= 'Sat';
$lang['cal_sunday']		= 'Sunday';
$lang['cal_monday']		= 'Monday';
$lang['cal_tuesday']	= 'Tuesday';
$lang['cal_wednesday']	= 'Wednesday';
$lang['cal_thursday']	= 'Thursday';
$lang['cal_friday']		= 'Friday';
$lang['cal_saturday']	= 'Saturday';
$lang['cal_jan']		= 'Jan';
$lang['cal_feb']		= 'Feb';
$lang['cal_mar']		= 'Mar';
$lang['cal_apr']		= 'Apr';
$lang['cal_may']		= 'May';
$lang['cal_jun']		= 'Jun';
$lang['cal_jul']		= 'Jul';
$lang['cal_aug']		= 'Aug';
$lang['cal_sep']		= 'Sep';
$lang['cal_oct']		= 'Oct';
$lang['cal_nov']		= 'Nov';
$lang['cal_dec']		= 'Dec';
$lang['cal_january']	= 'January';
$lang['cal_february']	= 'February';
$lang['cal_march']		= 'March';
$lang['cal_april']		= 'April';
$lang['cal_mayl']		= 'May';
$lang['cal_june']		= 'June';
$lang['cal_july']		= 'July';
$lang['cal_august']		= 'August';
$lang['cal_september']	= 'September';
$lang['cal_october']	= 'October';
$lang['cal_november']	= 'November';
$lang['cal_december']	= 'December';

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