Remove time format from localization constants

This commit is contained in:
Dmitriy Simushev 2014-06-18 13:54:50 +00:00
parent bde9f2eb00
commit 561c512a9b
7 changed files with 296 additions and 23 deletions

View File

@ -37,7 +37,6 @@ class BanController extends AbstractController
public function indexAction(Request $request)
{
set_csrf_token();
setlocale(LC_TIME, getlocal('time.locale'));
$operator = $this->getOperator();
$page = array(

View File

@ -36,8 +36,6 @@ class HistoryController extends AbstractController
*/
public function indexAction(Request $request)
{
setlocale(LC_TIME, getlocal("time.locale"));
$page = array();
$operator = $this->getOperator();
$query = $request->query->get('q', false);
@ -177,8 +175,6 @@ class HistoryController extends AbstractController
*/
public function threadAction(Request $request)
{
setlocale(LC_TIME, getlocal("time.locale"));
$operator = $this->getOperator();
$page = array();
@ -216,8 +212,6 @@ class HistoryController extends AbstractController
*/
public function userAction(Request $request)
{
setlocale(LC_TIME, getlocal("time.locale"));
$operator = $this->getOperator();
$user_id = $request->attributes->get('user_id', '');
$page = array();
@ -280,8 +274,6 @@ class HistoryController extends AbstractController
*/
public function userTrackAction(Request $request)
{
setlocale(LC_TIME, getlocal('time.locale'));
if (Settings::get('enabletracking') == '0') {
throw new BadRequestException('Tracking is disabled.');
}

View File

@ -35,7 +35,6 @@ class ManagementController extends AbstractController
public function indexAction(Request $request)
{
set_csrf_token();
setlocale(LC_TIME, getlocal('time.locale'));
$operator = $this->getOperator();
$page = array(

View File

@ -41,7 +41,6 @@ class StatisticsController extends AbstractController
{
$operator = $this->getOperator();
$statistics_type = $request->attributes->get('type');
setlocale(LC_TIME, getlocal("time.locale"));
$page = array();
$page['operator'] = get_operator_name($operator);

View File

@ -31,6 +31,10 @@ function date_diff_to_text($seconds)
function get_month_selection($from_time, $to_time)
{
// Use correct months names and over translatable date/time strings.
$locale_info = get_locale_info(CURRENT_LOCALE);
setlocale(LC_TIME, $locale_info['time_locale']);
$start = getdate($from_time);
$month = $start['mon'];
$year = $start['year'];
@ -75,12 +79,35 @@ function date_to_text($unixtime)
$now = getdate();
if ($then['yday'] == $now['yday'] && $then['year'] == $now['year']) {
$date_format = getlocal("time.today.at");
return getlocal("time.today.at", array(format_date($unixtime, 'time')));
} elseif (($then['yday'] + 1) == $now['yday'] && $then['year'] == $now['year']) {
$date_format = getlocal("time.yesterday.at");
return getlocal("time.yesterday.at", array(format_date($unixtime, 'time')));
} else {
$date_format = getlocal("time.dateformat");
return format_date($unixtime, 'full');
}
}
/**
* Format date according to passed in type and locale.
*
* @param int $timestamp Unix timestamp
* @param string $format Format name. Can be one of "full", "date", "time".
* @param string $locale Locale code.
* @return string Formatted date.
* @throws \InvalidArgumentException If $type argument has wrong value.
*/
function format_date($timestamp, $format, $locale = CURRENT_LOCALE)
{
// Get locale info
$locale_info = get_locale_info($locale);
$date_format = $locale_info['date_format'];
if (!isset($date_format[$format])) {
throw new \InvalidArgumentException('Wrong value of the $format argument.');
}
return strftime($date_format . " " . getlocal("time.timeformat"), $unixtime);
// Use correct months names and over translatable date/time strings.
setlocale(LC_TIME, $locale_info['time_locale']);
return strftime($date_format[$format], $timestamp);
}

View File

@ -181,6 +181,11 @@ function get_locale_names()
* - name: string, human readable locale name.
* - rtl: boolean, indicates with the locale uses right-to-left
* writing mode.
* - time_locale: string, locale code which is used in {@link setlocale()}
* function to set the correct date/time formatting.
* - date_format: array, list of available date formats. Each key of the
* array is format name and each value is a format string for
* {@link strftime()} function.
*/
function get_locales()
{
@ -188,174 +193,432 @@ function get_locales()
'ar' => array(
'name' => 'العربية',
'rtl' => true,
'time_locale' => 'ar_EG.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'be' => array(
'name' => 'Беларуская',
'rtl' => false,
'time_locale' => 'be_BY.UTF8',
'date_format' => array(
'full' => '%d %B %Y, %H:%M',
'date' => '%d %B %Y',
'time' => '%H:%M',
),
),
'bg' => array(
'name' => 'Български',
'rtl' => false,
'time_locale' => 'bg_BG.UTF8',
'date_format' => array(
'full' => '%d %B %Y, %H:%M',
'date' => '%d %B %Y',
'time' => '%H:%M',
),
),
'ca' => array(
'name' => 'Català',
'rtl' => false,
'time_locale' => 'ca_ES.UTF8',
'date_format' => array(
'full' => '%B %d, %Y, %H:%M',
'date' => '%B %d, %Y',
'time' => '%H:%M',
),
),
'cs' => array(
'name' => 'Česky',
'rtl' => false,
'time_locale' => 'cs_CZ.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'da' => array(
'name' => 'Dansk',
'rtl' => false,
'time_locale' => 'da_DK.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time_format' => '%I:%M %p',
),
),
'de' => array(
'name' => 'Deutsch',
'rtl' => false,
'time_locale' => 'de_DE.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %H:%M',
'date' => '%B %d, %Y',
'time' => '%H:%M',
),
),
'el' => array(
'name' => 'Ελληνικά',
'rtl' => false,
'time_locale' => 'el_GR.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'en' => array(
'name' => 'English',
'rtl' => false,
'time_locale' => 'en_US',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'es' => array(
'name' => 'Español',
'rtl' => false,
'time_locale' => 'es_ES.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %H:%M',
'date' => '%B %d, %Y',
'time' => '%H:%M',
),
),
'et' => array(
'name' => 'Eesti',
'rtl' => false,
'time_locale' => 'et_EE.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'fa' => array(
'name' => 'فارسی',
'rtl' => true,
'time_locale' => 'fa_IR.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'fi' => array(
'name' => 'Suomi',
'rtl' => false,
'time_locale' => 'fi_FI.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'fr' => array(
'name' => 'Français',
'rtl' => false,
'time_locale' => 'fr_FR.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %H:%M',
'date' => '%B %d, %Y',
'time' => '%H:%M',
),
),
'he' => array(
'name' => 'עברית',
'rtl' => true,
'time_locale' => 'he_IL.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %H:%M',
'date' => '%B %d, %Y',
'time' => '%H:%M',
),
),
'hr' => array(
'name' => 'Hrvatski',
'rtl' => false,
'time_locale' => 'hr_HR.UTF8',
'date_format' => array(
'full' => '%d.%m.%Y %H:%M',
'date' => '%d.%m.%Y',
'time' => '%H:%M',
),
),
'hu' => array(
'name' => 'Magyar',
'rtl' => false,
'time_locale' => 'hu_HU.UTF8',
'date_format' => array(
'full' => '%Y-%B-%d %I:%M %p',
'date' => '%Y-%B-%d',
'time' => '%I:%M %p',
),
),
'id' => array(
'name' => 'Bahasa Indonesia',
'rtl' => false,
'time_locale' => 'id_ID.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'it' => array(
'name' => 'Italiano',
'rtl' => false,
'time_locale' => 'it_IT.UTF8',
'date_format' => array(
'full' => '%d %b %Y, %H:%M',
'date' => '%d %b %Y',
'time' => '%H:%M',
),
),
'ja' => array(
'name' => '日本語',
'rtl' => false,
'time_locale' => 'ja_JP.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'ka' => array(
'name' => 'ქართული',
'rtl' => false,
'time_locale' => 'ka_GE.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'kk' => array(
'name' => 'Қазақша',
'rtl' => false,
'time_locale' => 'kk_KZ.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'ko' => array(
'name' => '한국어',
'rtl' => false,
'time_locale' => 'ko_KR.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'ky' => array(
'name' => 'Кыргызча',
'rtl' => false,
'time_locale' => 'ky_KG.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'lt' => array(
'name' => 'Lietuvių',
'rtl' => false,
'time_locale' => 'lt_LT.UTF8',
'date_format' => array(
'full' => '%d %B %Y %H:%M',
'date' => '%d %B %Y',
'time' => '%H:%M',
)
),
'lv' => array(
'name' => 'Latviešu',
'rtl' => false,
'time_locale' => 'lv_LV.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %H:%M',
'date' => '%B %d, %Y',
'time' => '%H:%M',
),
),
'nl' => array(
'name' => 'Nederlands',
'rtl' => false,
'time_locale' => 'nl_NL.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'nn' => array(
'name' => 'Norsk nynorsk',
'rtl' => false,
'time_locale' => 'nn_NO.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'no' => array(
'name' => 'Norsk bokmål',
'rtl' => false,
'time_locale' => 'no_NO.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'pl' => array(
'name' => 'Polski',
'rtl' => false,
'time_locale' => 'pl_PL.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %H:%M',
'date' => '%B %d, %Y',
'time' => '%H:%M',
),
),
'pt-pt' => array(
'name' => 'Português',
'rtl' => false,
'time_locale' => 'pt_PT.UTF8',
'date_format' => array(
'full' => '%d %B, %Y %H:%M',
'date' => '%d %B, %Y',
'time' => '%H:%M',
),
),
'pt-br' => array(
'name' => 'Português Brasil',
'rtl' => false,
'time_locale' => 'pt_BR.UTF8',
'date_format' => array(
'full' => '%d %B, %Y %H:%M',
'date' => '%d %B, %Y',
'time' => '%H:%M',
),
),
'ro' => array(
'name' => 'Română',
'rtl' => false,
'time_locale' => 'ro_RO.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'ru' => array(
'name' => 'Русский',
'rtl' => false,
'time_locale' => 'ru_RU.UTF8',
'date_format' => array(
'full' => '%d %B %Y, %H:%M',
'date' => '%d %B %Y',
'time' => '%H:%M',
),
),
'sk' => array(
'name' => 'Slovenčina',
'rtl' => false,
'time_locale' => 'sk_SK.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'sl' => array(
'name' => 'Slovenščina',
'rtl' => false,
'time_locale' => 'sl_SI.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'sr' => array(
'name' => 'Српски',
'rtl' => false,
'time_locale' => 'sr_RS.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %I:%M %p',
'date' => '%B %d, %Y',
'time' => '%I:%M %p',
),
),
'sv' => array(
'name' => 'Svenska',
'rtl' => false,
'time_locale' => 'sv_SE.UTF8',
'date_format' => array(
'full' => '%B %d, %Y %H:%M',
'date' => '%B %d, %Y',
'time' => '%H:%M',
),
),
'th' => array(
'name' => 'ไทย',
'rtl' => false,
'time_locale' => 'th_TH.UTF8',
'date_format' => array(
'full' => '%d %B, %Y %I:%M %p',
'date' => '%d %B, %Y',
'time' => '%I:%M %p',
),
),
'tr' => array(
'name' => 'Türkçe',
'rtl' => false,
'time_locale' => 'tr_TR.UTF8',
'date_format' => array(
'full' => '%d.%m.%Y %H:%i',
'date' => '%d.%m.%Y',
'time' => '%H:%i',
),
),
'ua' => array(
'name' => 'Українська',
'rtl' => false,
'time_locale' => 'uk_UA.UTF8',
'date_format' => array(
'full' => '%d %B %Y, %H:%M',
'date' => '%d %B %Y',
'time' => '%H:%M',
),
),
'zh-cn' => array(
'name' => '中文',
'rtl' => false,
'time_locale' => 'zh_CN.UTF8',
'date_format' => array(
'full' => '%Y-%m-%d %H:%M',
'date' => '%Y-%m-%d',
'time' => '%H:%M',
),
),
'zh-tw' => array(
'name' => '文言',
'rtl' => false,
'time_locale' => 'zh_TW.UTF8',
'date_format' => array(
'full' => '%Y-%m-%d %H:%M',
'date' => '%Y-%m-%d',
'time' => '%H:%M',
),
),
);
}

View File

@ -1230,18 +1230,12 @@ msgid "thread.error.wrong_thread"
msgstr "Wrong thread"
msgid "thread.intro"
msgstr "This page displays chat details and content."
msgid "time.dateformat"
msgstr "%B %d, %Y"
msgid "time.locale"
msgstr "en_US"
msgid "time.never"
msgstr "Never"
msgid "time.timeformat"
msgstr "%I:%M %p"
msgid "time.today.at"
msgstr "Today at"
msgstr "Today at {0}"
msgid "time.yesterday.at"
msgstr "Yesterday at"
msgstr "Yesterday at {0}"
msgid "topMenu.admin"
msgstr "Home"
msgid "topMenu.logoff"