Index: trunk/phase3/includes/LogPage.php |
— | — | @@ -156,6 +156,7 @@ |
157 | 157 | * @static |
158 | 158 | */ |
159 | 159 | function actionText( $type, $action, $title = NULL, $skin = NULL, $params = array(), $filterWikilinks=false ) { |
| 160 | + global $wgLang; |
160 | 161 | static $actions = array( |
161 | 162 | 'block/block' => 'blocklogentry', |
162 | 163 | 'block/unblock' => 'unblocklogentry', |
— | — | @@ -193,6 +194,9 @@ |
194 | 195 | $rv = wfMsg( $actions[$key], $titleLink ); |
195 | 196 | } else { |
196 | 197 | array_unshift( $params, $titleLink ); |
| 198 | + if ( $key == 'block/block' ) { |
| 199 | + $params[1] = $wgLang->translateBlockExpiry($params[1]); |
| 200 | + } |
197 | 201 | $rv = wfMsgReal( $actions[$key], $params, true, false ); |
198 | 202 | } |
199 | 203 | } |
Index: trunk/phase3/RELEASE-NOTES |
— | — | @@ -63,6 +63,8 @@ |
64 | 64 | * (bug 3280) Respect 'move' group permission on page moves |
65 | 65 | * (bug 2613) Clear saved passwords from the form |
66 | 66 | * Finally dropped MySQL 3.23.x support |
| 67 | +* Experimental feature to allow translation of block expiry times |
| 68 | + Implementation only for Finnish currently |
67 | 69 | |
68 | 70 | |
69 | 71 | === Caveats === |
Index: trunk/phase3/languages/LanguageFi.php |
— | — | @@ -521,7 +521,7 @@ |
522 | 522 | 'notextmatches' => 'Hakusanaa ei löytynyt sivujen teksteistä', |
523 | 523 | 'prevn' => '← $1 edellistä', |
524 | 524 | 'nextn' => '$1 seuraavaa →', |
525 | | -'viewprevnext' => 'Näytä [$3] kerralla.<br />$1 | $2', |
| 525 | +'viewprevnext' => "Näytä [$3] kerralla.\n\n$1 | $2", |
526 | 526 | 'showingresults' => '<b>$1</b> tulosta tuloksesta <b>$2</b> alkaen.', |
527 | 527 | 'showingresultsnum' => 'Alla on <b>$3</b> hakutulosta alkaen <b>$2.</b> tuloksesta.', |
528 | 528 | '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 @@ |
984 | 984 | # Block/unblock IP |
985 | 985 | # |
986 | 986 | 'blockip' => 'Aseta muokkausesto', |
987 | | -'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.<br />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.', |
| 987 | +'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.<br />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.', |
988 | 988 | 'ipaddress' => 'IP-osoite', // TODO bug |
989 | 989 | 'ipadressorusername' => 'IP-osoite tai käyttäjätunnus', |
990 | 990 | 'ipbexpiry' => 'Umpeutuu', |
— | — | @@ -1548,6 +1548,61 @@ |
1549 | 1549 | return $word; |
1550 | 1550 | } |
1551 | 1551 | |
| 1552 | + function translateBlockExpiry( $str ) { |
| 1553 | + /*$from = array( |
| 1554 | + 'ago', 'now', 'today', 'this', 'next', |
| 1555 | + 'first', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth', 'tenth', 'eleventh', 'twelfth', |
| 1556 | + 'tomorrow', 'yesterday', |
| 1557 | + 'infinite', 'indefinite', |
| 1558 | + ); |
| 1559 | + $to = array( |
| 1560 | + 'sitten', 'nyt', 'tänään', 'tämä', 'seuraava', |
| 1561 | + 'ensimmäinen', 'kolmas', 'neljäs', 'viides', 'kuudes', 'seitsemäs', 'kahdeksas', 'yhdeksäs', 'kymmenes', 'yhdestoista', 'kahdestoista', |
| 1562 | + 'huomenna', 'eilen', |
| 1563 | + 'ikuisesti', 'ikuisesti', |
| 1564 | + ); |
| 1565 | + */ |
| 1566 | + $weekds = 'monday:maanantai,tuesday:tiistai,wednesday:keskiviikko,thursay:torstai,friday:perjantai,'. |
| 1567 | + 'saturday:lauantai,sunday:sunnuntai,mon:ma,tue:ti,tues:ti,wed:ke,wednes:ke,thu:to,thur:to,'. |
| 1568 | + 'thurs:to,fri:pe,sat:la,sun:su,next:seuraava,tomorrow:huomenna,ago:sitten,'. |
| 1569 | + 'seconds:sekuntia,second:sekunti,secs:s,sec:s,'. |
| 1570 | + 'minutes:minuuttia,minute:minuutti,mins:min,min:min,'. |
| 1571 | + 'days:päivää,day:päivä,hours:tuntia,hour:tunti,weeks:viikkoa,week:viikko,'. |
| 1572 | + 'fortnights:tuplaviikkoa,fortnight:tuplaviikko,'. |
| 1573 | + 'months:kuukautta,month:kuukausi,years:vuotta,year:vuosi,'. |
| 1574 | + 'infinite:ikuisesti,indefinite:ikuisesti'; |
| 1575 | + $months = 'january:tammikuu,february:helmikuu,march:maaliskuu,april:huhtikuu,may:toukokuu,june:kesäkuu,' . |
| 1576 | + 'july:heinäkuu,august:elokuu,september:syyskuu,october:lokakuu,november:marraskuu,december:joulukuu,' . |
| 1577 | + 'jan:tammikuu,feb:helmikuu,mar:maaliskuu,apr:huhtikuu,jun:kesäkuu,jul:heinäkuu,aug:elokuu,sep:syyskuu,'. |
| 1578 | + 'oct:lokakuu,nov:marraskuu,dec:joulukuu,sept:syyskuu'; |
| 1579 | + $weekds = explode( ',', $weekds); |
| 1580 | + $final = ''; |
| 1581 | + $stop = false; |
| 1582 | + foreach( explode ( ' ', $str) as $item ) { |
| 1583 | + if ( !is_numeric($item) ) { |
| 1584 | + if ( count ( explode( '-', $item ) ) == 3 ) { |
| 1585 | + list( $yyyy, $mm, $dd ) = explode( '-', $item ); |
| 1586 | + $final .= ' ' . $this->date( "{$yyyy}{$mm}{$dd}00000000"); |
| 1587 | + continue; |
| 1588 | + } |
| 1589 | + foreach( $weekds as $item2 ) { |
| 1590 | + list( $from, $to) = explode( ':', $item2 ); |
| 1591 | + if ( strcasecmp( $from, $item ) == 0 ) { |
| 1592 | + $final .= ' ' . $to; |
| 1593 | + $stop = true; |
| 1594 | + break; |
| 1595 | + } |
| 1596 | + } |
| 1597 | + } |
| 1598 | + |
| 1599 | + if (!$stop) { |
| 1600 | + $final .= ' ' . $item; |
| 1601 | + } else { |
| 1602 | + $stop = false; |
| 1603 | + } |
| 1604 | + } |
| 1605 | + return '<span class="blockexpiry" title="' . htmlspecialchars($str). '">”' . trim( $final ) . '”</span>'; |
| 1606 | + } |
1552 | 1607 | } |
1553 | 1608 | |
1554 | 1609 | ?> |
Index: trunk/phase3/languages/Language.php |
— | — | @@ -2777,6 +2777,16 @@ |
2778 | 2778 | } |
2779 | 2779 | |
2780 | 2780 | /** |
| 2781 | + * For translaing of expiry times |
| 2782 | + * @param string The validated block time in English |
| 2783 | + * @return Somehow translated block time |
| 2784 | + * @see LanguageFi.php for example implementation |
| 2785 | + */ |
| 2786 | + function translateBlockExpiry( $str ) { |
| 2787 | + return $str; |
| 2788 | + } |
| 2789 | + |
| 2790 | + /** |
2781 | 2791 | * languages like Chinese need to be segmented in order for the diff |
2782 | 2792 | * to be of any use |
2783 | 2793 | * |