From 496609778ca676ac5aec3f6351bed10eedb8825b Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Date: Sat, 26 Mar 2005 01:28:33 +0000 Subject: [PATCH] * (bug 1668) a redesign of the "Date format" system, languages are now able to specify an arbitary amount of date formats which they wish to use in the $wgDateFormatsXx array, if the array is empty the "Date format" option will not be shown, the only languages that currently take atvantage of the multiple formats are Icelandic, English and Frysk, I removed all but the first item of the $wgDateFormatsXx array from those that don't which should show something like "use default". --- includes/SpecialPreferences.php | 17 ++++----- languages/Language.php | 56 ++++++++++++--------------- languages/LanguageBg.php | 4 -- languages/LanguageBn.php | 3 -- languages/LanguageCa.php | 4 -- languages/LanguageCy.php | 4 -- languages/LanguageDa.php | 4 -- languages/LanguageEs.php | 3 -- languages/LanguageFo.php | 4 -- languages/LanguageFy.php | 68 +++++++++++++-------------------- languages/LanguageGa.php | 4 -- languages/LanguageHu.php | 3 -- languages/LanguageId.php | 4 -- languages/LanguageIs.php | 4 +- languages/LanguageLt.php | 4 -- languages/LanguageMs.php | 2 - languages/LanguageNn.php | 4 -- languages/LanguageNv.php | 4 -- languages/LanguagePt.php | 3 -- languages/LanguageRo.php | 3 -- languages/LanguageSl.php | 4 -- languages/LanguageSq.php | 3 -- languages/LanguageSr.php | 3 -- languages/LanguageSv.php | 4 -- languages/LanguageTa.php | 3 -- languages/LanguageTh.php | 4 -- languages/LanguageTt.php | 4 -- languages/LanguageUk.php | 3 -- languages/LanguageWa.php | 4 -- 29 files changed, 60 insertions(+), 174 deletions(-) diff --git a/includes/SpecialPreferences.php b/includes/SpecialPreferences.php index 0cc5b2f806..a6cd0fc16f 100644 --- a/includes/SpecialPreferences.php +++ b/includes/SpecialPreferences.php @@ -101,7 +101,7 @@ class PreferencesForm { } function execute() { - global $wgUser, $wgOut, $wgUseDynamicDates; + global $wgUser, $wgOut; if ( $wgUser->isAnon() ) { $wgOut->errorpage( 'prefsnologin', 'prefsnologintext' ); @@ -367,7 +367,7 @@ class PreferencesForm { * @access private */ function mainPrefsForm( $err ) { - global $wgUser, $wgOut, $wgLang, $wgContLang, $wgUseDynamicDates, $wgValidSkinNames; + global $wgUser, $wgOut, $wgLang, $wgContLang, $wgValidSkinNames; global $wgAllowRealName, $wgImageLimits; global $wgLanguageNames, $wgDisableLangConversion; global $wgEmailNotificationForWatchlistPages, $wgEmailNotificationForUserTalkPages,$wgEmailNotificationForMinorEdits; @@ -605,16 +605,13 @@ class PreferencesForm { # Date format # - if ( $wgUseDynamicDates ) { + + if ($dateopts) { $wgOut->addHTML( "
\n$dateFormat\n" ); - for ( $i = 0; $i < count( $dateopts ); ++$i) { - if ( $i == $this->mDate ) { - $checked = ' checked="checked"'; - } else { - $checked = ""; - } + foreach($dateopts as $key => $option) { + ($key == $this->mDate) ? $checked = ' checked="checked"' : $checked = ''; $wgOut->addHTML( "
\n" ); + "value=\"$key\"$checked />$option\n" ); } $wgOut->addHTML( "
\n\n"); } diff --git a/languages/Language.php b/languages/Language.php index dd14786c48..1cbc205971 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -122,11 +122,11 @@ define( 'MW_DATE_DEFAULT', false ); define( 'MW_DATE_USER_FORMAT', true ); /* private */ $wgDateFormatsEn = array( - 'No preference', - 'January 15, 2001', - '15 January 2001', - '2001 January 15', - '2001-01-15' + 'Default', + '16:12, January 15, 2001', + '16:12, 15 January 2001', + '16:12, 2001 January 15', + 'ISO 8601' => '2001-01-15 16:12:34' ); /* private */ $wgUserTogglesEn = array( @@ -1788,10 +1788,6 @@ ta[\'ca-nstab-category\'] = new Array(\'c\',\'View the category page\'); 'specialloguserlabel' => 'User: ', 'speciallogtitlelabel' => 'Title: ', -# labels for Group: and User: ond Special:Listusers -'speciallistusersuserlabel' => 'User: ', -'speciallistusersgrouplabel' => 'Group: ', - 'passwordtooshort' => 'Your password is too short. It must have at least $1 characters.', # external editor support @@ -1971,35 +1967,33 @@ class Language { } function date( $ts, $adj = false, $format = MW_DATE_USER_FORMAT, $timecorrection = false ) { - global $wgAmericanDates, $wgUser, $wgUseDynamicDates; - + global $wgAmericanDates, $wgUser; + $ts=wfTimestamp(TS_MW,$ts); if ( $adj ) { $ts = $this->userAdjust( $ts, $timecorrection ); } - if ( $wgUseDynamicDates ) { - if ( $format == MW_DATE_USER_FORMAT ) { - $datePreference = $wgUser->getOption( 'date' ); - } else { - $options = $this->getDefaultUserOptions(); - $datePreference = $options['date']; - } - if ( $datePreference == 0 ) { - $datePreference = $wgAmericanDates ? 1 : 2; - } + + if ( $format == MW_DATE_USER_FORMAT ) { + $datePreference = $wgUser->getOption( 'date' ); } else { + $options = $this->getDefaultUserOptions(); + $datePreference = $options['date']; + } + + if ($datePreference == '0') { $datePreference = $wgAmericanDates ? 1 : 2; } $month = $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ); $day = $this->formatNum( 0 + substr( $ts, 6, 2 ) ); $year = $this->formatNum( substr( $ts, 0, 4 ) ); - + switch( $datePreference ) { - case 1: return "$month $day, $year"; - case 2: return "$day $month $year"; - case 4: return substr($ts, 0, 4). '-' . substr($ts, 4, 2). '-' .substr($ts, 6, 2); - default: return "$year $month $day"; + case '2': return "$day $month $year"; + case '3': return "$year $month $day"; + case 'ISO 8601': return substr($ts, 0, 4). '-' . substr($ts, 4, 2). '-' .substr($ts, 6, 2); + default: return "$month $day, $year"; } } @@ -2010,7 +2004,7 @@ class Language { if ( $adj ) { $ts = $this->userAdjust( $ts, $timecorrection ); } $t = substr( $ts, 8, 2 ) . ':' . substr( $ts, 10, 2 ); - if ( $seconds || $wgUser->getOption( 'date' ) == 4) { + if ( $seconds || $wgUser->getOption( 'date' ) == 'ISO 8601' ) { $t .= ':' . substr( $ts, 12, 2 ); } return $this->formatNum( $t ); @@ -2019,11 +2013,11 @@ class Language { function timeanddate( $ts, $adj = false, $format = MW_DATE_USER_FORMAT, $timecorrection = false, $dateandtime = false) { global $wgUser; $ts=wfTimestamp(TS_MW,$ts); - if ( 4 == $wgUser->getOption( 'date' ) ) { - return $this->date( $ts, $adj, $format, $timecorrection ) . ' ' . + + switch ( $wgUser->getOption( 'date' ) ) { + case 'ISO 8601': return $this->date( $ts, $adj, $format, $timecorrection ) . ' ' . $this->time( $ts, $adj, false, $timecorrection ); - } else { - return $this->time( $ts, $adj, false, $timecorrection ) . ', ' . + default: return $this->time( $ts, $adj, false, $timecorrection ) . ', ' . $this->date( $ts, $adj, $format, $timecorrection ); } } diff --git a/languages/LanguageBg.php b/languages/LanguageBg.php index 7bf4c6b20a..2f5f9bfef4 100644 --- a/languages/LanguageBg.php +++ b/languages/LanguageBg.php @@ -48,10 +48,6 @@ /* private */ $wgDateFormatsBg = array( 'Без предпочитание', - 'януари 15, 2001', - '15 януари 2001', - '2001 януари 15', - '2001-01-15' ); diff --git a/languages/LanguageBn.php b/languages/LanguageBn.php index c6881e36ea..a23419b4c2 100644 --- a/languages/LanguageBn.php +++ b/languages/LanguageBn.php @@ -43,9 +43,6 @@ /* private */ $wgDateFormatsBn = array( "No preference", - "January 15, 2001", - "15 January 2001", - "2001 January 15" ); diff --git a/languages/LanguageCa.php b/languages/LanguageCa.php index cf5e204b1f..bac612d04e 100644 --- a/languages/LanguageCa.php +++ b/languages/LanguageCa.php @@ -46,10 +46,6 @@ /* private */ $wgDateFormatsCa = array( "No preference", - "January 15, 2001", - "15 January 2001", - "2001 January 15", - "2001-01-15" ); diff --git a/languages/LanguageCy.php b/languages/LanguageCy.php index 00a243244b..cabf7d1afc 100644 --- a/languages/LanguageCy.php +++ b/languages/LanguageCy.php @@ -37,10 +37,6 @@ /* private */ $wgDateFormatsCy = array( "Dim dewis", - "Ionawr 15, 2001", - "15 Ionawr 2001", - "2001 Ionawr 15", - "2001-01-15" ); /* private */ $wgBookstoreListCy = array( diff --git a/languages/LanguageDa.php b/languages/LanguageDa.php index 66385699b0..e7aab2151a 100644 --- a/languages/LanguageDa.php +++ b/languages/LanguageDa.php @@ -57,10 +57,6 @@ require_once( "LanguageUtf8.php" ); /* private */ $wgDateFormatsDa = array( "Ingen foretrukken", - "januar 15, 2001", - "15. januar 2001", - "2001 januar 15", - "2001-01-15" ); diff --git a/languages/LanguageEs.php b/languages/LanguageEs.php index 545aa5d975..9f3f625b31 100644 --- a/languages/LanguageEs.php +++ b/languages/LanguageEs.php @@ -56,9 +56,6 @@ require_once( "LanguageUtf8.php" ); /* private */ $wgDateFormatsEs = array( "Sin preferencia", - "enero 15, 2001", - "15 de enero de 2001", - "2001 enero 15" ); /* Please customize this with some Spanish-language bookshops diff --git a/languages/LanguageFo.php b/languages/LanguageFo.php index 81724cf015..94d283d898 100644 --- a/languages/LanguageFo.php +++ b/languages/LanguageFo.php @@ -49,10 +49,6 @@ require_once( 'LanguageUtf8.php'); /* private */ $wgDateFormatsFo = array( "Ongi forrættindi", - "januar 15, 2001", - "15. januar 2001", - "2001 januar 15", - "2001-01-15" ); /* private */ $wgBookstoreListFo = array( diff --git a/languages/LanguageFy.php b/languages/LanguageFy.php index 9384a8bf3d..0750752278 100644 --- a/languages/LanguageFy.php +++ b/languages/LanguageFy.php @@ -53,10 +53,11 @@ if($wgMetaNamespace === FALSE) /* private */ $wgDateFormatsFy = array( - "Gjin foarkar", - "jannewaris 8, 2001", - "8 jannewaris 2001", - "2001 jannewaris 8" + 'Gjin foarkar', + '16:12, jan 15, 2001', + '16:12, 15 jan 2001', + '16:12, 2001 jan 15', + 'ISO 8601' => '2001-01-15 16:12:34' ); /* private */ $wgBookstoreListFy = array( @@ -1081,52 +1082,35 @@ class LanguageFy extends LanguageUtf8 { # Inherit userAdjust() - function date( $ts, $adj = false ) - { - global $wgAmericanDates, $wgUser, $wgUseDynamicDates; + function date( $ts, $adj = false ) { + global $wgUser; if ( $adj ) { $ts = $this->userAdjust( $ts ); } - if ( $wgUseDynamicDates ) { - $datePreference = $wgUser->getOption( 'date' ); - if ( $datePreference == 0 ) { - $datePreference = $wgAmericanDates ? 1 : 2; - } - } else { - $datePreference = $wgAmericanDates ? 1 : 2; + switch ( $wgUser->getOption( 'date' ) ) { + # jan 8, 2001 + case '0': case '1': return $d = $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) + . ' ' . (0 + substr( $ts, 6, 2 )) . ', ' . substr( $ts, 0, 4 ); + # 8 jannewaris 2001 + case '2': return (0 + substr( $ts, 6, 2 )) . ' ' . + $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) . ' ' . + substr( $ts, 0, 4 ); + case 'ISO 8601': return substr($ts, 0, 4). '-' . substr($ts, 4, 2). '-' .substr($ts, 6, 2); + # 2001 jannewaris 8 + default: return substr( $ts, 0, 4 ) . ' ' . + $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) + . ' ' . (0 + substr( $ts, 6, 2 )); } + } + function timeanddate( $ts, $adj = false ) { + global $wgUser; - if ( $datePreference == 1 ) { - # MDY - $d = $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) . - " " . (0 + substr( $ts, 6, 2 )) . ", " . - substr( $ts, 0, 4 ); - } else if ( $datePreference == 2 ) { - #DMY - $d = (0 + substr( $ts, 6, 2 )) . " " . - $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) . " " . - substr( $ts, 0, 4 ); - } else { - #YMD - $d = substr( $ts, 0, 4 ) . " " . $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) . - " " . (0 + substr( $ts, 6, 2 )); + switch ( $wgUser->getOption( 'date' ) ) { + case 'ISO 8601': return $this->date( $ts, $adj ) . ' ' . $this->time( $ts, $adj ); + default: return $this->time( $ts, $adj ) . ', ' . $this->date( $ts, $adj ); } - - return $d; - } - - function time( $ts, $adj = false ) - { - if ( $adj ) { $ts = $this->userAdjust( $ts ); } - - $t = substr( $ts, 8, 2 ) . "." . substr( $ts, 10, 2 ); - return $t; } -# Inherit timeanddate() - -# Inherit rfc1123() - function getValidSpecialPages() { global $wgValidSpecialPagesFy; diff --git a/languages/LanguageGa.php b/languages/LanguageGa.php index 1e31d59f2a..f5e641b0aa 100755 --- a/languages/LanguageGa.php +++ b/languages/LanguageGa.php @@ -63,10 +63,6 @@ DISCUSSION! /* private */ $wgDateFormatsGa = array( "Is cuma liom", - "Eanáir 15, 2001", - "15 Eanáir 2001", - "2001 Eanáir 15", - "2001-01-15" ); # If possible, find Irish language book services on the Internet, searchable by ISBN diff --git a/languages/LanguageHu.php b/languages/LanguageHu.php index 4e28ab3673..44210e7e03 100644 --- a/languages/LanguageHu.php +++ b/languages/LanguageHu.php @@ -79,9 +79,6 @@ if( 0 == strcasecmp( "Wikipédia", $wgSitename ) ) { /* private */ $wgDateFormatsHu = array( "Mindegy", - "Július 8, 2003", - "8 Július, 2003", - "2003 Július 8" ); diff --git a/languages/LanguageId.php b/languages/LanguageId.php index 870c2c161f..de380c1408 100644 --- a/languages/LanguageId.php +++ b/languages/LanguageId.php @@ -72,10 +72,6 @@ if($wgMetaNamespace === FALSE) /* private */ $wgDateFormatsId = array( "Tiada pilihan", - "Januari 15, 2001", - "15 Januari 2001", - "2001 Januari 15", - "2001-01-15" ); /* private */ $wgUserTogglesId = array( diff --git a/languages/LanguageIs.php b/languages/LanguageIs.php index 2b3736c042..28ff99b91e 100644 --- a/languages/LanguageIs.php +++ b/languages/LanguageIs.php @@ -869,7 +869,7 @@ class LanguageIs extends LanguageUtf8 { switch( $wgUser->getOption( 'date' ) ) { # 15. jan. 2001 kl. 16:12 || 16:12, 15. jan. 2001 - case 2: case 4: return (0 + substr( $ts, 6, 2 )) . '. ' . + case '2': case '4': return (0 + substr( $ts, 6, 2 )) . '. ' . $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) . '. ' . substr($ts, 0, 4); # 2001-01-15 16:12:34 @@ -900,7 +900,7 @@ class LanguageIs extends LanguageUtf8 { switch ( $wgUser->getOption( 'date' ) ) { # 16:12, 15. janúar 2001 || 16:12, 15. jan. 2001 - case 3: case 4: return $this->time( $ts, $adj ) . ', ' . $this->date( $ts, $adj ); + case '3': case '4': return $this->time( $ts, $adj ) . ', ' . $this->date( $ts, $adj ); # 2001-01-15 16:12:34 case 'ISO 8601': return $this->date( $ts, $adj ) . ' ' . $this->time( $ts, $adj ); # 15. janúar 2001 kl. 16:12 || 15. jan. 2001 kl. 16:12 diff --git a/languages/LanguageLt.php b/languages/LanguageLt.php index 2dea87d7fa..5996eefb7b 100644 --- a/languages/LanguageLt.php +++ b/languages/LanguageLt.php @@ -27,10 +27,6 @@ require_once( "LanguageUtf8.php" ); /* private */ $wgDateFormatsLt = array( "Nesvarbu", - "Sausio 15, 2001", - "15 Sausio 2001", - "2001 Sausio 15", - "2001-01-15" ); /* private */ $wgWeekdayNamesLt = array( diff --git a/languages/LanguageMs.php b/languages/LanguageMs.php index 25267044ea..352830d7a8 100644 --- a/languages/LanguageMs.php +++ b/languages/LanguageMs.php @@ -46,8 +46,6 @@ /* private */ $wgDateFormatsMs = array( "Tiada pilihan", # "No preference", - "15 Januari 2001", # "Januari 15, 2001", - "15 Januari 2001", # "2001 Januari 15" ); diff --git a/languages/LanguageNn.php b/languages/LanguageNn.php index f89e07f4ec..9dcd52bc1a 100644 --- a/languages/LanguageNn.php +++ b/languages/LanguageNn.php @@ -74,10 +74,6 @@ $wgValidationTypesNn = array ( /* private */ $wgDateFormatsNn = array( 'Ingen preferanse', - 'januar 15, 2001', - '15 januar 2001', - '2001 januar 15', - '2001-01-15' ); /* private */ $wgBookstoreListNn = array( diff --git a/languages/LanguageNv.php b/languages/LanguageNv.php index 50fc3a8850..57fd7c4ca2 100755 --- a/languages/LanguageNv.php +++ b/languages/LanguageNv.php @@ -54,10 +54,6 @@ if($wgMetaNamespace === FALSE) /* private */ $wgDateFormatsNv = array( 'No preference', - 'Yas Niłt\'ees 15, 2001', - '15 Yas Niłt\'ees 2001', - '2001 Yas Niłt\'ees 15', - '2001-01-15' ); /* private */ $wgUserTogglesNv = array( diff --git a/languages/LanguagePt.php b/languages/LanguagePt.php index b792e5d0ce..ebbd989ee0 100644 --- a/languages/LanguagePt.php +++ b/languages/LanguagePt.php @@ -60,9 +60,6 @@ /* private */ $wgDateFormatsPt = array( "Sem preferência", - "Janeiro 15, 2001", - "15 Janeiro 2001", - "2001 Janeiro 15" ); diff --git a/languages/LanguageRo.php b/languages/LanguageRo.php index 47ff9ba31e..62247567e0 100644 --- a/languages/LanguageRo.php +++ b/languages/LanguageRo.php @@ -50,9 +50,6 @@ require_once("LanguageUtf8.php"); /* private */ $wgDateFormatsRo = array( "Nici o preferinţă", - "Ianuarie 15, 2001", - "15 Ianuarie 2001", - "2001 Ianuarie 15" ); /* private */ $wgBookstoreListRo = array( diff --git a/languages/LanguageSl.php b/languages/LanguageSl.php index ae89dae41a..4f0048daca 100644 --- a/languages/LanguageSl.php +++ b/languages/LanguageSl.php @@ -117,10 +117,6 @@ require_once( "LanguageUtf8.php" ); /* private */ $wgDateFormatsSl = array( 'No preference', - 'januar 15, 2001', - '15 januar 2001', - '2001 januar 15', - '2001-01-15' ); diff --git a/languages/LanguageSq.php b/languages/LanguageSq.php index 9525cc3382..51014a21d3 100644 --- a/languages/LanguageSq.php +++ b/languages/LanguageSq.php @@ -48,9 +48,6 @@ require_once("LanguageUtf8.php"); /* private */ $wgDateFormatsSq = array( "Pa preferencë", - "Janar 15, 2001", - "15 Janar 2001", - "2001 Janar 15" ); diff --git a/languages/LanguageSr.php b/languages/LanguageSr.php index 1ca9df2209..b9bce866bb 100644 --- a/languages/LanguageSr.php +++ b/languages/LanguageSr.php @@ -34,9 +34,6 @@ require_once( "LanguageUtf8.php" ); /* private */ $wgDateFormatsSr = array( "Без посебних жеља", - "Јануар 15, 2001", - "15 Јануар 2001", - "2001 Јануар 15" ); diff --git a/languages/LanguageSv.php b/languages/LanguageSv.php index 39ace2ff2b..96befc33d1 100644 --- a/languages/LanguageSv.php +++ b/languages/LanguageSv.php @@ -62,10 +62,6 @@ require_once( "LanguageUtf8.php" ); /* private */ $wgDateFormatsSv = array( "Ingen inställning", - "Januari 15, 2001", - "15 Januari 2001", - "2001 Januari 15", - "2001-01-15" ); /* private */ $wgBookstoreListSv = array( diff --git a/languages/LanguageTa.php b/languages/LanguageTa.php index 8b1fa8e916..47a064416c 100644 --- a/languages/LanguageTa.php +++ b/languages/LanguageTa.php @@ -57,9 +57,6 @@ require_once( "LanguageUtf8.php" ); /* private */ $wgDateFormatsTa = array( "முன்னுரிமை இல்லை", - "ஜனவரி 15, 2001", - "15 ஜனவரி 2001", - "2001 ஜனவரி 15" ); diff --git a/languages/LanguageTh.php b/languages/LanguageTh.php index 3f54134d80..bc84fc1df7 100644 --- a/languages/LanguageTh.php +++ b/languages/LanguageTh.php @@ -40,10 +40,6 @@ /* private */ $wgDateFormatsTh = array( "No preference", - "มกราคม 15, 2001", - "15 มกราคม 2001", - "2001 มกราคม 15", - "2001-01-15" ); diff --git a/languages/LanguageTt.php b/languages/LanguageTt.php index 10874d44aa..917ce58dfa 100644 --- a/languages/LanguageTt.php +++ b/languages/LanguageTt.php @@ -55,10 +55,6 @@ require_once( "LanguageUtf8.php" ); /* private */ $wgDateFormatsTt = array( "köyläwsez", - "Ğínwar 15, 2001", - "15. Ğínwar 2001", - "2001 Ğínwar 15", - "2001-01-15" ); diff --git a/languages/LanguageUk.php b/languages/LanguageUk.php index fbd1c4b1fb..65dd5e3d10 100755 --- a/languages/LanguageUk.php +++ b/languages/LanguageUk.php @@ -51,9 +51,6 @@ require_once( "LanguageUtf8.php" ); /* Non-std date formats are only enabled for English, which is idiosyncratic that way */ /* private */ $wgDateFormatsUk = array( "Немає значення", - "Січень 15, 2001", - "15 січня 2001", - "2001 січень 15" ); diff --git a/languages/LanguageWa.php b/languages/LanguageWa.php index 3a41a56b95..1f7f554c4b 100644 --- a/languages/LanguageWa.php +++ b/languages/LanguageWa.php @@ -44,10 +44,6 @@ require_once( "LanguageUtf8.php" ); /* private */ $wgDateFormatsWa = array( /* cwè fé chal ??? */ "Nole preferince", - "January 15, 2001", - "15 January 2001", - "2001 January 15", - "2001-01-15" ); /* private */ $wgBookstoreListWa = array( -- 2.20.1