]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - languages/classes/LanguageFi.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / languages / classes / LanguageFi.php
index e3d922c47edf19ee8a0326bc46f3340052501be0..54ff421634619b1a12f3eeb5b1e54782f68768c4 100644 (file)
@@ -1,23 +1,49 @@
 <?php
-
-/** Finnish (Suomi)
+/**
+ * Finnish (Suomi) specific code.
  *
- * @ingroup Language
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @author Niklas Laxström
+ * @ingroup Language
  */
-class LanguageFi extends Language {
 
-       # Convert from the nominative form of a noun to some other case
-       # Invoked with {{GRAMMAR:case|word}}
+/**
+ * Finnish (Suomi)
+ *
+ * @ingroup Language
+ */
+class LanguageFi extends Language {
+       /**
+        * Convert from the nominative form of a noun to some other case
+        * Invoked with {{grammar:case|word}}
+        *
+        * @param string $word
+        * @param string $case
+        * @return string
+        */
        function convertGrammar( $word, $case ) {
                global $wgGrammarForms;
                if ( isset( $wgGrammarForms['fi'][$case][$word] ) ) {
                        return $wgGrammarForms['fi'][$case][$word];
                }
 
-               # These rules are not perfect, but they are currently only used for site names so it doesn't
-               # matter if they are wrong sometimes. Just add a special case for your site name if necessary.
+               # These rules don't cover the whole language.
+               # They are used only for site names.
 
                # wovel harmony flag
                $aou = preg_match( '/[aou][^äöy]*$/i', $word );
@@ -26,12 +52,14 @@ class LanguageFi extends Language {
                # The general case cannot be handled without a dictionary, but there's at least one notable
                # special case we should check for:
 
-               if ( preg_match( '/wiki$/i', $word ) )
+               if ( preg_match( '/wiki$/i', $word ) ) {
                        $aou = false;
+               }
 
                # append i after final consonant
-               if ( preg_match( '/[bcdfghjklmnpqrstvwxz]$/i', $word ) )
+               if ( preg_match( '/[bcdfghjklmnpqrstvwxz]$/i', $word ) ) {
                        $word .= 'i';
+               }
 
                switch ( $case ) {
                        case 'genitive':
@@ -45,7 +73,6 @@ class LanguageFi extends Language {
                                break;
                        case 'illative':
                                # Double the last letter and add 'n'
-                               # mb_substr has a compatibility function in GlobalFunctions.php
                                $word = $word . mb_substr( $word, -1 ) . 'n';
                                break;
                        case 'inessive':
@@ -55,22 +82,31 @@ class LanguageFi extends Language {
                return $word;
        }
 
-       function translateBlockExpiry( $str, $forContent = false ) {
+       /**
+        * @param string $str
+        * @param User $user User object to use timezone from or null for $wgUser
+        * @param int $now Current timestamp, for formatting relative block durations
+        * @return string
+        */
+       function translateBlockExpiry( $str, User $user = null, $now = 0 ) {
                /*
                        'ago', 'now', 'today', 'this', 'next',
-                       'first', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth', 'tenth', 'eleventh', 'twelfth',
+                       'first', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth',
+                               'tenth', 'eleventh', 'twelfth',
                        'tomorrow', 'yesterday'
 
-                       $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';
+                       $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 = array(
+               $weekds = [
                        'monday' => 'maanantai',
                        'tuesday' => 'tiistai',
                        'wednesday' => 'keskiviikko',
-                       'thursay' => 'torstai',
+                       'thursday' => 'torstai',
                        'friday' => 'perjantai',
                        'saturday' => 'lauantai',
                        'sunday' => 'sunnuntai',
@@ -110,13 +146,13 @@ class LanguageFi extends Language {
                        'year' => 'vuosi',
                        'infinite' => 'ikuisesti',
                        'indefinite' => 'ikuisesti'
-               );
+               ];
 
                $final = '';
-               $tokens = explode ( ' ', $str );
+               $tokens = explode( ' ', $str );
                foreach ( $tokens as $item ) {
                        if ( !is_numeric( $item ) ) {
-                               if ( count ( explode( '-', $item ) ) == 3 && strlen( $item ) == 10 ) {
+                               if ( count( explode( '-', $item ) ) == 3 && strlen( $item ) == 10 ) {
                                        list( $yyyy, $mm, $dd ) = explode( '-', $item );
                                        $final .= ' ' . $this->date( "{$yyyy}{$mm}{$dd}000000" );
                                        continue;