OwlCyberSecurity - MANAGER
Edit File: Quform.php
<?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 = '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; } } }