<?php
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 5.1.6 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['date_year'] = "Year";
$lang['date_years'] = "Years";
$lang['date_month'] = "Month";
$lang['date_months'] = "Months";
$lang['date_week'] = "Week";
$lang['date_weeks'] = "Weeks";
$lang['date_day'] = "Day";
$lang['date_days'] = "Days";
$lang['date_hour'] = "Hour";
$lang['date_hours'] = "Hours";
$lang['date_minute'] = "Minute";
$lang['date_minutes'] = "Minutes";
$lang['date_second'] = "Second";
$lang['date_seconds'] = "Seconds";

$lang['UM12']	= '(UTC -12:00) Baker/Howland Island';
$lang['UM11']	= '(UTC -11:00) Niue';
$lang['UM10']	= '(UTC -10:00) Hawaii-Aleutian Standard Time, Cook Islands, Tahiti';
$lang['UM95']	= '(UTC -9:30) Marquesas Islands';
$lang['UM9']	= '(UTC -9:00) Alaska Standard Time, Gambier Islands';
$lang['UM8']	= '(UTC -8:00) Pacific Standard Time, Clipperton Island';
$lang['UM7']	= '(UTC -7:00) Mountain Standard Time';
$lang['UM6']	= '(UTC -6:00) Central Standard Time';
$lang['UM5']	= '(UTC -5:00) Eastern Standard Time, Western Caribbean Standard Time';
$lang['UM45']	= '(UTC -4:30) Venezuelan Standard Time';
$lang['UM4']	= '(UTC -4:00) Atlantic Standard Time, Eastern Caribbean Standard Time';
$lang['UM35']	= '(UTC -3:30) Newfoundland Standard Time';
$lang['UM3']	= '(UTC -3:00) Argentina, Brazil, French Guiana, Uruguay';
$lang['UM2']	= '(UTC -2:00) South Georgia/South Sandwich Islands';
$lang['UM1']	= '(UTC -1:00) Azores, Cape Verde Islands';
$lang['UTC']	= '(UTC) Greenwich Mean Time, Western European Time';
$lang['UP1']	= '(UTC +1:00) Central European Time, West Africa Time';
$lang['UP2']	= '(UTC +2:00) Central Africa Time, Eastern European Time, Kaliningrad Time';
$lang['UP3']	= '(UTC +3:00) East Africa Time, Arabia Standard Time';
$lang['UP35']	= '(UTC +3:30) Iran Standard Time';
$lang['UP4']	= '(UTC +4:00) Moscow Time, Azerbaijan Standard Time';
$lang['UP45']	= '(UTC +4:30) Afghanistan';
$lang['UP5']	= '(UTC +5:00) Pakistan Standard Time, Yekaterinburg Time';
$lang['UP55']	= '(UTC +5:30) Indian Standard Time, Sri Lanka Time';
$lang['UP575']	= '(UTC +5:45) Nepal Time';
$lang['UP6']	= '(UTC +6:00) Bangladesh Standard Time, Bhutan Time, Omsk Time';
$lang['UP65']	= '(UTC +6:30) Cocos Islands, Myanmar';
$lang['UP7']	= '(UTC +7:00) Krasnoyarsk Time, Cambodia, Laos, Thailand, Vietnam';
$lang['UP8']	= '(UTC +8:00) Australian Western Standard Time, Beijing Time, Irkutsk Time';
$lang['UP875']	= '(UTC +8:45) Australian Central Western Standard Time';
$lang['UP9']	= '(UTC +9:00) Japan Standard Time, Korea Standard Time, Yakutsk Time';
$lang['UP95']	= '(UTC +9:30) Australian Central Standard Time';
$lang['UP10']	= '(UTC +10:00) Australian Eastern Standard Time, Vladivostok Time';
$lang['UP105']	= '(UTC +10:30) Lord Howe Island';
$lang['UP11']	= '(UTC +11:00) Magadan Time, Solomon Islands, Vanuatu';
$lang['UP115']	= '(UTC +11:30) Norfolk Island';
$lang['UP12']	= '(UTC +12:00) Fiji, Gilbert Islands, Kamchatka Time, New Zealand Standard Time';
$lang['UP1275']	= '(UTC +12:45) Chatham Islands Standard Time';
$lang['UP13']	= '(UTC +13:00) Samoa Time Zone, Phoenix Islands Time, Tonga';
$lang['UP14']	= '(UTC +14:00) Line Islands';


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