XylotrechusZ
<?php
/**
* @copyright Copyright (c) 2009-2022 ThemeCatcher (https://www.themecatcher.net)
*/
class Quform
{
/**
* On plugin activation set the activated flag
*/
public static function onActivation()
{
add_option('quform_activated', '1');
}
/**
* Bootstrap the plugin
*/
public static function bootstrap()
{
$GLOBALS['quform'] = new Quform_Dispatcher(new Quform_Container());
$GLOBALS['quform']->bootstrap();
}
/**
* Get a service from the container
*
* @param string $name The service name
* @return mixed The service instance
*/
public static function getService($name)
{
return $GLOBALS['quform']->getService($name);
}
/**
* Get the URL to the plugin folder
*
* @param string $path Extra path to append to the URL
* @return string
*/
public static function url($path = '')
{
return Quform::pathExtra(plugins_url(QUFORM_NAME), $path);
}
/**
* Get the URL to the plugin admin folder
*
* @param string $path Extra path to append to the URL
* @return string
*/
public static function adminUrl($path = '')
{
return Quform::pathExtra(Quform::url('admin'), $path);
}
/**
* Allow users to white-label the plugin name on Quform pages
*
* @return string The plugin name
*/
public static function getPluginName()
{
return apply_filters('quform_plugin_name', 'Quform');
}
/**
* Get the IP address of the visitor
*
* @return string
*/
public static function getClientIp()
{
$ip = $_SERVER['REMOTE_ADDR'];
if ( ! empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif ( ! empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = trim($ips[0]);
}
$ip = apply_filters('quform_get_client_ip', $ip);
return (string) $ip;
}
/**
* Get the current URL
*
* @return string
*/
public static function getCurrentUrl()
{
$url = '';
if (isset($_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'])) {
$url .= 'http';
if (is_ssl()) {
$url .= 's';
}
$url .= '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}
return $url;
}
/**
* Get the HTTP referer
*
* @return string
*/
public static function getHttpReferer()
{
$referer = '';
if (isset($_SERVER['HTTP_REFERER'])) {
$referer = $_SERVER['HTTP_REFERER'];
}
return (string) $referer;
}
/**
* Get the current post
*
* @return WP_Post|null
*/
public static function getCurrentPost()
{
if (in_the_loop()) {
return get_post();
}
$post = get_queried_object();
if ($post instanceof WP_Post) {
return $post;
}
return null;
}
/**
* Get a property from the current post object
*
* @param string $property Which property to get
* @param int|null $postId The post ID or null to use the current post
* @return string
*/
public static function getPostProperty($property = 'ID', $postId = null)
{
$post = ! is_null($postId) ? get_post($postId) : Quform::getCurrentPost();
$value = '';
$whitelist = array('ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title',
'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_name', 'to_ping', 'pinged',
'post_modified', 'post_modified_gmt', 'post_content_filtered', 'post_parent', 'guid', 'menu_order',
'post_type', 'post_mime_type', 'comment_count'
);
if (Quform::isNonEmptyString($property) &&
in_array($property, $whitelist) &&
$post instanceof WP_Post &&
isset($post->{$property})
) {
$value = $post->{$property};
}
return (string) $value;
}
/**
* Get the post meta value with the given key from the given post ID or the current post
*
* @param string $key The post meta key
* @param int|null $postId The post ID, if null the current post will be used
* @return mixed|string
*/
public static function getPostMeta($key, $postId = null)
{
$post = ! is_null($postId) ? get_post($postId) : Quform::getCurrentPost();
$value = '';
if (Quform::isNonEmptyString($key) && $post instanceof WP_Post) {
$value = get_post_meta($post->ID, $key, true);
}
return $value;
}
/**
* Get a property from the current user object
*
* @param string $property Which property to get
* @return string
*/
public static function getUserProperty($property = 'ID')
{
$user = wp_get_current_user();
$value = '';
// Ensure user_pass is never returned
$whitelist = array('ID', 'user_login', 'user_nicename', 'user_email', 'user_url', 'user_registered', 'display_name');
if (Quform::isNonEmptyString($property) &&
in_array($property, $whitelist) &&
$user->ID > 0 &&
isset($user->{$property})
) {
$value = $user->{$property};
}
return (string) $value;
}
/**
* Get the user meta value with the given key for the current user
*
* @param string $key The user meta key
* @return mixed|string
*/
public static function getUserMeta($key)
{
$value = '';
if (Quform::isNonEmptyString($key)) {
$value = get_user_meta(get_current_user_id(), $key, true);
}
return $value;
}
/**
* Convert the given string to studly case
*
* @param string $value
* @return string
*/
public static function studlyCase($value)
{
$value = ucwords(str_replace(array('-', '_'), ' ', $value));
return str_replace(' ', '', $value);
}
/**
* Is the current request a GET request?
*
* @return bool
*/
public static function isGetRequest()
{
return isset($_SERVER['REQUEST_METHOD']) && strtoupper($_SERVER['REQUEST_METHOD']) === 'GET';
}
/**
* Is the current request a POST request?
*
* @return bool
*/
public static function isPostRequest()
{
return isset($_SERVER['REQUEST_METHOD']) && strtoupper($_SERVER['REQUEST_METHOD']) === 'POST';
}
/**
* Escaping for strings in HTML
*
* Identical to esc_html but with double encoding true
*
* @param string $value
* @param int $flags
* @return string
*/
public static function escape($value, $flags = ENT_QUOTES)
{
$value = wp_check_invalid_utf8($value);
return _wp_specialchars($value, $flags, false, true);
}
/**
* Sanitize multiple classes
*
* @param string|array $classes Classes to sanitize
* @return string The sanitized classes
*/
public static function sanitizeClass($classes)
{
if (is_array($classes)) {
$classes = join(' ', $classes);
}
$classes = preg_split('/\s+/', trim($classes));
$sanitizedClasses = array();
foreach ($classes as $class) {
$sanitizedClass = sanitize_html_class($class);
if ( ! empty($sanitizedClass)) {
$sanitizedClasses[] = $sanitizedClass;
}
}
return join(' ', $sanitizedClasses);
}
/**
* Sanitizes a multiline string
*
* @param string $str
* @return string
*/
public static function sanitizeTextareaField($str)
{
if (function_exists('sanitize_textarea_field')) {
return sanitize_textarea_field($str);
}
return join("\n", array_map('sanitize_text_field', explode("\n", $str)));
}
/**
* Get a value from an array, allowing dot notation
*
* @param array $array
* @param string $key
* @param mixed $default
* @return mixed
*/
public static function get($array, $key = null, $default = null)
{
if (is_null($key)) {
return $array;
}
if (isset($array[$key])) {
return $array[$key];
}
foreach (explode('.', $key) as $segment) {
if ( ! is_array($array) || ! array_key_exists($segment, $array)) {
return $default;
}
$array = $array[$segment];
}
return $array;
}
/**
* Set an array item to a given value using "dot" notation.
*
* If no key is given to the method, the entire array will be replaced.
*
* @param array $array
* @param string $key
* @param mixed $value
* @return array
*/
public static function set(&$array, $key, $value)
{
if (is_null($key)) return $array = $value;
$keys = explode('.', $key);
while (count($keys) > 1)
{
$key = array_shift($keys);
// If the key doesn't exist at this depth, we will just create an empty array
// to hold the next value, allowing us to create the arrays to hold final
// values at the correct depth. Then we'll keep digging into the array.
if ( ! isset($array[$key]) || ! is_array($array[$key]))
{
$array[$key] = array();
}
$array =& $array[$key];
}
$array[array_shift($keys)] = $value;
return $array;
}
/**
* Remove one or many array items from a given array using "dot" notation.
*
* @param array $array
* @param array|string $keys
* @return void
*/
public static function forget(&$array, $keys)
{
$original =& $array;
foreach ((array) $keys as $key)
{
$parts = explode('.', $key);
while (count($parts) > 1)
{
$part = array_shift($parts);
if (isset($array[$part]) && is_array($array[$part]))
{
$array =& $array[$part];
}
}
unset($array[array_shift($parts)]);
// clean up after each pass
$array =& $original;
}
}
/**
* Returns true if and only if the given value is a string with at least one character
*
* @param mixed $value
* @return boolean
*/
public static function isNonEmptyString($value)
{
return is_string($value) && $value !== '';
}
/**
* Die and dump arguments, debugging helper method
*/
public static function dd()
{
echo '<pre>';
foreach (func_get_args() as $arg) {
var_dump($arg);
}
echo '</pre>';
exit;
}
/**
* Log arguments to the PHP error log
*/
public static function log()
{
foreach (func_get_args() as $arg) {
ob_start();
var_dump($arg);
error_log(ob_get_clean());
}
}
/**
* Log arguments to the PHP error log only if WP_DEBUG is enabled
*/
public static function debug()
{
if (defined('WP_DEBUG') && WP_DEBUG) {
call_user_func_array(array('Quform', 'log'), func_get_args());
}
}
/**
* Get the length of the given string (multibyte aware)
*
* @param string $string
* @return int
*/
public static function strlen($string)
{
return mb_strlen($string, get_bloginfo('charset'));
}
/**
* Get part of the given string (multibyte aware)
*
* @param string $string
* @param int $start
* @param int|null $length
* @return string
*/
public static function substr($string, $start, $length = null)
{
return mb_substr($string, $start, $length, get_bloginfo('charset'));
}
/**
* Generates an HTML tag
*
* @param string $tag The HTML tag
* @param array $attributes Attributes key => value list for the tag
* @param string $content Content for non-void elements (not escaped)
* @return string
*/
public static function getHtmlTag($tag, array $attributes = array(), $content = '')
{
// https://www.w3.org/TR/html5/syntax.html#void-elements
$voidElements = array('area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr');
$tag = Quform::escape(strtolower($tag));
if (in_array($tag, $voidElements)) {
$output = sprintf('<%s%s />', $tag, self::parseHtmlAttributes($attributes));
} else {
$output = sprintf('<%1$s%2$s>%3$s</%1$s>', $tag, self::parseHtmlAttributes($attributes), $content);
}
return $output;
}
/**
* Parse an array of HTML attributes into an attribute string
*
* @param array $attributes Attributes key => value list for the tag
* @return string
*/
public static function parseHtmlAttributes(array $attributes)
{
$escapedAttributes = array();
foreach ($attributes as $key => $value) {
if ($value === true) {
$escapedAttributes[] = $key;
} else {
$escapedAttributes[] = sprintf('%s="%s"', $key, Quform::escape($value));
}
}
$escapedAttributes = count($escapedAttributes) > 0 ? ' ' . implode(' ', $escapedAttributes) : '';
return $escapedAttributes;
}
/**
* Get random bytes with the given $length
*
* @param int $length
* @return string
*/
public static function randomBytes($length)
{
static $passwordHash;
if ( ! isset($passwordHash)) {
if ( ! class_exists('PasswordHash')) {
require_once ABSPATH . WPINC . '/class-phpass.php';
}
$passwordHash = new PasswordHash(8, false);
}
return $passwordHash->get_random_bytes($length);
}
/**
* Generate a random string with the given $length
*
* @param int $length
* @return string
*/
public static function randomString($length)
{
$string = '';
while (($len = strlen($string)) < $length) {
$size = $length - $len;
$bytes = Quform::randomBytes($size);
$string .= substr(str_replace(array('/', '+', '='), '', base64_encode($bytes)), 0, $size);
}
return $string;
}
/**
* Set a cookie
*
* @param string $name The name of the cookie
* @param string $value The value of the cookie
* @param int $expire The time the cookie expires as Unix timestamp
* @param bool $secure Send the cookie over HTTPS only
* @param bool $httpOnly Make the cookie only accessible over the HTTP protocol
* @param bool $logFailure Make a log entry if the cookie could not be created because headers already sent
*/
public static function setCookie($name, $value, $expire, $secure = false, $httpOnly = false, $logFailure = false)
{
if ( ! headers_sent()) {
setcookie($name, $value, $expire, COOKIEPATH, COOKIE_DOMAIN, $secure, $httpOnly);
} elseif ($logFailure && defined('WP_DEBUG') && WP_DEBUG) {
headers_sent($file, $line);
Quform::log("$name cookie cannot be set - headers already sent by $file on line $line");
}
}
/**
* Set a cookie using a header
*
* @param string $name The name of the cookie
* @param string $value The value of the cookie
* @param int $expire The time the cookie expires as Unix timestamp
* @param bool $secure Whether the cookie should be sent over HTTPS only
* @param bool $httpOnly Whether the cookie will be made accessible only through the HTTP protocol
* @param bool $sameSite Whether the cookie will be available for cross-site requests
*/
public static function setCookieHeader($name, $value, $expire, $secure = false, $httpOnly = false, $sameSite = 'Lax')
{
if (headers_sent()) {
return;
}
$reserved_chars_from = array('=', ',', ';', ' ', "\t", "\r", "\n", "\v", "\f");
$reserved_chars_to = array('%3D', '%2C', '%3B', '%20', '%09', '%0D', '%0A', '%0B', '%0C');
$str = str_replace($reserved_chars_from, $reserved_chars_to, $name);
$str .= '=';
if ((string) $value === '') {
$str .= 'deleted; expires=' . gmdate('D, d-M-Y H:i:s T', time() - 31536001) . '; Max-Age=0';
} else {
$str .= rawurlencode($value);
if ($expire !== 0) {
$maxAge = $expire - time();
$maxAge = 0 >= $maxAge ? 0 : $maxAge;
$str .= '; expires=' . gmdate('D, d-M-Y H:i:s T', $expire) . '; Max-Age=' . $maxAge;
}
}
if (COOKIEPATH) {
$str .= '; path=' . COOKIEPATH;
}
if (COOKIE_DOMAIN) {
$str .= '; domain=' . COOKIE_DOMAIN;
}
if ($secure) {
$str .= '; secure';
}
if ($httpOnly) {
$str .= '; httponly';
}
if ($sameSite) {
$str .= '; samesite=' . $sameSite;
}
header('Set-Cookie: ' . $str, false);
}
/**
* Ensure the given number $x is between $min and $max inclusive
*
* @param mixed $x
* @param mixed $min
* @param mixed $max
* @return mixed
*/
public static function clamp($x, $min, $max)
{
return min(max($x, $min), $max);
}
/**
* Get the given path with $extra appended
*
* @param string $path The path
* @param string $extra Extra path to append to the path
* @return string The combined path (no trailing slash is added)
*/
public static function pathExtra($path, $extra = '')
{
if (Quform::isNonEmptyString($extra)) {
$path .= '/' . ltrim($extra, '/');
}
return $path;
}
/**
* Get a writable temporary directory
*
* @param string $extra Extra path to append to the path
* @return string Path without trailing slash
*/
public static function getTempDir($extra = '')
{
return Quform::pathExtra(untrailingslashit(Quform::wpGetTempDir()), $extra);
}
/**
* Get a writable temporary directory
*
* This is a duplicate of the WP function get_temp_dir() because there was an issue with one
* popular plugin manually firing the wp_ajax_* hooks before WordPress does,
* causing this plugin to fatal error since this function was not available
* at that time. So we'll just use the function below in all cases instead of the
* WP function.
*
* @return string
*/
private static function wpGetTempDir()
{
static $temp = '';
if ( defined('WP_TEMP_DIR') )
return trailingslashit(WP_TEMP_DIR);
if ( $temp )
return trailingslashit( $temp );
if ( function_exists('sys_get_temp_dir') ) {
$temp = sys_get_temp_dir();
if ( @is_dir( $temp ) && wp_is_writable( $temp ) )
return trailingslashit( $temp );
}
$temp = ini_get('upload_tmp_dir');
if ( @is_dir( $temp ) && wp_is_writable( $temp ) )
return trailingslashit( $temp );
$temp = WP_CONTENT_DIR . '/';
if ( is_dir( $temp ) && wp_is_writable( $temp ) )
return $temp;
$temp = '/tmp/'; // Bug fix for the WP version
return $temp;
}
/**
* Get the URL to the WP uploads directory
*
* @param string $extra Extra path to append to the path
* @return string
*/
public static function getUploadsUrl($extra = '')
{
$uploads = wp_upload_dir();
$url = Quform::pathExtra($uploads['baseurl'], $extra);
$url = apply_filters('quform_uploads_url', $url, $extra);
return $url;
}
/**
* Get the absolute path to the WordPress upload directory. If the path is not writable it will return false.
*
* @param string $extra Extra path to append to the path
* @return string|false The upload path or false on failure
*/
public static function getUploadsDir($extra = '')
{
$uploads = wp_upload_dir();
if ($uploads['error'] !== false) {
return false;
}
$path = Quform::pathExtra($uploads['basedir'], $extra);
$path = apply_filters('quform_uploads_dir', $path, $extra);
return $path;
}
/**
* Is PCRE compiled with Unicode support?
*
* @return bool
*/
public static function hasPcreUnicodeSupport()
{
static $hasPcreUnicodeSupport;
if ($hasPcreUnicodeSupport === null) {
$hasPcreUnicodeSupport = defined('PREG_BAD_UTF8_OFFSET_ERROR') && @preg_match('/\pL/u', 'a') == 1;
}
return $hasPcreUnicodeSupport;
}
/**
* Get the available locales for Kendo scripts
*
* @return array
*/
public static function getLocales()
{
return array(
'aa' => array(
'name' => 'Afar',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'aa-DJ' => array(
'name' => 'Afar (Djibouti)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'aa-ER' => array(
'name' => 'Afar (Eritrea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'aa-ET' => array(
'name' => 'Afar (Ethiopia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'af' => array(
'name' => 'Afrikaans',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'Y-m-d g:i a'
),
'af-NA' => array(
'name' => 'Afrikaans (Namibia)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'Y-m-d g:i a'
),
'af-ZA' => array(
'name' => 'Afrikaans (South Africa)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'Y-m-d g:i a'
),
'agq' => array(
'name' => 'Aghem',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'agq-CM' => array(
'name' => 'Aghem (Cameroon)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ak' => array(
'name' => 'Akan',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'Y/m/d g:i A'
),
'ak-GH' => array(
'name' => 'Akan (Ghana)',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'Y/m/d g:i A'
),
'sq' => array(
'name' => 'Albanian',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'j.n.Y g:i a'
),
'sq-AL' => array(
'name' => 'Albanian (Albania)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'j.n.Y g:i a'
),
'sq-MK' => array(
'name' => 'Albanian (Former Yugoslav Republic of Macedonia)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j.n.Y H:i'
),
'sq-XK' => array(
'name' => 'Albanian (Kosovo)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j.n.Y H:i'
),
'am' => array(
'name' => 'Amharic',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'am-ET' => array(
'name' => 'Amharic (Ethiopia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'ar' => array(
'name' => 'Arabic',
'dateFormat' => 'd/m/y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/y h:i A'
),
'ar-DZ' => array(
'name' => 'Arabic (Algeria)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'ar-BH' => array(
'name' => 'Arabic (Bahrain)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-TD' => array(
'name' => 'Arabic (Chad)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ar-KM' => array(
'name' => 'Arabic (Comoros)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ar-DJ' => array(
'name' => 'Arabic (Djibouti)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ar-EG' => array(
'name' => 'Arabic (Egypt)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-ER' => array(
'name' => 'Arabic (Eritrea)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ar-IQ' => array(
'name' => 'Arabic (Iraq)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-IL' => array(
'name' => 'Arabic (Israel)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'ar-JO' => array(
'name' => 'Arabic (Jordan)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-KW' => array(
'name' => 'Arabic (Kuwait)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-LB' => array(
'name' => 'Arabic (Lebanon)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-LY' => array(
'name' => 'Arabic (Libya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-MR' => array(
'name' => 'Arabic (Mauritania)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ar-MA' => array(
'name' => 'Arabic (Morocco)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'ar-OM' => array(
'name' => 'Arabic (Oman)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-PS' => array(
'name' => 'Arabic (Palestinian Territories)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ar-QA' => array(
'name' => 'Arabic (Qatar)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-SA' => array(
'name' => 'Arabic (Saudi Arabia)',
'dateFormat' => 'd/m/y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/y h:i A'
),
'ar-SO' => array(
'name' => 'Arabic (Somalia)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ar-SS' => array(
'name' => 'Arabic (South Sudan)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ar-SD' => array(
'name' => 'Arabic (Sudan)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ar-SY' => array(
'name' => 'Arabic (Syria)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-TN' => array(
'name' => 'Arabic (Tunisia)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'ar-AE' => array(
'name' => 'Arabic (U.A.E.)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'ar-001' => array(
'name' => 'Arabic (World)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ar-YE' => array(
'name' => 'Arabic (Yemen)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'hy' => array(
'name' => 'Armenian',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'hy-AM' => array(
'name' => 'Armenian (Armenia)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'as' => array(
'name' => 'Assamese',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'd-m-Y A g:i'
),
'as-IN' => array(
'name' => 'Assamese (India)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'd-m-Y A g:i'
),
'asa' => array(
'name' => 'Asu',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'asa-TZ' => array(
'name' => 'Asu (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ast' => array(
'name' => 'Asturian',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ast-ES' => array(
'name' => 'Asturian (Spain)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'az' => array(
'name' => 'Azeri',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'az-Cyrl' => array(
'name' => 'Azeri (Cyrillic)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'az-Cyrl-AZ' => array(
'name' => 'Azeri (Cyrillic, Azerbaijan)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'az-Latn' => array(
'name' => 'Azeri (Latin)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'az-Latn-AZ' => array(
'name' => 'Azeri (Latin, Azerbaijan)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'ksf' => array(
'name' => 'Bafia',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ksf-CM' => array(
'name' => 'Bafia (Cameroon)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'bm' => array(
'name' => 'Bambara',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'bm-Latn' => array(
'name' => 'Bambara (Latin)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'bm-Latn-ML' => array(
'name' => 'Bambara (Latin, Mali)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'bas' => array(
'name' => 'Basaa',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'bas-CM' => array(
'name' => 'Basaa (Cameroon)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ba' => array(
'name' => 'Bashkir',
'dateFormat' => 'd.m.y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.y G:i'
),
'ba-RU' => array(
'name' => 'Bashkir (Russia)',
'dateFormat' => 'd.m.y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.y G:i'
),
'eu' => array(
'name' => 'Basque',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y/m/d H:i'
),
'eu-ES' => array(
'name' => 'Basque (Spain)',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y/m/d H:i'
),
'be' => array(
'name' => 'Belarusian',
'dateFormat' => 'd.m.y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.y H:i'
),
'be-BY' => array(
'name' => 'Belarusian (Belarus)',
'dateFormat' => 'd.m.y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.y H:i'
),
'bem' => array(
'name' => 'Bemba',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'bem-ZM' => array(
'name' => 'Bemba (Zambia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'bez' => array(
'name' => 'Bena',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'bez-TZ' => array(
'name' => 'Bena (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'bn' => array(
'name' => 'Bengali',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd-m-y H.i'
),
'bn-BD' => array(
'name' => 'Bengali (Bangladesh)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd-m-y H.i'
),
'bn-IN' => array(
'name' => 'Bengali (India)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd-m-y H.i'
),
'byn' => array(
'name' => 'Bilen',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'byn-ER' => array(
'name' => 'Bilen (Eritrea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'bin' => array(
'name' => 'Bini',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:iA',
'dateTimeFormat' => 'j/n/Y g:iA'
),
'bin-NG' => array(
'name' => 'Bini (Nigeria)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:iA',
'dateTimeFormat' => 'j/n/Y g:iA'
),
'brx' => array(
'name' => 'Bodo',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'brx-IN' => array(
'name' => 'Bodo (India)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'bs' => array(
'name' => 'Bosnian',
'dateFormat' => 'd.m.Y.',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y. H:i'
),
'bs-Cyrl' => array(
'name' => 'Bosnian (Cyrillic)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y G:i'
),
'bs-Cyrl-BA' => array(
'name' => 'Bosnian (Cyrillic, Bosnia and Herzegovina)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y G:i'
),
'bs-Latn' => array(
'name' => 'Bosnian (Latin)',
'dateFormat' => 'd.m.Y.',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y. H:i'
),
'bs-Latn-BA' => array(
'name' => 'Bosnian (Latin, Bosnia and Herzegovina)',
'dateFormat' => 'd.m.Y.',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y. H:i'
),
'br' => array(
'name' => 'Breton',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'br-FR' => array(
'name' => 'Breton (France)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'bg' => array(
'name' => 'Bulgarian',
'dateFormat' => 'j.n.Y г.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y г. G:i'
),
'bg-BG' => array(
'name' => 'Bulgarian (Bulgaria)',
'dateFormat' => 'j.n.Y г.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y г. G:i'
),
'my' => array(
'name' => 'Burmese',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'my-MM' => array(
'name' => 'Burmese (Myanmar)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'ca' => array(
'name' => 'Catalan',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'ca-AD' => array(
'name' => 'Catalan (Andorra)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'ca-FR' => array(
'name' => 'Catalan (France)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'ca-IT' => array(
'name' => 'Catalan (Italy)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'ca-ES' => array(
'name' => 'Catalan (Spain)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'tzm' => array(
'name' => 'Central Atlas Tamazight',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'tzm-Arab' => array(
'name' => 'Central Atlas Tamazight (Arabic)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'tzm-Arab-MA' => array(
'name' => 'Central Atlas Tamazight (Arabic, Morocco)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'tzm-Latn' => array(
'name' => 'Central Atlas Tamazight (Latin)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'tzm-Latn-DZ' => array(
'name' => 'Central Atlas Tamazight (Latin, Algeria)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'tzm-Latn-MA' => array(
'name' => 'Central Atlas Tamazight (Latin, Morocco)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'tzm-Tfng' => array(
'name' => 'Central Atlas Tamazight (Tifinagh)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'tzm-Tfng-MA' => array(
'name' => 'Central Atlas Tamazight (Tifinagh, Morocco)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'ku' => array(
'name' => 'Central Kurdish',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'Y/m/d h:i A'
),
'ku-Arab' => array(
'name' => 'Central Kurdish (Arabic)',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'Y/m/d h:i A'
),
'ku-Arab-IQ' => array(
'name' => 'Central Kurdish (Arabic, Iraq)',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'Y/m/d h:i A'
),
'ce' => array(
'name' => 'Chechen',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'ce-RU' => array(
'name' => 'Chechen (Russia)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'chr' => array(
'name' => 'Cherokee',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'chr-Cher' => array(
'name' => 'Cherokee',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'chr-Cher-US' => array(
'name' => 'Cherokee (United States)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'cgg' => array(
'name' => 'Chiga',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'cgg-UG' => array(
'name' => 'Chiga (Uganda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'zh' => array(
'name' => 'Chinese',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/n/j G:i'
),
'zh-CN' => array(
'name' => 'Chinese (Simplified, China)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/n/j G:i'
),
'zh-Hans' => array(
'name' => 'Chinese (Simplified Han)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/n/j G:i'
),
'zh-Hans-HK' => array(
'name' => 'Chinese (Simplified Han, Hong Kong SAR)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'Ag:i',
'dateTimeFormat' => 'j/n/Y Ag:i'
),
'zh-Hans-MO' => array(
'name' => 'Chinese (Simplified Han, Macao SAR)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'Ag:i',
'dateTimeFormat' => 'j/n/Y Ag:i'
),
'zh-SG' => array(
'name' => 'Chinese (Simplified, Singapore)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'j/n/Y A g:i'
),
'zh-Hant' => array(
'name' => 'Chinese (Traditional)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'zh-HK' => array(
'name' => 'Chinese (Traditional, Hong Kong SAR)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'zh-MO' => array(
'name' => 'Chinese (Traditional, Macao SAR)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'zh-TW' => array(
'name' => 'Chinese (Traditional, Taiwan)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'A h:i',
'dateTimeFormat' => 'Y/n/j A h:i'
),
'zh-CHS' => array(
'name' => 'Chinese (Simplified) (zh-CHS)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/n/j G:i'
),
'zh-CHT' => array(
'name' => 'Chinese (Traditional) (zh-CHT)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'cu' => array(
'name' => 'Church Slavic',
'dateFormat' => 'Y.m.d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y.m.d H:i'
),
'cu-RU' => array(
'name' => 'Church Slavic (Russia)',
'dateFormat' => 'Y.m.d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y.m.d H:i'
),
'ksh' => array(
'name' => 'Colognian',
'dateFormat' => 'j. n. Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j. n. Y H:i'
),
'ksh-DE' => array(
'name' => 'Colognian (Germany)',
'dateFormat' => 'j. n. Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j. n. Y H:i'
),
'kw' => array(
'name' => 'Cornish',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'kw-GB' => array(
'name' => 'Cornish (United Kingdom)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'co' => array(
'name' => 'Corsican',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'co-FR' => array(
'name' => 'Corsican (France)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'hr' => array(
'name' => 'Croatian',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y. G:i'
),
'hr-BA' => array(
'name' => 'Croatian (Latin, Bosnia and Herzegovina)',
'dateFormat' => 'd.m.Y.',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y. H:i'
),
'hr-HR' => array(
'name' => 'Croatian (Croatia)',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y. G:i'
),
'cs' => array(
'name' => 'Czech',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'cs-CZ' => array(
'name' => 'Czech (Czech Republic)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'da' => array(
'name' => 'Danish',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'da-DK' => array(
'name' => 'Danish (Denmark)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'da-GL' => array(
'name' => 'Danish (Greenland)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g.i A',
'dateTimeFormat' => 'd/m/Y g.i A'
),
'prs' => array(
'name' => 'Dari',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'Y/n/j g:i A'
),
'prs-AF' => array(
'name' => 'Dari (Afghanistan)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'Y/n/j g:i A'
),
'dv' => array(
'name' => 'Divehi',
'dateFormat' => 'd/m/y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/y H:i'
),
'dv-MV' => array(
'name' => 'Divehi (Maldives)',
'dateFormat' => 'd/m/y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/y H:i'
),
'dua' => array(
'name' => 'Duala',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'dua-CM' => array(
'name' => 'Duala (Cameroon)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'nl' => array(
'name' => 'Dutch',
'dateFormat' => 'j-n-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j-n-Y H:i'
),
'nl-AW' => array(
'name' => 'Dutch (Aruba)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'nl-BE' => array(
'name' => 'Dutch (Belgium)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/m/Y G:i'
),
'nl-BQ' => array(
'name' => 'Dutch (Bonaire, Sint Eustatius and Saba)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'nl-CW' => array(
'name' => 'Dutch (Curaçao)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'nl-NL' => array(
'name' => 'Dutch (Netherlands)',
'dateFormat' => 'j-n-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j-n-Y H:i'
),
'nl-SR' => array(
'name' => 'Dutch (Suriname)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'nl-SX' => array(
'name' => 'Dutch (Sint Maarten)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'dz' => array(
'name' => 'Dzongkha',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'ཆུ་ཚོད་ g སྐར་མ་ i A',
'dateTimeFormat' => 'Y-m-d ཆུ་ཚོད་ g སྐར་མ་ i A'
),
'dz-BT' => array(
'name' => 'Dzongkha (Bhutan)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'ཆུ་ཚོད་ g སྐར་མ་ i A',
'dateTimeFormat' => 'Y-m-d ཆུ་ཚོད་ g སྐར་མ་ i A'
),
'ebu' => array(
'name' => 'Embu',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ebu-KE' => array(
'name' => 'Embu (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en' => array(
'name' => 'English',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-AS' => array(
'name' => 'English (American Samoa)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-AI' => array(
'name' => 'English (Anguilla)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-AG' => array(
'name' => 'English (Antigua & Barbuda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-AU' => array(
'name' => 'English (Australia)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'en-AT' => array(
'name' => 'English (Austria)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-BS' => array(
'name' => 'English (Bahamas)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-BB' => array(
'name' => 'English (Barbados)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-BE' => array(
'name' => 'English (Belgium)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-BZ' => array(
'name' => 'English (Belize)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-BM' => array(
'name' => 'English (Bermuda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-BW' => array(
'name' => 'English (Botswana)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-IO' => array(
'name' => 'English (British Indian Ocean Territory)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-VG' => array(
'name' => 'English (British Virgin Islands)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-BI' => array(
'name' => 'English (Burundi)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-CM' => array(
'name' => 'English (Cameroon)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-CA' => array(
'name' => 'English (Canada)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'Y-m-d g:i A'
),
'en-029' => array(
'name' => 'English (Caribbean)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-KY' => array(
'name' => 'English (Cayman Islands)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-CX' => array(
'name' => 'English (Christmas Island)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-CC' => array(
'name' => 'English (Cocos (Keeling) Islands)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-CK' => array(
'name' => 'English (Cook Islands)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-CY' => array(
'name' => 'English (Cyprus)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-DK' => array(
'name' => 'English (Denmark)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd/m/Y H.i'
),
'en-DM' => array(
'name' => 'English (Dominica)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-ER' => array(
'name' => 'English (Eritrea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-150' => array(
'name' => 'English (Europe)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-FK' => array(
'name' => 'English (Falkland Islands)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-FJ' => array(
'name' => 'English (Fiji)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-FI' => array(
'name' => 'English (Finland)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G.i',
'dateTimeFormat' => 'd/m/Y G.i'
),
'en-GM' => array(
'name' => 'English (Gambia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-DE' => array(
'name' => 'English (Germany)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-GH' => array(
'name' => 'English (Ghana)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-GI' => array(
'name' => 'English (Gibraltar)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-GD' => array(
'name' => 'English (Grenada)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-GU' => array(
'name' => 'English (Guam)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-GY' => array(
'name' => 'English (Guyana)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-GG' => array(
'name' => 'English (Guernsey)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-HK' => array(
'name' => 'English (Hong Kong)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'en-IN' => array(
'name' => 'English (India)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'en-ID' => array(
'name' => 'English (Indonesia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'en-IE' => array(
'name' => 'English (Ireland)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-IM' => array(
'name' => 'English (Isle of Man)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-IL' => array(
'name' => 'English (Israel)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'en-JM' => array(
'name' => 'English (Jamaica)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'en-JE' => array(
'name' => 'English (Jersey)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-KE' => array(
'name' => 'English (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-KI' => array(
'name' => 'English (Kiribati)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-LS' => array(
'name' => 'English (Lesotho)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-LR' => array(
'name' => 'English (Liberia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-MO' => array(
'name' => 'English (Macao SAR)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-MG' => array(
'name' => 'English (Madagascar)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-MY' => array(
'name' => 'English (Malaysia)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'en-MW' => array(
'name' => 'English (Malawi)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-MT' => array(
'name' => 'English (Malta)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-MH' => array(
'name' => 'English (Marshall Islands)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-MU' => array(
'name' => 'English (Mauritius)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-FM' => array(
'name' => 'English (Micronesia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-MS' => array(
'name' => 'English (Montserrat)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-NA' => array(
'name' => 'English (Namibia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-NR' => array(
'name' => 'English (Nauru)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-NL' => array(
'name' => 'English (Netherlands)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-NZ' => array(
'name' => 'English (New Zealand)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'en-NG' => array(
'name' => 'English (Nigeria)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-NU' => array(
'name' => 'English (Niue)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-NF' => array(
'name' => 'English (Norfolk Island)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-MP' => array(
'name' => 'English (Northern Mariana Islands)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-PG' => array(
'name' => 'English (Papua New Guinea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-PK' => array(
'name' => 'English (Pakistan)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-PW' => array(
'name' => 'English (Palau)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-PN' => array(
'name' => 'English (Pitcairn Islands)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-PR' => array(
'name' => 'English (Puerto Rico)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-PH' => array(
'name' => 'English (Republic of the Philippines)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-RW' => array(
'name' => 'English (Rwanda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-WS' => array(
'name' => 'English (Samoa)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-SC' => array(
'name' => 'English (Seychelles)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-SL' => array(
'name' => 'English (Sierra Leone)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-SG' => array(
'name' => 'English (Singapore)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'en-SX' => array(
'name' => 'English (Sint Maarten)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-SI' => array(
'name' => 'English (Slovenia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-SB' => array(
'name' => 'English (Solomon Islands)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-ZA' => array(
'name' => 'English (South Africa)',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'Y/m/d g:i A'
),
'en-SS' => array(
'name' => 'English (South Sudan)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-SH' => array(
'name' => 'English (St. Helena)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-KN' => array(
'name' => 'English (St. Kitts & Nevis)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-LC' => array(
'name' => 'English (St. Lucia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-VC' => array(
'name' => 'English (St. Vincent & Grenadines)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-SD' => array(
'name' => 'English (Sudan)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-SZ' => array(
'name' => 'English (Swaziland)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-SE' => array(
'name' => 'English (Sweden)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'en-CH' => array(
'name' => 'English (Switzerland)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-TZ' => array(
'name' => 'English (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-TK' => array(
'name' => 'English (Tokelau)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-TO' => array(
'name' => 'English (Tonga)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-TT' => array(
'name' => 'English (Trinidad and Tobago)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-TC' => array(
'name' => 'English (Turks & Caicos Islands)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-TV' => array(
'name' => 'English (Tuvala)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-UG' => array(
'name' => 'English (Uganda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-GB' => array(
'name' => 'English (United Kingdom)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'en-US' => array(
'name' => 'English (United States)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-UM' => array(
'name' => 'English (U.S. Outlying Islands)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-VI' => array(
'name' => 'English (U.S. Virgin Islands)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'en-VU' => array(
'name' => 'English (Vanuatu)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-001' => array(
'name' => 'English (World)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-ZM' => array(
'name' => 'English (Zambia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'en-ZW' => array(
'name' => 'English (Zimbabwe)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'eo' => array(
'name' => 'Esperanto',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'eo-001' => array(
'name' => 'Esperanto (World)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'et' => array(
'name' => 'Estonian',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'et-EE' => array(
'name' => 'Estonian (Estonia)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'ee' => array(
'name' => 'Ewe',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'A \g\a g:i',
'dateTimeFormat' => 'n/j/Y A \g\a g:i'
),
'ewo' => array(
'name' => 'Ewondo',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ewo-CM' => array(
'name' => 'Ewondo (Cameroon)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ee-GH' => array(
'name' => 'Ewe (Ghana)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'A \g\a g:i',
'dateTimeFormat' => 'n/j/Y A \g\a g:i'
),
'ee-TG' => array(
'name' => 'Ewe (Togo)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'n/j/Y H:i'
),
'fo' => array(
'name' => 'Faroese',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'fo-DK' => array(
'name' => 'Faroese (Denmark)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'fo-FO' => array(
'name' => 'Faroese (Faroe Islands)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'fil' => array(
'name' => 'Filipino',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'fil-PH' => array(
'name' => 'Filipino (Philippines)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'fi' => array(
'name' => 'Finnish',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G.i',
'dateTimeFormat' => 'j.n.Y G.i'
),
'fi-FI' => array(
'name' => 'Finnish (Finland)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G.i',
'dateTimeFormat' => 'j.n.Y G.i'
),
'fr' => array(
'name' => 'French',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-DZ' => array(
'name' => 'French (Algeria)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'fr-BE' => array(
'name' => 'French (Belgium)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-y H:i'
),
'fr-BJ' => array(
'name' => 'French (Benin)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-BI' => array(
'name' => 'French (Burundi)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-BF' => array(
'name' => 'French (Burkina Faso)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-CM' => array(
'name' => 'French (Cameroon)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-CA' => array(
'name' => 'French (Canada)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'fr-029' => array(
'name' => 'French (Caribbean)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'fr-CF' => array(
'name' => 'French (Central African Republic)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-TD' => array(
'name' => 'French (Chad)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'fr-KM' => array(
'name' => 'French (Comoros)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-CG' => array(
'name' => 'French (Congo - Brazzaville)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-CD' => array(
'name' => 'French (Congo - Kinshasa)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-CI' => array(
'name' => 'French (Côte d’Ivoire)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-DJ' => array(
'name' => 'French (Djibouti)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'fr-GQ' => array(
'name' => 'French (Equatorial Guinea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-FR' => array(
'name' => 'French (France)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-GF' => array(
'name' => 'French (French Guiana)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-PF' => array(
'name' => 'French (French Polynesia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-GA' => array(
'name' => 'French (Gabon)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-GP' => array(
'name' => 'French (Guadeloupe)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-GN' => array(
'name' => 'French (Guinea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-HT' => array(
'name' => 'French (Haiti)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-LU' => array(
'name' => 'French (Luxembourg)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-MG' => array(
'name' => 'French (Madagascar)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-ML' => array(
'name' => 'French (Mali)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-MQ' => array(
'name' => 'French (Martinique)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-MR' => array(
'name' => 'French (Mauritania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'fr-MU' => array(
'name' => 'French (Mauritius)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-YT' => array(
'name' => 'French (Mayotte)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-MA' => array(
'name' => 'French (Morocco)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-NC' => array(
'name' => 'French (New Caledonia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-NE' => array(
'name' => 'French (Niger)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-MC' => array(
'name' => 'French (Principality of Monaco)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-RE' => array(
'name' => 'French (Réunion)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-RW' => array(
'name' => 'French (Rwanda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-SN' => array(
'name' => 'French (Senegal)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-SC' => array(
'name' => 'French (Seychelles)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-BL' => array(
'name' => 'French (St. Barthélemy)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-MF' => array(
'name' => 'French (St. Martin)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-PM' => array(
'name' => 'French (St. Pierre & Miquelon)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-CH' => array(
'name' => 'French (Switzerland)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'fr-SY' => array(
'name' => 'French (Syria)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'fr-TG' => array(
'name' => 'French (Togo)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fr-TN' => array(
'name' => 'French (Tunisia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'fr-VU' => array(
'name' => 'French (Vanuatu)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'fr-WF' => array(
'name' => 'French (Wallis & Futuna)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fy' => array(
'name' => 'Frisian',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'fy-NL' => array(
'name' => 'Frisian (Netherlands)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'fur' => array(
'name' => 'Friulian',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'fur-IT' => array(
'name' => 'Friulian (Italy)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ff' => array(
'name' => 'Fulah',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ff-CM' => array(
'name' => 'Fulah (Cameroon)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ff-GN' => array(
'name' => 'Fulah (Guinea)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ff-Latn' => array(
'name' => 'Fulah (Latin)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ff-Latn-SN' => array(
'name' => 'Fulah (Latin, Senegal)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ff-MR' => array(
'name' => 'Fulah (Mauritania)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ff-NG' => array(
'name' => 'Fulah (Nigeria)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'gl' => array(
'name' => 'Galician',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'gl-ES' => array(
'name' => 'Galician (Spain)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'lg' => array(
'name' => 'Ganda',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'lg-UG' => array(
'name' => 'Ganda (Uganda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ka' => array(
'name' => 'Georgian',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'ka-GE' => array(
'name' => 'Georgian (Georgia)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'de' => array(
'name' => 'German',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'de-AT' => array(
'name' => 'German (Austria)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'de-BE' => array(
'name' => 'German (Belgium)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'de-DE' => array(
'name' => 'German (Germany)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'de-LI' => array(
'name' => 'German (Liechtenstein)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'de-LU' => array(
'name' => 'German (Luxembourg)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'de-CH' => array(
'name' => 'German (Switzerland)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'el' => array(
'name' => 'Greek',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'j/n/Y g:i a'
),
'el-CY' => array(
'name' => 'Greek (Cyprus)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'j/n/Y g:i a'
),
'el-GR' => array(
'name' => 'Greek (Greece)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'j/n/Y g:i a'
),
'kl' => array(
'name' => 'Greenlandic',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'kl-GL' => array(
'name' => 'Greenlandic (Greenland)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'gn' => array(
'name' => 'Guarani',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'gn-PY' => array(
'name' => 'Guarani (Paraguay)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'gu' => array(
'name' => 'Gujarati',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-y H:i'
),
'gu-IN' => array(
'name' => 'Gujarati (India)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-y H:i'
),
'guz' => array(
'name' => 'Gusii',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'guz-KE' => array(
'name' => 'Gusii (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ha' => array(
'name' => 'Hausa',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ha-Latn' => array(
'name' => 'Hausa (Latin)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ha-Latn-GH' => array(
'name' => 'Hausa (Latin, Ghana)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ha-Latn-NE' => array(
'name' => 'Hausa (Latin, Niger)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ha-Latn-NG' => array(
'name' => 'Hausa (Latin, Nigeria)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'haw' => array(
'name' => 'Hawaiian',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'haw-US' => array(
'name' => 'Hawaiian (United States)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'he' => array(
'name' => 'Hebrew',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'he-IL' => array(
'name' => 'Hebrew (Israel)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'hi' => array(
'name' => 'Hindi',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'hi-IN' => array(
'name' => 'Hindi (India)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'hu' => array(
'name' => 'Hungarian',
'dateFormat' => 'Y. m. d.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y. m. d. G:i'
),
'hu-HU' => array(
'name' => 'Hungarian (Hungary)',
'dateFormat' => 'Y. m. d.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y. m. d. G:i'
),
'ibb' => array(
'name' => 'Ibibio',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:iA',
'dateTimeFormat' => 'j/n/Y g:iA'
),
'ibb-NG' => array(
'name' => 'Ibibio (Nigeria)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:iA',
'dateTimeFormat' => 'j/n/Y g:iA'
),
'is' => array(
'name' => 'Icelandic',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j.n.Y H:i'
),
'is-IS' => array(
'name' => 'Icelandic (Iceland)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j.n.Y H:i'
),
'ig' => array(
'name' => 'Igbo',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'ig-NG' => array(
'name' => 'Igbo (Nigeria)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'id' => array(
'name' => 'Indonesian',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd/m/Y H.i'
),
'id-ID' => array(
'name' => 'Indonesian (Indonesia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd/m/Y H.i'
),
'ia' => array(
'name' => 'Interlingua',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y/m/d H:i'
),
'ia-001' => array(
'name' => 'Interlingua (World)',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y/m/d H:i'
),
'ia-FR' => array(
'name' => 'Interlingua (France)',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y/m/d H:i'
),
'iu' => array(
'name' => 'Inuktitut',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'iu-Latn' => array(
'name' => 'Inuktitut (Latin)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'iu-Latn-CA' => array(
'name' => 'Inuktitut (Latin, Canada)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'iu-Cans' => array(
'name' => 'Inuktitut (Syllabics)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'iu-Cans-CA' => array(
'name' => 'Inuktitut (Syllabics, Canada)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ga' => array(
'name' => 'Irish',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ga-IE' => array(
'name' => 'Irish (Ireland)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'it' => array(
'name' => 'Italian',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'it-IT' => array(
'name' => 'Italian (Italy)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'it-SM' => array(
'name' => 'Italian (San Marino)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'it-CH' => array(
'name' => 'Italian (Switzerland)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'ja' => array(
'name' => 'Japanese',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/m/d G:i'
),
'ja-JP' => array(
'name' => 'Japanese (Japan)',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/m/d G:i'
),
'jv' => array(
'name' => 'Javanese',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd/m/Y H.i'
),
'jv-Java' => array(
'name' => 'Javanese (Javanese)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd/m/Y H.i'
),
'jv-Java-ID' => array(
'name' => 'Javanese (Javanese, Indonesia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd/m/Y H.i'
),
'jv-Latn' => array(
'name' => 'Javanese (Latin)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd/m/Y H.i'
),
'jv-Latn-ID' => array(
'name' => 'Javanese (Latin, Indonesia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd/m/Y H.i'
),
'dyo' => array(
'name' => 'Jola-Fonyi',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'dyo-SN' => array(
'name' => 'Jola-Fonyi (Senegal)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'kea' => array(
'name' => 'Kabuverdianu',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'kea-CV' => array(
'name' => 'Kabuverdianu (Cabo Verde)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'kab' => array(
'name' => 'Kabyle',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'kab-DZ' => array(
'name' => 'Kabyle (Algeria)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'kkj' => array(
'name' => 'Kako',
'dateFormat' => 'd/m Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m Y H:i'
),
'kkj-CM' => array(
'name' => 'Kako (Cameroon)',
'dateFormat' => 'd/m Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m Y H:i'
),
'kln' => array(
'name' => 'Kalenjin',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'kln-KE' => array(
'name' => 'Kalenjin (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'kam' => array(
'name' => 'Kamba',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'kam-KE' => array(
'name' => 'Kamba (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'kn' => array(
'name' => 'Kannada',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-y H:i'
),
'kn-IN' => array(
'name' => 'Kannada (India)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-y H:i'
),
'kr' => array(
'name' => 'Kanuri',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'kr-NG' => array(
'name' => 'Kanuri (Nigeria)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ks' => array(
'name' => 'Kashmiri',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'ks-Deva' => array(
'name' => 'Kashmiri (Devanagari)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'ks-Deva-IN' => array(
'name' => 'Kashmiri (Devanagari, India)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'ks-Arab' => array(
'name' => 'Kashmiri (Perso-Arabic)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'ks-Arab-IN' => array(
'name' => 'Kashmiri (Perso-Arabic, India)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'kk' => array(
'name' => 'Kazakh',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'kk-KZ' => array(
'name' => 'Kazakh (Kazakhstan)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'km' => array(
'name' => 'Khmer',
'dateFormat' => 'd/m/y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/y G:i'
),
'km-KH' => array(
'name' => 'Khmer (Cambodia)',
'dateFormat' => 'd/m/y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/y G:i'
),
'quc' => array(
'name' => 'K\'iche\'',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'd/m/Y g:i a'
),
'quc-Latn' => array(
'name' => 'K\'iche\' (Latin)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'd/m/Y g:i a'
),
'quc-Latn-GT' => array(
'name' => 'K\'iche\' (Latin, Guatemala)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'd/m/Y g:i a'
),
'qut' => array(
'name' => 'K\'iche\' (qut)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'd/m/Y g:i a'
),
'qut-GT' => array(
'name' => 'K\'iche\' (qut, Guatemala)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'd/m/Y g:i a'
),
'ki' => array(
'name' => 'Kikuyu',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ki-KE' => array(
'name' => 'Kikuyu (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'rw' => array(
'name' => 'Kinyarwanda',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y/m/d H:i'
),
'rw-RW' => array(
'name' => 'Kinyarwanda (Rwanda)',
'dateFormat' => 'Y/m/d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y/m/d H:i'
),
'sw' => array(
'name' => 'Kiswahili',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'sw-CD' => array(
'name' => 'Kiswahili (Congo DRC)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'sw-KE' => array(
'name' => 'Kiswahili (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'sw-TZ' => array(
'name' => 'Kiswahili (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'sw-UG' => array(
'name' => 'Kiswahili (Uganda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'kok' => array(
'name' => 'Konkani',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'kok-IN' => array(
'name' => 'Konkani (India)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'ko' => array(
'name' => 'Korean',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'Y-m-d A g:i'
),
'ko-KP' => array(
'name' => 'Korean (North Korea)',
'dateFormat' => 'Y. n. j.',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'Y. n. j. A g:i'
),
'ko-KR' => array(
'name' => 'Korean (Korea)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'Y-m-d A g:i'
),
'khq' => array(
'name' => 'Koyra Chiini',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'khq-ML' => array(
'name' => 'Koyra Chiini (Mali)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ses' => array(
'name' => 'Koyraboro Senni',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ses-ML' => array(
'name' => 'Koyraboro Senni (Mali)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ku-Arab-IR' => array(
'name' => 'Kurdish (Perso-Arabic, Iran)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'nmg' => array(
'name' => 'Kwasio',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'nmg-CM' => array(
'name' => 'Kwasio (Cameroon)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ky' => array(
'name' => 'Kyrgyz',
'dateFormat' => 'j-M y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j-M y H:i'
),
'ky-KG' => array(
'name' => 'Kyrgyz (Kyrgyzstan)',
'dateFormat' => 'j-M y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j-M y H:i'
),
'lkt' => array(
'name' => 'Lakota',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'lkt-US' => array(
'name' => 'Lakota (United States)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'lag' => array(
'name' => 'Langi',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'lag-TZ' => array(
'name' => 'Langi (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'lo' => array(
'name' => 'Lao',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'lo-LA' => array(
'name' => 'Lao (Lao P.D.R.)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'la' => array(
'name' => 'Latin',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'la-001' => array(
'name' => 'Latin (World)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'lv' => array(
'name' => 'Latvian',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'lv-LV' => array(
'name' => 'Latvian (Latvia)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'ln' => array(
'name' => 'Lingala',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ln-AO' => array(
'name' => 'Lingala (Angola)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ln-CD' => array(
'name' => 'Lingala (Congo DRC)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ln-CF' => array(
'name' => 'Lingala (Central African Republic)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ln-CG' => array(
'name' => 'Lingala (Congo)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'lt' => array(
'name' => 'Lithuanian',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'lt-LT' => array(
'name' => 'Lithuanian (Lithuania)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'dsb' => array(
'name' => 'Lower Sorbian',
'dateFormat' => 'j. n. Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j. n. Y H:i'
),
'dsb-DE' => array(
'name' => 'Lower Sorbian (Germany)',
'dateFormat' => 'j. n. Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j. n. Y H:i'
),
'lu' => array(
'name' => 'Luba-Katanga',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'lu-CD' => array(
'name' => 'Luba-Katanga (Congo DRC)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'luo' => array(
'name' => 'Luo',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'luo-KE' => array(
'name' => 'Luo (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'lb' => array(
'name' => 'Luxembourgish',
'dateFormat' => 'd.m.y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.y H:i'
),
'lb-LU' => array(
'name' => 'Luxembourgish (Luxembourg)',
'dateFormat' => 'd.m.y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.y H:i'
),
'luy' => array(
'name' => 'Luyia',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'luy-KE' => array(
'name' => 'Luyia (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mk' => array(
'name' => 'Macedonian',
'dateFormat' => 'd.n.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.n.Y H:i'
),
'mk-MK' => array(
'name' => 'Macedonian (Former Yugoslav Republic of Macedonia)',
'dateFormat' => 'd.n.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.n.Y H:i'
),
'jmc' => array(
'name' => 'Machame',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'jmc-TZ' => array(
'name' => 'Machame (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mgh' => array(
'name' => 'Makhuwa-Meetto',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mgh-MZ' => array(
'name' => 'Makhuwa-Meetto (Mozambique)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'kde' => array(
'name' => 'Makonde',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'kde-TZ' => array(
'name' => 'Makonde (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mg' => array(
'name' => 'Malagasy',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'mg-MG' => array(
'name' => 'Malagasy (Madagascar)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ms' => array(
'name' => 'Malay',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'ms-BN' => array(
'name' => 'Malay (Brunei)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'ms-MY' => array(
'name' => 'Malay (Malaysia)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'ms-SG' => array(
'name' => 'Malay (Singapore)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'ml' => array(
'name' => 'Malayalam',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ml-IN' => array(
'name' => 'Malayalam (India)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'mt' => array(
'name' => 'Maltese',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mt-MT' => array(
'name' => 'Maltese (Malta)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mni' => array(
'name' => 'Manipuri',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mni-IN' => array(
'name' => 'Manipuri (India)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'gv' => array(
'name' => 'Manx',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'gv-IM' => array(
'name' => 'Manx (Isle of Man)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mi' => array(
'name' => 'Maori',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'd/m/Y g:i a'
),
'mi-NZ' => array(
'name' => 'Maori (New Zealand)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'd/m/Y g:i a'
),
'arn' => array(
'name' => 'Mapudungun',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'arn-CL' => array(
'name' => 'Mapudungun (Chile)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'mr' => array(
'name' => 'Marathi',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'mr-IN' => array(
'name' => 'Marathi (India)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'mas' => array(
'name' => 'Masai',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mas-KE' => array(
'name' => 'Masai (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mas-TZ' => array(
'name' => 'Masai (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mzn' => array(
'name' => 'Mazanderani',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mzn-IR' => array(
'name' => 'Mazanderani (Iran)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mer' => array(
'name' => 'Meru',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mer-KE' => array(
'name' => 'Meru (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'mgo' => array(
'name' => 'Metaʼ',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'mgo-CM' => array(
'name' => 'Metaʼ (Cameroon)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'moh' => array(
'name' => 'Mohawk',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'moh-CA' => array(
'name' => 'Mohawk (Canada)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'mn' => array(
'name' => 'Mongolian',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'mn-Cyrl' => array(
'name' => 'Mongolian (Cyrillic)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'mn-MN' => array(
'name' => 'Mongolian (Cyrillic, Mongolia)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'mn-Mong' => array(
'name' => 'Mongolian (Traditional Mongolian)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/n/j G:i'
),
'mn-Mong-MN' => array(
'name' => 'Mongolian (Traditional Mongolian, Mongolia)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/n/j G:i'
),
'mn-Mong-CN' => array(
'name' => 'Mongolian (Traditional Mongolian, China)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/n/j G:i'
),
'mfe' => array(
'name' => 'Morisyen',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'mfe-MU' => array(
'name' => 'Morisyen (Mauritius)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'mua' => array(
'name' => 'Mundang',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'mua-CM' => array(
'name' => 'Mundang (Cameroon)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'naq' => array(
'name' => 'Nama',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'naq-NA' => array(
'name' => 'Nama (Namibia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'nqo' => array(
'name' => 'N\'ko',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'A h:i',
'dateTimeFormat' => 'd/m/Y A h:i'
),
'nqo-GN' => array(
'name' => 'N\'ko (Guinea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'A h:i',
'dateTimeFormat' => 'd/m/Y A h:i'
),
'ne' => array(
'name' => 'Nepali',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'ne-IN' => array(
'name' => 'Nepali (India)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'Y-m-d g:i A'
),
'ne-NP' => array(
'name' => 'Nepali (Nepal)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'nnh' => array(
'name' => 'Ngiemboon',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'nnh-CM' => array(
'name' => 'Ngiemboon (Cameroon)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'jgo' => array(
'name' => 'Ngomba',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'jgo-CM' => array(
'name' => 'Ngomba (Cameroon)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'nd' => array(
'name' => 'North Ndebele',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'nd-ZW' => array(
'name' => 'North Ndebele (Zimbabwe)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'lrc' => array(
'name' => 'Northern Luri',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'lrc-IR' => array(
'name' => 'Northern Luri (Iran)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'lrc-IQ' => array(
'name' => 'Northern Luri (Iraq)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'Y-m-d g:i A'
),
'no' => array(
'name' => 'Norwegian',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd.m.Y H.i'
),
'nb' => array(
'name' => 'Norwegian (Bokmål)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd.m.Y H.i'
),
'nb-NO' => array(
'name' => 'Norwegian (Bokmål, Norway)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd.m.Y H.i'
),
'nb-SJ' => array(
'name' => 'Norwegian (Bokmål, Svalbard and Jan Mayen)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'd.m.Y H.i'
),
'nn' => array(
'name' => 'Norwegian (Nynorsk)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'nn-NO' => array(
'name' => 'Norwegian (Nynorsk, Norway)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'nus' => array(
'name' => 'Nuer',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'nus-SS' => array(
'name' => 'Nuer (South Sudan)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/m/Y g:i A'
),
'nyn' => array(
'name' => 'Nyankole',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'nyn-UG' => array(
'name' => 'Nyankole (Uganda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'oc' => array(
'name' => 'Occitan',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H \h i',
'dateTimeFormat' => 'd/m/Y H \h i'
),
'oc-FR' => array(
'name' => 'Occitan (France)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H \h i',
'dateTimeFormat' => 'd/m/Y H \h i'
),
'or' => array(
'name' => 'Odia',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-y H:i'
),
'or-IN' => array(
'name' => 'Odia (India)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-y H:i'
),
'om' => array(
'name' => 'Oromo',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'om-ET' => array(
'name' => 'Oromo (Ethiopia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'om-KE' => array(
'name' => 'Oromo (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'os' => array(
'name' => 'Ossetic',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'os-GE' => array(
'name' => 'Ossetic (Georgia)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'os-RU' => array(
'name' => 'Ossetic (Russia)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'pap' => array(
'name' => 'Papiamento',
'dateFormat' => 'j-n-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j-n-Y G:i'
),
'pap-029' => array(
'name' => 'Papiamento (Caribbean)',
'dateFormat' => 'j-n-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j-n-Y G:i'
),
'ps' => array(
'name' => 'Pashto',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/n/j G:i'
),
'ps-AF' => array(
'name' => 'Pashto (Afghanistan)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y/n/j G:i'
),
'fa' => array(
'name' => 'Persian',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'fa-IR' => array(
'name' => 'Persian (Iran)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'pl' => array(
'name' => 'Polish',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'pl-PL' => array(
'name' => 'Polish (Poland)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'pt' => array(
'name' => 'Portuguese',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'pt-AO' => array(
'name' => 'Portuguese (Angola)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'pt-BR' => array(
'name' => 'Portuguese (Brazil)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'pt-CV' => array(
'name' => 'Portuguese (Cabo Verde)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'pt-GW' => array(
'name' => 'Portuguese (Guinea-Bissau)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'pt-MO' => array(
'name' => 'Portuguese (Macao SAR)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'd/m/Y g:i a'
),
'pt-MZ' => array(
'name' => 'Portuguese (Mozambique)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'pt-PT' => array(
'name' => 'Portuguese (Portugal)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'pt-ST' => array(
'name' => 'Portuguese (São Tomé and Príncipe)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'pt-TL' => array(
'name' => 'Portuguese (Timor-Leste)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'prg' => array(
'name' => 'Prussian',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'prg-001' => array(
'name' => 'Prussian (World)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'pa' => array(
'name' => 'Punjabi',
'dateFormat' => 'd-m-y',
'timeFormat' => 'A h:i',
'dateTimeFormat' => 'd-m-y A h:i'
),
'pa-Arab' => array(
'name' => 'Punjabi (Arabic)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'g.i A',
'dateTimeFormat' => 'd-m-y g.i A'
),
'pa-Arab-PK' => array(
'name' => 'Punjabi (Arabic, Islamic Republic of Pakistan)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'g.i A',
'dateTimeFormat' => 'd-m-y g.i A'
),
'pa-IN' => array(
'name' => 'Punjabi (India)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'A h:i',
'dateTimeFormat' => 'd-m-y A h:i'
),
'quz' => array(
'name' => 'Quechua',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i a',
'dateTimeFormat' => 'd/m/Y h:i a'
),
'quz-BO' => array(
'name' => 'Quechua (Bolivia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i a',
'dateTimeFormat' => 'd/m/Y h:i a'
),
'quz-EC' => array(
'name' => 'Quechua (Ecuador)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'quz-PE' => array(
'name' => 'Quechua (Peru)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i a',
'dateTimeFormat' => 'd/m/Y h:i a'
),
'ro' => array(
'name' => 'Romanian',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'ro-MD' => array(
'name' => 'Romanian (Moldova)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'ro-RO' => array(
'name' => 'Romanian (Romania)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'rm' => array(
'name' => 'Romansh',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'rm-CH' => array(
'name' => 'Romansh (Switzerland)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'rof' => array(
'name' => 'Rombo',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'rof-TZ' => array(
'name' => 'Rombo (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'rn' => array(
'name' => 'Rundi',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'rn-BI' => array(
'name' => 'Rundi (Burundi)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ru' => array(
'name' => 'Russian',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'ru-BY' => array(
'name' => 'Russian (Belarus)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'ru-KG' => array(
'name' => 'Russian (Kyrgyzstan)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'ru-KZ' => array(
'name' => 'Russian (Kazakhstan)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'ru-MD' => array(
'name' => 'Russian (Moldova)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'ru-RU' => array(
'name' => 'Russian (Russia)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'ru-UA' => array(
'name' => 'Russian (Ukraine)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'rwk' => array(
'name' => 'Rwa',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'rwk-TZ' => array(
'name' => 'Rwa (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ssy' => array(
'name' => 'Saho',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'ssy-ER' => array(
'name' => 'Saho (Eritrea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'sah' => array(
'name' => 'Sakha',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'sah-RU' => array(
'name' => 'Sakha (Russia)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'saq' => array(
'name' => 'Samburu',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'saq-KE' => array(
'name' => 'Samburu (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'smn' => array(
'name' => 'Sami, Inari',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y G:i'
),
'smn-FI' => array(
'name' => 'Sami, Inari (Finland)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y G:i'
),
'smj' => array(
'name' => 'Sami, Lule',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'smj-NO' => array(
'name' => 'Sami, Lule (Norway)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'smj-SE' => array(
'name' => 'Sami, Lule (Sweden)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'se' => array(
'name' => 'Sami, Northern',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'se-FI' => array(
'name' => 'Sami, Northern (Finland)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y G:i'
),
'se-NO' => array(
'name' => 'Sami, Northern (Norway)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'se-SE' => array(
'name' => 'Sami, Northern (Sweden)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'sms' => array(
'name' => 'Sami, Skolt',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y G:i'
),
'sms-FI' => array(
'name' => 'Sami, Skolt (Finland)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y G:i'
),
'sma' => array(
'name' => 'Sami, Southern',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'sma-NO' => array(
'name' => 'Sami, Southern (Norway)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'sma-SE' => array(
'name' => 'Sami, Southern (Sweden)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'sg' => array(
'name' => 'Sango',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'sg-CF' => array(
'name' => 'Sango (Central African Republic)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'sbp' => array(
'name' => 'Sangu',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'sbp-TZ' => array(
'name' => 'Sangu (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'sa' => array(
'name' => 'Sanskrit',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'sa-IN' => array(
'name' => 'Sanskrit (India)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'gd' => array(
'name' => 'Scottish Gaelic',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'gd-GB' => array(
'name' => 'Scottish Gaelic (United Kingdom)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'seh' => array(
'name' => 'Sena',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'seh-MZ' => array(
'name' => 'Sena (Mozambique)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'sr' => array(
'name' => 'Serbian',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'j.n.Y. H.i'
),
'sr-Cyrl' => array(
'name' => 'Serbian (Cyrillic)',
'dateFormat' => 'd.m.Y.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y. G:i'
),
'sr-Cyrl-BA' => array(
'name' => 'Serbian (Cyrillic, Bosnia and Herzegovina)',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y. G:i'
),
'sr-Cyrl-XK' => array(
'name' => 'Serbian (Cyrillic, Kosovo)',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'j.n.Y. H.i'
),
'sr-Cyrl-ME' => array(
'name' => 'Serbian (Cyrillic, Montenegro)',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y. G:i'
),
'sr-Cyrl-CS' => array(
'name' => 'Serbian (Cyrillic, Serbia and Montenegro (Former))',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y. G:i'
),
'sr-Cyrl-RS' => array(
'name' => 'Serbian (Cyrillic, Serbia)',
'dateFormat' => 'd.m.Y.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y. G:i'
),
'sr-Latn' => array(
'name' => 'Serbian (Latin)',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'j.n.Y. H.i'
),
'sr-Latn-BA' => array(
'name' => 'Serbian (Latin, Bosnia and Herzegovina)',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'j.n.Y. H.i'
),
'sr-Latn-XK' => array(
'name' => 'Serbian (Latin, Kosovo)',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'j.n.Y. H.i'
),
'sr-Latn-ME' => array(
'name' => 'Serbian (Latin, Montenegro)',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'j.n.Y. H.i'
),
'sr-Latn-CS' => array(
'name' => 'Serbian (Latin, Serbia and Montenegro (Former))',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y. G:i'
),
'sr-Latn-RS' => array(
'name' => 'Serbian (Latin, Serbia)',
'dateFormat' => 'j.n.Y.',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'j.n.Y. H.i'
),
'nso' => array(
'name' => 'Sesotho sa Leboa',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'nso-ZA' => array(
'name' => 'Sesotho sa Leboa (South Africa)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'tn' => array(
'name' => 'Setswana',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'tn-BW' => array(
'name' => 'Setswana (Botswana)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'tn-ZA' => array(
'name' => 'Setswana (South Africa)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'ksb' => array(
'name' => 'Shambala',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'ksb-TZ' => array(
'name' => 'Shambala (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'sn' => array(
'name' => 'Shona',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'sn-Latn' => array(
'name' => 'Shona (Latin)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'sn-Latn-ZW' => array(
'name' => 'Shona (Latin, Zimbabwe)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'sd' => array(
'name' => 'Sindhi',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'sd-Arab' => array(
'name' => 'Sindhi (Arabic)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'sd-Arab-PK' => array(
'name' => 'Sindhi (Arabic, Islamic Republic of Pakistan)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'sd-Deva' => array(
'name' => 'Sindhi (Devanagari)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'sd-Deva-IN' => array(
'name' => 'Sindhi (Devanagari, India)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'si' => array(
'name' => 'Sinhala',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'Y-m-d H.i'
),
'si-LK' => array(
'name' => 'Sinhala (Sri Lanka)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H.i',
'dateTimeFormat' => 'Y-m-d H.i'
),
'ss' => array(
'name' => 'siSwati',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'ss-ZA' => array(
'name' => 'siSwati (South Africa)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'ss-SZ' => array(
'name' => 'siSwati (Swaziland)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'sk' => array(
'name' => 'Slovak',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y G:i'
),
'sk-SK' => array(
'name' => 'Slovak (Slovakia)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j.n.Y G:i'
),
'sl' => array(
'name' => 'Slovenian',
'dateFormat' => 'j. m. Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j. m. Y H:i'
),
'sl-SI' => array(
'name' => 'Slovenian (Slovenia)',
'dateFormat' => 'j. m. Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j. m. Y H:i'
),
'so' => array(
'name' => 'Somali',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'so-DJ' => array(
'name' => 'Somali (Djibouti)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'so-ET' => array(
'name' => 'Somali (Ethiopia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'so-KE' => array(
'name' => 'Somali (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'so-SO' => array(
'name' => 'Somali (Somalia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'xog' => array(
'name' => 'Soga',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'xog-UG' => array(
'name' => 'Soga (Uganda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'st' => array(
'name' => 'Sotho',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'st-LS' => array(
'name' => 'Sotho (Lesotho)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'st-ZA' => array(
'name' => 'Sotho (South Africa)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'nr' => array(
'name' => 'South Ndebele',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'nr-ZA' => array(
'name' => 'South Ndebele (South Africa)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'es' => array(
'name' => 'Spanish',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'es-AR' => array(
'name' => 'Spanish (Argentina)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'es-VE' => array(
'name' => 'Spanish (Bolivarian Republic of Venezuela)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'j/n/Y g:i a'
),
'es-BO' => array(
'name' => 'Spanish (Bolivia)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'es-CL' => array(
'name' => 'Spanish (Chile)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd-m-Y G:i'
),
'es-CO' => array(
'name' => 'Spanish (Colombia)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'j/m/Y g:i a'
),
'es-CR' => array(
'name' => 'Spanish (Costa Rica)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'es-CU' => array(
'name' => 'Spanish (Cuba)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'es-DO' => array(
'name' => 'Spanish (Dominican Republic)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'j/n/Y g:i a'
),
'es-EC' => array(
'name' => 'Spanish (Ecuador)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'es-SV' => array(
'name' => 'Spanish (El Salvador)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'es-GQ' => array(
'name' => 'Spanish (Equatorial Guinea)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'es-GT' => array(
'name' => 'Spanish (Guatemala)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/m/Y H:i'
),
'es-HN' => array(
'name' => 'Spanish (Honduras)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'es-419' => array(
'name' => 'Spanish (Latin America)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'es-MX' => array(
'name' => 'Spanish (Mexico)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i a',
'dateTimeFormat' => 'd/m/Y h:i a'
),
'es-NI' => array(
'name' => 'Spanish (Nicaragua)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'es-PA' => array(
'name' => 'Spanish (Panama)',
'dateFormat' => 'm/d/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'm/d/Y g:i a'
),
'es-PY' => array(
'name' => 'Spanish (Paraguay)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'es-PE' => array(
'name' => 'Spanish (Peru)',
'dateFormat' => 'j/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/m/Y H:i'
),
'es-PH' => array(
'name' => 'Spanish (Philippines)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'j/n/Y g:i a'
),
'es-PR' => array(
'name' => 'Spanish (Puerto Rico)',
'dateFormat' => 'm/d/Y',
'timeFormat' => 'g:i a',
'dateTimeFormat' => 'm/d/Y g:i a'
),
'es-ES' => array(
'name' => 'Spanish (Spain)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m/Y G:i'
),
'es-US' => array(
'name' => 'Spanish (United States)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'es-UY' => array(
'name' => 'Spanish (Uruguay)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'zgh' => array(
'name' => 'Standard Morrocan Tamazight',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'zgh-Tfng' => array(
'name' => 'Standard Morrocan Tamazight (Tifinagh)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'zgh-Tfng-MA' => array(
'name' => 'Standard Morrocan Tamazight (Tifinagh, Morocco)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'sv' => array(
'name' => 'Swedish',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'sv-AX' => array(
'name' => 'Swedish (Åland Islands)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'sv-FI' => array(
'name' => 'Swedish (Finland)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'sv-SE' => array(
'name' => 'Swedish (Sweden)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'gsw' => array(
'name' => 'Swiss German',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'gsw-FR' => array(
'name' => 'Swiss German (France)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'gsw-LI' => array(
'name' => 'Swiss German (Liechtenstein)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'gsw-CH' => array(
'name' => 'Swiss German (Switzerland)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'syr' => array(
'name' => 'Syriac',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'syr-SY' => array(
'name' => 'Syriac (Syria)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'h:i A',
'dateTimeFormat' => 'd/m/Y h:i A'
),
'shi' => array(
'name' => 'Tachelhit',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'shi-Latn' => array(
'name' => 'Tachelhit (Latin)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'shi-Latn-MA' => array(
'name' => 'Tachelhit (Latin, Morocco)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'shi-Tfng' => array(
'name' => 'Tachelhit (Tifinagh)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'shi-Tfng-MA' => array(
'name' => 'Tachelhit (Tifinagh, Morocco)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'tg' => array(
'name' => 'Tajik',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'tg-Cyrl' => array(
'name' => 'Tajik (Cyrillic)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'tg-Cyrl-TJ' => array(
'name' => 'Tajik (Cyrillic, Tajikistan)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'ta' => array(
'name' => 'Tamil',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'ta-IN' => array(
'name' => 'Tamil (India)',
'dateFormat' => 'd-m-Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-Y H:i'
),
'ta-MY' => array(
'name' => 'Tamil (Malaysia)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'j/n/Y A g:i'
),
'ta-SG' => array(
'name' => 'Tamil (Singapore)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'j/n/Y A g:i'
),
'ta-LK' => array(
'name' => 'Tamil (Sri Lanka)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'tt' => array(
'name' => 'Tatar',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'tt-RU' => array(
'name' => 'Tatar (Russia)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.Y H:i'
),
'te' => array(
'name' => 'Telugu',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-y H:i'
),
'te-IN' => array(
'name' => 'Telugu (India)',
'dateFormat' => 'd-m-y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd-m-y H:i'
),
'teo' => array(
'name' => 'Teso',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'teo-KE' => array(
'name' => 'Teso (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'teo-UG' => array(
'name' => 'Teso (Uganda)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'th' => array(
'name' => 'Thai',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'th-TH' => array(
'name' => 'Thai (Thailand)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
'dav' => array(
'name' => 'Taita',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'dav-KE' => array(
'name' => 'Taita (Kenya)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'twq' => array(
'name' => 'Tasawaq',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'twq-NE' => array(
'name' => 'Tasawaq (Niger)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'bo' => array(
'name' => 'Tibetan',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y/n/j H:i'
),
'bo-IN' => array(
'name' => 'Tibetan (India)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'Y-m-d g:i A'
),
'bo-CN' => array(
'name' => 'Tibetan (China)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y/n/j H:i'
),
'tig' => array(
'name' => 'Tigre',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'tig-ER' => array(
'name' => 'Tigre (Eritrea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'ti' => array(
'name' => 'Tigrinya',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'ti-ER' => array(
'name' => 'Tigrinya (Eritrea)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'ti-ET' => array(
'name' => 'Tigrinya (Ethiopia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'to' => array(
'name' => 'Tongan',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'to-TO' => array(
'name' => 'Tongan (Tonga)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/Y g:i A'
),
'ts' => array(
'name' => 'Tsonga',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'ts-ZA' => array(
'name' => 'Tsonga (South Africa)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'tr' => array(
'name' => 'Turkish',
'dateFormat' => 'j.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j.m.Y H:i'
),
'tr-CY' => array(
'name' => 'Turkish (Cyprus)',
'dateFormat' => 'j.m.Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j.m.Y g:i A'
),
'tr-TR' => array(
'name' => 'Turkish (Turkey)',
'dateFormat' => 'j.m.Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j.m.Y H:i'
),
'tk' => array(
'name' => 'Turkmen',
'dateFormat' => 'd.m.y ý.',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.y ý. H:i'
),
'tk-TM' => array(
'name' => 'Turkmen (Turkmenistan)',
'dateFormat' => 'd.m.y ý.',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd.m.y ý. H:i'
),
'uk' => array(
'name' => 'Ukrainian',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'uk-UA' => array(
'name' => 'Ukrainian (Ukraine)',
'dateFormat' => 'd.m.Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd.m.Y G:i'
),
'hsb' => array(
'name' => 'Upper Sorbian',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i \h\o\dź.',
'dateTimeFormat' => 'j.n.Y G:i \h\o\dź.'
),
'hsb-DE' => array(
'name' => 'Upper Sorbian (Germany)',
'dateFormat' => 'j.n.Y',
'timeFormat' => 'G:i \h\o\dź.',
'dateTimeFormat' => 'j.n.Y G:i \h\o\dź.'
),
'ur' => array(
'name' => 'Urdu',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'ur-IN' => array(
'name' => 'Urdu (India)',
'dateFormat' => 'j/n/y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'j/n/y g:i A'
),
'ur-PK' => array(
'name' => 'Urdu (Islamic Republic of Pakistan)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'ug' => array(
'name' => 'Uyghur',
'dateFormat' => 'Y-n-j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y-n-j G:i'
),
'ug-CN' => array(
'name' => 'Uyghur (China)',
'dateFormat' => 'Y-n-j',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'Y-n-j G:i'
),
'uz' => array(
'name' => 'Uzbek',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'uz-Cyrl' => array(
'name' => 'Uzbek (Cyrillic)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'uz-Cyrl-UZ' => array(
'name' => 'Uzbek (Cyrillic, Uzbekistan)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'uz-Latn' => array(
'name' => 'Uzbek (Latin)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'uz-Latn-UZ' => array(
'name' => 'Uzbek (Latin, Uzbekistan)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'uz-Arab' => array(
'name' => 'Uzbek (Perso-Arabic)',
'dateFormat' => 'd/m Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m Y G:i'
),
'uz-Arab-AF' => array(
'name' => 'Uzbek (Perso-Arabic, Afghanistan)',
'dateFormat' => 'd/m Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'd/m Y G:i'
),
'vai' => array(
'name' => 'Vai',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'vai-Latn' => array(
'name' => 'Vai (Latin)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'vai-Latn-LR' => array(
'name' => 'Vai (Latin, Liberia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'vai-Vaii' => array(
'name' => 'Vai (Vai)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'vai-Vaii-LR' => array(
'name' => 'Vai (Vai, Liberia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'ca-ES-valencia' => array(
'name' => 'Valencian (Spain)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'G:i',
'dateTimeFormat' => 'j/n/Y G:i'
),
've' => array(
'name' => 'Venda',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
've-ZA' => array(
'name' => 'Venda (South Africa)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'vi' => array(
'name' => 'Vietnamese',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'vi-VN' => array(
'name' => 'Vietnamese (Vietnam)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'vo' => array(
'name' => 'Volapük',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'vo-001' => array(
'name' => 'Volapük (World)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'vun' => array(
'name' => 'Vunjo',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'vun-TZ' => array(
'name' => 'Vunjo (Tanzania)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'wae' => array(
'name' => 'Walser',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'wae-CH' => array(
'name' => 'Walser (Switzerland)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'cy' => array(
'name' => 'Welsh',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'cy-GB' => array(
'name' => 'Welsh (United Kingdom)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'wal' => array(
'name' => 'Wolaytta',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'wal-ET' => array(
'name' => 'Wolaytta (Ethiopia)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'wo' => array(
'name' => 'Wolof',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'wo-SN' => array(
'name' => 'Wolof (Senegal)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'xh' => array(
'name' => 'Xhosa',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'xh-ZA' => array(
'name' => 'Xhosa (South Africa)',
'dateFormat' => 'Y-m-d',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'Y-m-d H:i'
),
'yav' => array(
'name' => 'Yangben',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'yav-CM' => array(
'name' => 'Yangben (Cameroon)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'ii' => array(
'name' => 'Yi',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'Y/n/j A g:i'
),
'ii-CN' => array(
'name' => 'Yi (China)',
'dateFormat' => 'Y/n/j',
'timeFormat' => 'A g:i',
'dateTimeFormat' => 'Y/n/j A g:i'
),
'yi' => array(
'name' => 'Yiddish',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'yi-001' => array(
'name' => 'Yiddish (World)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'yo' => array(
'name' => 'Yoruba',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'yo-BJ' => array(
'name' => 'Yoruba (Benin)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'd/m/Y H:i'
),
'yo-NG' => array(
'name' => 'Yoruba (Nigeria)',
'dateFormat' => 'd/m/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'd/m/Y g:i A'
),
'dje' => array(
'name' => 'Zarma',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'dje-NE' => array(
'name' => 'Zarma (Niger)',
'dateFormat' => 'j/n/Y',
'timeFormat' => 'H:i',
'dateTimeFormat' => 'j/n/Y H:i'
),
'zu' => array(
'name' => 'Zulu',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
),
'zu-ZA' => array(
'name' => 'Zulu (South Africa)',
'dateFormat' => 'n/j/Y',
'timeFormat' => 'g:i A',
'dateTimeFormat' => 'n/j/Y g:i A'
)
);
}
/**
* Get the locale data with the given locale code
*
* If the locale does not exist, the default en-US locale will be returned
*
* @param string $locale
* @return array
*/
public static function getLocale($locale = '')
{
$locales = Quform::getLocales();
if ( ! empty($locales[$locale])) {
return $locales[$locale];
}
return $locales['en-US'];
}
/**
* Get the plugin icon SVG in the given color
*
* @param string $color
* @return string
*/
public static function getPluginIcon($color = '')
{
$icon = '<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="397.000000pt" height="354.000000pt" viewBox="0 0 397.000000 354.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,354.000000) scale(0.100000,-0.100000)"
fill="#82878c" stroke="none">
<path d="M1660 3530 c-548 -67 -1036 -347 -1337 -768 -146 -204 -244 -433
-295 -687 -32 -160 -32 -451 0 -614 157 -784 810 -1360 1644 -1450 136 -15
2208 -15 2241 0 53 24 57 47 57 304 0 257 -4 280 -57 304 -16 7 -128 11 -319
11 l-295 0 67 83 c226 277 344 569 376 929 19 224 -6 432 -82 659 -206 622
-766 1089 -1450 1210 -131 24 -428 33 -550 19z m400 -635 c135 -21 230 -49
346 -104 139 -67 244 -140 344 -240 451 -454 449 -1114 -5 -1566 -467 -465
-1243 -473 -1726 -18 -148 140 -275 352 -326 548 -22 87 -26 120 -26 255 0
136 4 168 27 255 46 174 144 355 268 490 272 297 692 443 1098 380z"/>
<path d="M1255 2341 c-11 -5 -31 -21 -45 -36 -22 -23 -25 -36 -25 -96 0 -64 2
-71 33 -101 l32 -33 660 0 660 0 32 33 c31 30 33 37 33 102 0 65 -2 72 -33
102 l-32 33 -648 2 c-356 1 -656 -2 -667 -6z"/>
<path d="M1255 1901 c-11 -5 -31 -21 -45 -36 -22 -23 -25 -36 -25 -96 0 -64 2
-71 33 -101 l32 -33 405 0 405 0 32 33 c31 30 33 37 33 102 0 65 -2 72 -33
102 l-32 33 -393 2 c-215 1 -401 -2 -412 -6z"/>
<path d="M1255 1461 c-11 -5 -31 -21 -45 -36 -22 -23 -25 -36 -25 -96 0 -64 2
-71 33 -101 l32 -33 165 0 165 0 32 33 c31 30 33 37 33 102 0 65 -2 72 -33
102 l-32 33 -153 2 c-83 1 -161 -1 -172 -6z"/>
</g>
</svg>';
if (Quform::isNonEmptyString($color)) {
$icon = str_replace('fill="#82878c"', sprintf('fill="%s"', $color), $icon);
}
return 'data:image/svg+xml;base64,' . base64_encode($icon);
}
/**
* Does the current user have any of the given capabilities?
*
* @deprecated 2.1.0
* @param array|string $caps
* @return bool
*/
public static function currentUserCan($caps)
{
_deprecated_function(__METHOD__, '2.1.0', 'current_user_can()');
if ( ! is_user_logged_in()) {
return false;
}
if (current_user_can('quform_full_access')) {
return true;
}
if ( ! is_array($caps)) {
$caps = array($caps);
}
foreach ($caps as $cap) {
if (current_user_can($cap)) {
return true;
}
}
return false;
}
/**
* If the value is a non-zero number it will append 'px' otherwise return the value unchanged
*
* @param string $value
* @return string
*/
public static function addCssUnit($value)
{
if (is_numeric($value) && (string) $value !== '0') {
$value = sprintf('%spx', $value);
}
return $value;
}
/**
* Format the given count into thousands if necessary e.g. 1100 becomes 1.1k
*
* @param int $count
* @return string
*/
public static function formatCount($count)
{
if ($count >= 1000000000) {
$count = floor($count / 100000000) * 100000000;
$precision = $count % 1000000000 < 100000000 ? 0 : 1;
/* translators: %s: number (in billions) */
return sprintf(_x('%sb', 'number ending in b (billions)', 'quform'), number_format_i18n($count / 1000000000, $precision));
} else if ($count >= 1000000) {
$count = floor($count / 100000) * 100000;
$precision = $count % 1000000 < 100000 ? 0 : 1;
/* translators: %s: number (in millions) */
return sprintf(_x('%sm', 'number ending in m (millions)', 'quform'), number_format_i18n($count / 1000000, $precision));
} else if ($count >= 1000) {
$count = floor($count / 100) * 100;
$precision = $count % 1000 < 100 ? 0 : 1;
/* translators: %s: number (in thousands) */
return sprintf(_x('%sk', 'number ending in k (thousands)', 'quform'), number_format_i18n($count / 1000, $precision));
} else {
return $count;
}
}
/**
* Base 64 encode the given data in a format safe for URLs
*
* Credit: http://php.net/manual/en/function.base64-encode.php#103849
*
* @param mixed $data
* @return string
*/
public static function base64UrlEncode($data)
{
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
/**
* Get all pages in an array formatted for select2
*
* @deprecated 2.10.0
* @return array
*/
public static function getPages()
{
$values = array();
$pages = get_pages(array(
'number' => 250,
'sort_column' => 'post_modified',
'sort_order' => 'DESC'
));
if (is_array($pages) && count($pages)) {
foreach ($pages as $page) {
$values[] = array(
'id' => (string) $page->ID,
'title' => Quform::getPostTitle($page)
);
}
}
return $values;
}
/**
* Get all posts in an array formatted for select2
*
* @deprecated 2.10.0
* @return array
*/
public static function getPosts()
{
$values = array();
$posts = get_posts(array(
'numberposts' => 250,
'orderby' => 'modified',
'order' => 'DESC'
));
if (is_array($posts) && count($posts)) {
foreach ($posts as $post) {
$values[] = array(
'id' => (string) $post->ID,
'title' => Quform::getPostTitle($post)
);
}
}
return $values;
}
/**
* Get the title of the given post
*
* @deprecated 2.10.0
* @param WP_Post $post
* @return string
*/
public static function getPostTitle($post)
{
$title = '';
if ($post instanceof WP_Post) {
/* translators: %d: the post ID */
$title = $post->post_title === '' ? sprintf(__('(no title) [%d]', 'quform'), $post->ID) : $post->post_title;
}
return $title;
}
/**
* Get the title of the post by ID
*
* @param int $id The post ID
* @return string The post title
*/
public static function getPostTitleById($id)
{
$post = get_post($id);
if ($post instanceof WP_Post) {
/* translators: %d: the post ID */
$title = Quform::isNonEmptyString($post->post_title) ? $post->post_title : sprintf(__('(no title) [%d]', 'quform'), $post->ID);
} else {
/* translators: %d: the post ID */
$title = sprintf(__('(post not found) [%d]', 'quform'), $id);
}
return $title;
}
/**
* Search all public post types for the given search term
*
* @param string $search
* @return array
*/
public static function searchPosts($search)
{
global $wpdb;
$search = '%' . $wpdb->esc_like($search) . '%';
$postTypes = get_post_types(array('public' => true));
unset($postTypes['attachment']);
$postTypesPlaceholders = join(', ', array_fill(0, count($postTypes), '%s'));
$args = array($search);
foreach ($postTypes as $postType) {
$args[] = $postType;
}
$query = $wpdb->prepare("SELECT ID, post_title FROM {$wpdb->posts} WHERE post_title LIKE %s AND post_status = 'publish' AND post_type IN ({$postTypesPlaceholders}) LIMIT 10;", $args);
$results = $wpdb->get_results($query);
if (!is_array($results)) {
$results = array();
}
return $results;
}
/**
* Search all users for the given search term
*
* @param string $search
* @return array
*/
public static function searchUsers($search)
{
$users = new WP_User_Query(array(
'search' => '*' . $search . '*'
));
return $users->get_results();
}
/**
* Format a date
*
* @param string $format The format of the returned date
* @param DateTime $date The DateTime instance representing the moment of time in UTC, or null for the current time
* @param DateTimeZone $timezone The timezone of the returned date, will default to the WP timezone if omitted
* @return string|false The formatted date or false if there was an error
*/
public static function date($format, DateTime $date = null, DateTimeZone $timezone = null)
{
if ( ! $date) {
try {
$date = new DateTime('now', new DateTimeZone('UTC'));
} catch (Exception $e) {
return false;
}
}
$timestamp = $date->getTimestamp();
if ($timestamp === false || ! function_exists('wp_date')) {
$timezone = $timezone ? $timezone : self::getTimezone();
$date->setTimezone($timezone);
return $date->format($format);
}
return wp_date($format, $timestamp, $timezone);
}
/**
* Get the WP timezone as a DateTimeZone instance
*
* Duplicate of wp_timezone() for WP <5.3.
*
* @return DateTimeZone
*/
public static function getTimezone()
{
if (function_exists('wp_timezone')) {
return wp_timezone();
}
return new DateTimeZone(self::getTimezoneString());
}
/**
* Get the WP timezone as a string
*
* Duplicate of wp_timezone_string() for WP <5.3.
*
* @return string
*/
public static function getTimezoneString()
{
if (function_exists('wp_timezone_string')) {
return wp_timezone_string();
}
$timezone_string = get_option('timezone_string');
if ($timezone_string) {
return $timezone_string;
}
// PHP versions below 5.5.10 don't support the offset timezone format in the DateTimeZone constructor
if (version_compare(PHP_VERSION, '5.5.10', '<')) {
return 'UTC';
}
$offset = (float) get_option('gmt_offset');
$hours = (int) $offset;
$minutes = ($offset - $hours);
$sign = ($offset < 0) ? '-' : '+';
$abs_hour = abs($hours);
$abs_mins = abs($minutes * 60);
$tz_offset = sprintf('%s%02d:%02d', $sign, $abs_hour, $abs_mins);
return $tz_offset;
}
/**
* Compare the two given dates
*
* Returns:
* -1 if first is before second
* 0 if the dates are the same
* 1 if first is after the second
* false if either date is invalid
*
* @param string $first The first date in YYYY-MM-DD format
* @param string $second The second date in YYYY-MM-DD format
* @return int|bool
*/
public static function compareDates($first, $second)
{
try {
$first = new DateTime($first, new DateTimeZone('UTC'));
$second = new DateTime($second, new DateTimeZone('UTC'));
if ($first < $second) {
return -1;
} elseif ($first > $second) {
return 1;
}
return 0;
} catch (Exception $e) {
return false;
}
}
}