1
0
mirror of https://github.com/Mibew/mibew.git synced 2025-03-01 17:44:33 +03:00

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) public function indexAction(Request $request)
{ {
set_csrf_token(); set_csrf_token();
setlocale(LC_TIME, getlocal('time.locale'));
$operator = $this->getOperator(); $operator = $this->getOperator();
$page = array( $page = array(

View File

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

View File

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

View File

@ -41,7 +41,6 @@ class StatisticsController extends AbstractController
{ {
$operator = $this->getOperator(); $operator = $this->getOperator();
$statistics_type = $request->attributes->get('type'); $statistics_type = $request->attributes->get('type');
setlocale(LC_TIME, getlocal("time.locale"));
$page = array(); $page = array();
$page['operator'] = get_operator_name($operator); $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) 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); $start = getdate($from_time);
$month = $start['mon']; $month = $start['mon'];
$year = $start['year']; $year = $start['year'];
@ -75,12 +79,35 @@ function date_to_text($unixtime)
$now = getdate(); $now = getdate();
if ($then['yday'] == $now['yday'] && $then['year'] == $now['year']) { 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']) { } 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 { } 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. * - name: string, human readable locale name.
* - rtl: boolean, indicates with the locale uses right-to-left * - rtl: boolean, indicates with the locale uses right-to-left
* writing mode. * 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() function get_locales()
{ {
@ -188,174 +193,432 @@ function get_locales()
'ar' => array( 'ar' => array(
'name' => 'العربية', 'name' => 'العربية',
'rtl' => true, '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( 'be' => array(
'name' => 'Беларуская', 'name' => 'Беларуская',
'rtl' => false, '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( 'bg' => array(
'name' => 'Български', 'name' => 'Български',
'rtl' => false, '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( 'ca' => array(
'name' => 'Català', 'name' => 'Català',
'rtl' => false, '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( 'cs' => array(
'name' => 'Česky', 'name' => 'Česky',
'rtl' => false, '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( 'da' => array(
'name' => 'Dansk', 'name' => 'Dansk',
'rtl' => false, '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( 'de' => array(
'name' => 'Deutsch', 'name' => 'Deutsch',
'rtl' => false, '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( 'el' => array(
'name' => 'Ελληνικά', 'name' => 'Ελληνικά',
'rtl' => false, '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( 'en' => array(
'name' => 'English', 'name' => 'English',
'rtl' => false, '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( 'es' => array(
'name' => 'Español', 'name' => 'Español',
'rtl' => false, '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( 'et' => array(
'name' => 'Eesti', 'name' => 'Eesti',
'rtl' => false, '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( 'fa' => array(
'name' => 'فارسی', 'name' => 'فارسی',
'rtl' => true, '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( 'fi' => array(
'name' => 'Suomi', 'name' => 'Suomi',
'rtl' => false, '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( 'fr' => array(
'name' => 'Français', 'name' => 'Français',
'rtl' => false, '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( 'he' => array(
'name' => 'עברית', 'name' => 'עברית',
'rtl' => true, '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( 'hr' => array(
'name' => 'Hrvatski', 'name' => 'Hrvatski',
'rtl' => false, '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( 'hu' => array(
'name' => 'Magyar', 'name' => 'Magyar',
'rtl' => false, '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( 'id' => array(
'name' => 'Bahasa Indonesia', 'name' => 'Bahasa Indonesia',
'rtl' => false, '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( 'it' => array(
'name' => 'Italiano', 'name' => 'Italiano',
'rtl' => false, '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( 'ja' => array(
'name' => '日本語', 'name' => '日本語',
'rtl' => false, '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( 'ka' => array(
'name' => 'ქართული', 'name' => 'ქართული',
'rtl' => false, '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( 'kk' => array(
'name' => 'Қазақша', 'name' => 'Қазақша',
'rtl' => false, '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( 'ko' => array(
'name' => '한국어', 'name' => '한국어',
'rtl' => false, '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( 'ky' => array(
'name' => 'Кыргызча', 'name' => 'Кыргызча',
'rtl' => false, '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( 'lt' => array(
'name' => 'Lietuvių', 'name' => 'Lietuvių',
'rtl' => false, '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( 'lv' => array(
'name' => 'Latviešu', 'name' => 'Latviešu',
'rtl' => false, '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( 'nl' => array(
'name' => 'Nederlands', 'name' => 'Nederlands',
'rtl' => false, '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( 'nn' => array(
'name' => 'Norsk nynorsk', 'name' => 'Norsk nynorsk',
'rtl' => false, '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( 'no' => array(
'name' => 'Norsk bokmål', 'name' => 'Norsk bokmål',
'rtl' => false, '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( 'pl' => array(
'name' => 'Polski', 'name' => 'Polski',
'rtl' => false, '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( 'pt-pt' => array(
'name' => 'Português', 'name' => 'Português',
'rtl' => false, '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( 'pt-br' => array(
'name' => 'Português Brasil', 'name' => 'Português Brasil',
'rtl' => false, '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( 'ro' => array(
'name' => 'Română', 'name' => 'Română',
'rtl' => false, '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( 'ru' => array(
'name' => 'Русский', 'name' => 'Русский',
'rtl' => false, '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( 'sk' => array(
'name' => 'Slovenčina', 'name' => 'Slovenčina',
'rtl' => false, '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( 'sl' => array(
'name' => 'Slovenščina', 'name' => 'Slovenščina',
'rtl' => false, '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( 'sr' => array(
'name' => 'Српски', 'name' => 'Српски',
'rtl' => false, '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( 'sv' => array(
'name' => 'Svenska', 'name' => 'Svenska',
'rtl' => false, '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( 'th' => array(
'name' => 'ไทย', 'name' => 'ไทย',
'rtl' => false, '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( 'tr' => array(
'name' => 'Türkçe', 'name' => 'Türkçe',
'rtl' => false, '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( 'ua' => array(
'name' => 'Українська', 'name' => 'Українська',
'rtl' => false, '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( 'zh-cn' => array(
'name' => '中文', 'name' => '中文',
'rtl' => false, '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( 'zh-tw' => array(
'name' => '文言', 'name' => '文言',
'rtl' => false, '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" msgstr "Wrong thread"
msgid "thread.intro" msgid "thread.intro"
msgstr "This page displays chat details and content." msgstr "This page displays chat details and content."
msgid "time.dateformat"
msgstr "%B %d, %Y"
msgid "time.locale"
msgstr "en_US"
msgid "time.never" msgid "time.never"
msgstr "Never" msgstr "Never"
msgid "time.timeformat"
msgstr "%I:%M %p"
msgid "time.today.at" msgid "time.today.at"
msgstr "Today at" msgstr "Today at {0}"
msgid "time.yesterday.at" msgid "time.yesterday.at"
msgstr "Yesterday at" msgstr "Yesterday at {0}"
msgid "topMenu.admin" msgid "topMenu.admin"
msgstr "Home" msgstr "Home"
msgid "topMenu.logoff" msgid "topMenu.logoff"