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