* (bug 6480) Updates to German localisation
[lhc/web/wiklou.git] / languages / LanguageSl.php
index 8cecf5d..1cffbde 100644 (file)
@@ -1,8 +1,10 @@
 <?php
-/**
-  * @package MediaWiki
-  * @subpackage Language
-  */
+/** Slovenian (Slovenščina)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ */
 
 #
 # Revision/
 #         1.00.32 romanm        2003-11-19 |    merged incorrectly broken lines
 #         1.00.40 romanm        2003-11-21 |    fixed Google search
 
-#         1.00.50 Nikerabbit    2005-08-15 |    removed old stuff, some cleanup, NOT COMPLETE!
-
-
-require_once( "LanguageUtf8.php" );
-
-/* private */ $wgNamespaceNamesSl = array(
-       NS_MEDIA          => 'Media',
-       NS_SPECIAL        => 'Posebno',
-       NS_MAIN           => '',
-       NS_TALK           => 'Pogovor',
-       NS_USER           => 'Uporabnik',
-       NS_USER_TALK      => 'Uporabniški_pogovor',
-       NS_PROJECT        => $wgMetaNamespace,
-       NS_PROJECT_TALK   => FALSE,  # Set in constructor
-       NS_IMAGE          => 'Slika',
-       NS_IMAGE_TALK     => 'Pogovor_o_sliki',
-       NS_MEDIAWIKI      => 'MediaWiki',
-       NS_MEDIAWIKI_TALK => 'Pogovor_o_MediaWiki',
-       NS_TEMPLATE       => 'Predloga',
-       NS_TEMPLATE_TALK  => 'Pogovor_o_predlogi',
-       NS_HELP           => 'Pomoč',
-       NS_HELP_TALK      => 'Pogovor_o_pomoči',
-       NS_CATEGORY       => 'Kategorija',
-       NS_CATEGORY_TALK  => 'Pogovor_o_kategoriji'
-) + $wgNamespaceNamesEn;
-
-/* private */ $wgQuickbarSettingsSl = array(
-       "Brez", "Levo nepomično", "Desno nepomično", "Levo leteče"
-);
-
-/* private */ $wgDateFormatsSl = array(
-#        'No preference',
-);
+
+require_once( 'LanguageUtf8.php' );
 
 if (!$wgCachedMessageArrays) {
        require_once('MessagesSl.php');
 }
 
-#--------------------------------------------------------------------------
-# Internationalisation code
-#--------------------------------------------------------------------------
-
 class LanguageSl extends LanguageUtf8 {
-       function LanguageSl() {
-               global $wgNamespaceNamesSl, $wgMetaNamespace;
-               LanguageUtf8::LanguageUtf8();
-               $wgNamespaceNamesSl[NS_PROJECT_TALK] = 'Pogovor_' .
-                       str_replace( ' ', '_',
-                               $this->convertGrammar( $wgMetaNamespace, 'orodnik' ) );
+       private $mMessagesSl, $mNamespaceNamesSl = null;
+
+       private $mQuickbarSettingsSl = array(
+               'Brez', 'Levo nepomično', 'Desno nepomično', 'Levo leteče'
+       );
+
+       private $mMonthNameGenSl = array(
+               'januarja', 'februarja', 'marca', 'aprila', 'maja', 'junija',
+               'julija', 'avgusta', 'septembra', 'oktobra', 'novembra', 'decembra'
+       );
+
+       function __construct() {
+               parent::__construct();
+
+               global $wgAllMessagesSl;
+               $this->mMessagesSl =& $wgAllMessagesSl;
+
+               global $wgMetaNamespace;
+               $this->mNamespaceNamesSl = array(
+                       NS_MEDIA          => 'Media',
+                       NS_SPECIAL        => 'Posebno',
+                       NS_MAIN           => '',
+                       NS_TALK           => 'Pogovor',
+                       NS_USER           => 'Uporabnik',
+                       NS_USER_TALK      => 'Uporabniški_pogovor',
+                       NS_PROJECT        => $wgMetaNamespace,
+                       NS_PROJECT_TALK   => 'Pogovor_' .
+                       str_replace( ' ', '_', $this->convertGrammar( $wgMetaNamespace, 'mestnik' ) ),
+                       NS_IMAGE          => 'Slika',
+                       NS_IMAGE_TALK     => 'Pogovor_o_sliki',
+                       NS_MEDIAWIKI      => 'MediaWiki',
+                       NS_MEDIAWIKI_TALK => 'Pogovor_o_MediaWiki',
+                       NS_TEMPLATE       => 'Predloga',
+                       NS_TEMPLATE_TALK  => 'Pogovor_o_predlogi',
+                       NS_HELP           => 'Pomoč',
+                       NS_HELP_TALK      => 'Pogovor_o_pomoči',
+                       NS_CATEGORY       => 'Kategorija',
+                       NS_CATEGORY_TALK  => 'Pogovor_o_kategoriji'
+               );
+
        }
 
        function getNamespaces() {
-               global $wgNamespaceNamesSl;
-               return $wgNamespaceNamesSl;
+               return $this->mNamespaceNamesSl + parent::getNamespaces();
        }
 
        function getQuickbarSettings() {
-               global $wgQuickbarSettingsSl;
-               return $wgQuickbarSettingsSl;
+               return $this->mQuickbarSettingsSl;
        }
 
        function getDateFormats() {
-               global $wgDateFormatsSl;
-               return $wgDateFormatsSl;
+               return false;
        }
 
        function getMessage( $key ) {
-               global $wgAllMessagesSl;
-               if(array_key_exists($key, $wgAllMessagesSl))
-                       return $wgAllMessagesSl[$key];
-               else
-                       return parent::getMessage($key);
+               if( isset( $this->mMessagesSl[$key] ) ) {
+                       return $this->mMessagesSl[$key];
+               } else {
+                       return parent::getMessage( $key );
+               }
        }
 
+       function getAllMessages() {
+               return $this->mMessagesSl;
+       }
+
+
        function fallback8bitEncoding() {
                return "iso-8859-2";
        }
 
-       function formatNum( $number, $year = false ) {
-               return $year ? $number : strtr($this->commafy($number), '.,', ',.' );
+       function separatorTransformTable() {
+               return array(',' => '.', '.' => ',' );
        }
 
+       function getMonthNameGen( $key ) {
+               return $this->mMonthNameGenSl[$key-1];
+       }
+
+
        # Convert from the nominative form of a noun to some other case
        # Invoked with {{GRAMMAR:case|word}}
+       /**
+        * Cases: rodilnik, dajalnik, tožilnik, mestnik, orodnik
+        */
        function convertGrammar( $word, $case ) {
+               global $wgGrammarForms;
+               if ( isset($wgGrammarForms['sl'][$case][$word]) ) {
+                       return $wgGrammarForms['sl'][$case][$word];
+               }
+
                switch ( $case ) {
                        case 'rodilnik': # genitive
                                if ( $word == 'Wikipedija' ) {
@@ -148,36 +164,36 @@ class LanguageSl extends LanguageUtf8 {
                        break;
                        case 'mestnik': # locative
                                if ( $word == 'Wikipedija' ) {
-                                       $word = 'z Wikipedijo';
+                                       $word = 'o Wikipediji';
                                } elseif ( $word == 'Wikiknjige' ) {
-                                       $word = 'z Wikiknjigami';
+                                       $word = 'o Wikiknjigah';
                                } elseif ( $word == 'Wikinovice' ) {
-                                       $word = 'z Wikinovicami';
+                                       $word = 'o Wikinovicah';
                                } elseif ( $word == 'Wikinavedek' ) {
-                                       $word = 'z Wikinavedkom';
+                                       $word = 'o Wikinavedku';
                                } elseif ( $word == 'Wikivir' ) {
-                                       $word = 'z Wikivirom';
+                                       $word = 'o Wikiviru';
                                } elseif ( $word == 'Wikislovar' ) {
-                                       $word = 'z Wikislovarjem';
+                                       $word = 'o Wikislovarju';
                                } else {
-                                       $word = 'z ' . $word;
+                                       $word = 'o ' . $word;
                                }
                        break;
                        case 'orodnik': # instrumental
                                if ( $word == 'Wikipedija' ) {
-                                       $word = 'o Wikipediji';
+                                       $word = 'z Wikipedijo';
                                } elseif ( $word == 'Wikiknjige' ) {
-                                       $word = 'o Wikiknjigah';
+                                       $word = 'z Wikiknjigami';
                                } elseif ( $word == 'Wikinovice' ) {
-                                       $word = 'o Wikinovicah';
+                                       $word = 'z Wikinovicami';
                                } elseif ( $word == 'Wikinavedek' ) {
-                                       $word = 'o Wikinavedku';
+                                       $word = 'z Wikinavedkom';
                                } elseif ( $word == 'Wikivir' ) {
-                                       $word = 'o Wikiviru';
+                                       $word = 'z Wikivirom';
                                } elseif ( $word == 'Wikislovar' ) {
-                                       $word = 'o Wikislovarju';
+                                       $word = 'z Wikislovarjem';
                                } else {
-                                       $word = 'o ' . $word;
+                                       $word = 'z ' . $word;
                                }
                        break;
                }
@@ -185,5 +201,23 @@ class LanguageSl extends LanguageUtf8 {
                return $word; # this will return the original value for 'imenovalnik' (nominativ) and all undefined case values
        }
 
+       function convertPlural( $count, $w1, $w2, $w3, $w4, $w5) {
+               $count = str_replace ('.', '', $count);
+               $forms = array( $w1, $w2, $w3, $w4, $w5 );
+               if ( $count % 100 == 1 ) {
+                       $index = 0;
+               } elseif ( $count % 100 == 2 ) {
+                       $index = 1;
+               } elseif ( $count % 100 == 3 || $count % 100 == 4 ) {
+                       $index = 2;
+               } elseif ( $count != 0 ) {
+                       $index = 3;
+               } else {
+                       $index = 4;
+               }
+               return $forms[$index];
+       }
+
+
 }
 ?>
\ No newline at end of file