Call the LanguageGetMagic hook only once (per language object)
[lhc/web/wiklou.git] / languages / LanguageUdm.php
index 53a36cd..d4d8a55 100644 (file)
@@ -1,72 +1,76 @@
 <?php
-/**
-  * @package MediaWiki
-  * @subpackage Language
-  */
-# Udmurt stub localization; default to Russian instead of English.
-# See language.txt
+/** Udmurt (Удмурт)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ *
+ */
 
-require_once( "LanguageRu.php" );
-
-/* private */ $wgNamespaceNamesUdm = array(
-       NS_MEDIA            => 'Медиа',
-       NS_SPECIAL          => 'Панель',
-       NS_MAIN             => '',
-       NS_TALK             => 'Вераськон',
-       NS_USER             => 'Викиавтор',
-       NS_USER_TALK        => 'Викиавтор_сярысь_вераськон',
-       NS_PROJECT          => $wgMetaNamespace,
-       NS_PROJECT_TALK     => $wgMetaNamespace . '_сярысь_вераськон',
-       NS_IMAGE            => 'Суред',
-       NS_IMAGE_TALK       => 'Суред_сярысь_вераськон',
-       NS_MEDIAWIKI        => 'MediaWiki',
-       NS_MEDIAWIKI_TALK   => 'MediaWiki_сярысь_вераськон',
-       NS_TEMPLATE         => 'Шаблон',
-       NS_TEMPLATE_TALK    => 'Шаблон_сярысь_вераськон',
-       NS_HELP             => 'Валэктон',
-       NS_HELP_TALK        => 'Валэктон_сярысь_вераськон',
-       NS_CATEGORY         => 'Категория',
-       NS_CATEGORY_TALK    => 'Категория_сярысь_вераськон',
-) + $wgNamespaceNamesEn;
+require_once( 'LanguageRu.php' );
 
 if (!$wgCachedMessageArrays) {
        require_once('MessagesUdm.php');
 }
 
+class LanguageUdm extends LanguageUtf8 {
+       private $mMessagesUdm, $mNamespaceNamesUdm = null;
+       
+       function __construct() {
+               parent::__construct();
+
+               global $wgAllMessagesUdm;
+               $this->mMessagesUdm =& $wgAllMessagesUdm;
+
+               global $wgMetaNamespace;
+               $this->mNamespaceNamesUdm = array(
+                       NS_MEDIA            => 'Медиа',
+                       NS_SPECIAL          => 'Панель',
+                       NS_MAIN             => '',
+                       NS_TALK             => 'Вераськон',
+                       NS_USER             => 'Викиавтор',
+                       NS_USER_TALK        => 'Викиавтор_сярысь_вераськон',
+                       NS_PROJECT          => $wgMetaNamespace,
+                       NS_PROJECT_TALK     => $wgMetaNamespace . '_сярысь_вераськон',
+                       NS_IMAGE            => 'Суред',
+                       NS_IMAGE_TALK       => 'Суред_сярысь_вераськон',
+                       NS_MEDIAWIKI        => 'MediaWiki',
+                       NS_MEDIAWIKI_TALK   => 'MediaWiki_сярысь_вераськон',
+                       NS_TEMPLATE         => 'Шаблон',
+                       NS_TEMPLATE_TALK    => 'Шаблон_сярысь_вераськон',
+                       NS_HELP             => 'Валэктон',
+                       NS_HELP_TALK        => 'Валэктон_сярысь_вераськон',
+                       NS_CATEGORY         => 'Категория',
+                       NS_CATEGORY_TALK    => 'Категория_сярысь_вераськон',
+               );
 
-class LanguageUdm extends LanguageRu {
-       function LanguageUdm() {
-               global $wgNamespaceNamesUdm, $wgMetaNamespace;
-               LanguageUtf8::LanguageUtf8();
        }
 
-       function getNamespaces() {
-               global $wgNamespaceNamesUdm;
-               return $wgNamespaceNamesUdm;
+       function getFallbackLanguage() {
+               return 'ru';
        }
 
-       function getQuickbarSettings() {
-               global $wgQuickbarSettingsRu;
-               return $wgQuickbarSettingsRu;
+       function getNamespaces() {
+               return $this->mNamespaceNamesUdm + parent::getNamespaces();
        }
 
-       function getSkinNames() {
-               global $wgSkinNamesRu;
-               return $wgSkinNamesRu;
+       function getMessage( $key ) {
+               if( isset( $this->mMessagesUdm[$key] ) ) {
+                       return $this->mMessagesUdm[$key];
+               } else {
+                       return parent::getMessage( $key );
+               }
        }
 
-       function getDateFormats() {
-               global $wgDateFormatsRu;
-               return $wgDateFormatsRu;
+       function getAllMessages() {
+               return $this->mMessagesUdm;
        }
 
-       function getMessage( $key ) {
-               global $wgAllMessagesUdm;
-               return isset($wgAllMessagesUdm[$key]) ? $wgAllMessagesUdm[$key] : parent::getMessage($key);
+       function linkTrail() {
+               return '/^([a-zа-яёӝӟӥӧӵ“»]+)(.*)$/sDu';
        }
 
        function fallback8bitEncoding() {
-               return "windows-1251";
+               return 'windows-1251';
        }
 
        function separatorTransformTable() {