From: Niklas Laxström Date: Sat, 27 Aug 2005 16:35:10 +0000 (+0000) Subject: +* Experimental feature to allow translation of block expiry times X-Git-Tag: 1.6.0~1777 X-Git-Url: http://git.cyclocoop.org//%27%40script%40/%27?a=commitdiff_plain;h=73a2aea77b57e66b784fe5f195e3072c9ecdbf34;p=lhc%2Fweb%2Fwiklou.git +* Experimental feature to allow translation of block expiry times --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 254118725a..9634f30391 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -63,6 +63,8 @@ fully support the editing toolbar, but was found to be too confusing. * (bug 3280) Respect 'move' group permission on page moves * (bug 2613) Clear saved passwords from the form * Finally dropped MySQL 3.23.x support +* Experimental feature to allow translation of block expiry times + Implementation only for Finnish currently === Caveats === diff --git a/includes/LogPage.php b/includes/LogPage.php index 1fc51168f0..f1888c9807 100644 --- a/includes/LogPage.php +++ b/includes/LogPage.php @@ -156,6 +156,7 @@ class LogPage { * @static */ function actionText( $type, $action, $title = NULL, $skin = NULL, $params = array(), $filterWikilinks=false ) { + global $wgLang; static $actions = array( 'block/block' => 'blocklogentry', 'block/unblock' => 'unblocklogentry', @@ -193,6 +194,9 @@ class LogPage { $rv = wfMsg( $actions[$key], $titleLink ); } else { array_unshift( $params, $titleLink ); + if ( $key == 'block/block' ) { + $params[1] = $wgLang->translateBlockExpiry($params[1]); + } $rv = wfMsgReal( $actions[$key], $params, true, false ); } } diff --git a/languages/Language.php b/languages/Language.php index 08bc139aaa..5157785e30 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -2776,6 +2776,16 @@ class Language { return $word; } + /** + * For translaing of expiry times + * @param string The validated block time in English + * @return Somehow translated block time + * @see LanguageFi.php for example implementation + */ + function translateBlockExpiry( $str ) { + return $str; + } + /** * languages like Chinese need to be segmented in order for the diff * to be of any use diff --git a/languages/LanguageFi.php b/languages/LanguageFi.php index e8aeac3632..618aca3556 100644 --- a/languages/LanguageFi.php +++ b/languages/LanguageFi.php @@ -521,7 +521,7 @@ Sivun lähdekoodi:', 'notextmatches' => 'Hakusanaa ei löytynyt sivujen teksteistä', 'prevn' => '← $1 edellistä', 'nextn' => '$1 seuraavaa →', -'viewprevnext' => 'Näytä [$3] kerralla.
$1 | $2', +'viewprevnext' => "Näytä [$3] kerralla.\n\n$1 | $2", 'showingresults' => '$1 tulosta tuloksesta $2 alkaen.', 'showingresultsnum' => 'Alla on $3 hakutulosta alkaen $2. tuloksesta.', 'nonefound' => '\'\'\'Huomautus\'\'\': Epäonnistuneet haut johtuvat usein hyvin yleisten sanojen, kuten \'\'on\'\' ja \'\'ei\'\', etsimisestä tai useamman kuin yhden hakutermin määrittelemisestä. Vain sivut, joilla on kaikki hakutermin sanat, näkyvät tuloksissa.', @@ -983,7 +983,7 @@ Palaute ja lisäapu osoitteessa: # Block/unblock IP # 'blockip' => 'Aseta muokkausesto', -'blockiptext' => 'Tällä lomakkeella voit estää käyttäjän tai IP-osoitteen muokkausoikeudet. Muokkausoikeuksien poistamiseen pitää olla syy, esimerkiksi sivujen vandalisointi. Kirjoita syy siihen varattuun kenttään.
Vanhenemisajat noudattavat GNUn standardimuotoa, joka on kuvattu tar-manuaalissa ([http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html] [EN]), esimerkiksi ”1 hour”, ”2 days”, ”next Wednesday”, ”1 January 2017”. Esto voi olla myös ”indefinite” tai ”infinite”, joka kestää siihen asti, että se poistetaan.', +'blockiptext' => 'Tällä lomakkeella voit estää käyttäjän tai IP-osoitteen muokkausoikeudet. Muokkausoikeuksien poistamiseen pitää olla syy, esimerkiksi sivujen vandalisointi. Kirjoita syy siihen varattuun kenttään.
Vanhenemisajat noudattavat GNUn standardimuotoa, joka on kuvattu tar-manuaalissa ([http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html] [EN]), esimerkiksi ”1 hour”, ”2 days”, ”next Wednesday”, 2005-08-29”. Esto voi olla myös ”indefinite” tai ”infinite”, joka kestää kunnes se poistetaan.', 'ipaddress' => 'IP-osoite', // TODO bug 'ipadressorusername' => 'IP-osoite tai käyttäjätunnus', 'ipbexpiry' => 'Umpeutuu', @@ -1548,6 +1548,61 @@ class LanguageFi extends LanguageUtf8 { return $word; } + function translateBlockExpiry( $str ) { + /*$from = array( + 'ago', 'now', 'today', 'this', 'next', + 'first', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth', 'tenth', 'eleventh', 'twelfth', + 'tomorrow', 'yesterday', + 'infinite', 'indefinite', + ); + $to = array( + 'sitten', 'nyt', 'tänään', 'tämä', 'seuraava', + 'ensimmäinen', 'kolmas', 'neljäs', 'viides', 'kuudes', 'seitsemäs', 'kahdeksas', 'yhdeksäs', 'kymmenes', 'yhdestoista', 'kahdestoista', + 'huomenna', 'eilen', + 'ikuisesti', 'ikuisesti', + ); + */ + $weekds = 'monday:maanantai,tuesday:tiistai,wednesday:keskiviikko,thursay:torstai,friday:perjantai,'. + 'saturday:lauantai,sunday:sunnuntai,mon:ma,tue:ti,tues:ti,wed:ke,wednes:ke,thu:to,thur:to,'. + 'thurs:to,fri:pe,sat:la,sun:su,next:seuraava,tomorrow:huomenna,ago:sitten,'. + 'seconds:sekuntia,second:sekunti,secs:s,sec:s,'. + 'minutes:minuuttia,minute:minuutti,mins:min,min:min,'. + 'days:päivää,day:päivä,hours:tuntia,hour:tunti,weeks:viikkoa,week:viikko,'. + 'fortnights:tuplaviikkoa,fortnight:tuplaviikko,'. + 'months:kuukautta,month:kuukausi,years:vuotta,year:vuosi,'. + 'infinite:ikuisesti,indefinite:ikuisesti'; + $months = 'january:tammikuu,february:helmikuu,march:maaliskuu,april:huhtikuu,may:toukokuu,june:kesäkuu,' . + 'july:heinäkuu,august:elokuu,september:syyskuu,october:lokakuu,november:marraskuu,december:joulukuu,' . + 'jan:tammikuu,feb:helmikuu,mar:maaliskuu,apr:huhtikuu,jun:kesäkuu,jul:heinäkuu,aug:elokuu,sep:syyskuu,'. + 'oct:lokakuu,nov:marraskuu,dec:joulukuu,sept:syyskuu'; + $weekds = explode( ',', $weekds); + $final = ''; + $stop = false; + foreach( explode ( ' ', $str) as $item ) { + if ( !is_numeric($item) ) { + if ( count ( explode( '-', $item ) ) == 3 ) { + list( $yyyy, $mm, $dd ) = explode( '-', $item ); + $final .= ' ' . $this->date( "{$yyyy}{$mm}{$dd}00000000"); + continue; + } + foreach( $weekds as $item2 ) { + list( $from, $to) = explode( ':', $item2 ); + if ( strcasecmp( $from, $item ) == 0 ) { + $final .= ' ' . $to; + $stop = true; + break; + } + } + } + + if (!$stop) { + $final .= ' ' . $item; + } else { + $stop = false; + } + } + return '”' . trim( $final ) . '”'; + } } ?>