Удзельнік:Alexander Gouk/Канвертар/files/LanguageBe.php — Вікіпэдыя

# Удзельнік:Alexander Gouk/Канвертар/files/LanguageBe.php

### Зьвесткі зь Вікіпэдыі — вольнай энцыкляпэдыі.

< Удзельнік:Alexander Gouk | Канвертар | files

    <?php
    /**
      * @package MediaWiki
      * @subpackage Language
      */

    // Language Conversion

    require_once( dirname(__FILE__).'/../LanguageConverter.php' );
    require_once( dirname(__FILE__).'/LanguageBe_of.php' );
    require_once( dirname(__FILE__).'/LanguageBe_tr.php' );

    class BeConverter extends LanguageConverter {

            var $mToAlternative = array(
                    'іласоф'  => 'ілязоф',
                    'Лондан' => 'Лёндан',
                    'сць'  => 'сьць',
                    'сля'  => 'сьля',
                    'ненн'  => 'неньн',
            );

            var $mToOfficial = array(
                    'ілязоф' => 'іласоф',
                    'Лёндан' => 'Лондан',
                    'сьць'  => 'сць',
                    'сьля'   => 'сля',
                    'еньн'  => 'енн',
                    'аньн'  => 'анн',
                    'менск' => 'мінск',
                    'сьвя'  => 'свя',
                    'Сьвя'  => 'Свя',
            );

            function loadDefaultTables() {
                    $this->mTables = array(
                            'be-of' => new ReplacementArray( $this->mToOfficial ),
                            'be-tr' => new ReplacementArray( $this->mToAlternative),
                            'be'    => new ReplacementArray( $this->mToOfficial ),
                    );
            }

            /* rules should be defined as -{афіцыйная | тарашкевіца-} -or-
                    -{code:text | code:text | ...}-
                    update: delete all rule parsing because it's not used
                            currently, and just produces a couple of bugs
            */
            function parseManualRule($rule, $flags=array()) {
                    if(in_array('T',$flags)){
                            return parent::parseManualRule($rule, $flags);
                    }

                    // otherwise ignore all formatting
                    foreach($this->mVariants as $v) {
                            $carray[$v] = $rule;
                    }

                    return $carray;
            }

            // Do not convert content on talk pages
            function parserConvert( $text, &$parser ){
                    if(is_object($parser->mTitle) && $parser->mTitle->isTalkPage())
                            $this->mDoContentConvert=false;
                    else
                            $this->mDoContentConvert=true;

                    return parent::parserConvert($text, $parser );
            }

            /*
             * A function wrapper:
             *   - if there is no selected variant, leave the link
             *     names as they were
             *   - do not try to find variants for usernames
             */
            function findVariantLink( &$link, &$nt ) {
                    // check for user namespace
                    if(is_object($nt)){
                            $ns = $nt->getNamespace();
                            if($ns==NS_USER || $ns==NS_USER_TALK)
                                    return;
                    }

                    $oldlink=$link;
                    parent::findVariantLink($link,$nt);
                    if($this->getPreferredVariant()==$this->mMainLanguageCode)
                            $link=$oldlink;
            }

            /*
             * We want our external link captions to be converted in variants,
             * so we return the original text instead -{$text}-, except for URLs
             */
            function markNoConversion($text, $noParse=false) {
                    if($noParse || preg_match("/^https?:\/\/|ftp:\/\/|irc:\/\//",$text))
                            return parent::markNoConversion($text);
                    return $text;
            }

            /*
             * An ugly function wrapper for parsing Image titles
             * (to prevent image name conversion)
             */
            function autoConvert($text, $toVariant=false) {
                    global $wgTitle;
                    if(is_object($wgTitle) && $wgTitle->getNameSpace()==NS_IMAGE){
                            $imagename = $wgTitle->getNsText();
                            if(preg_match("/^$imagename:/",$text)) return $text;
                    }
                    return parent::autoConvert($text,$toVariant);
            }

    }

    class LanguageBe extends LanguageBe_of {
            function __construct() {
                    global $wgHooks;

                    parent::__construct();

                    // load Variants:
                    $variants = array('be-of', 'be-tr');
                    $variantfallbacks = array(
                            'be'    => 'be-of',
                            'be-of' => 'be',
                            'be-tr' => 'be',
                            );

                    $marker = array();//don't mess with these, leave them as they are
                    $flags = array(
                            'S' => 'S', 'пісьмо' => 'S', 'пісьмо' => 'S',
                            'W' => 'W', 'в. мова'   => 'W', 'в. мова'   => 'W', 'в. мова' => 'W', 'в. мова' => 'W'
                    );
                    $this->mConverter = new BeConverter($this, 'be', $variants, $variantfallbacks, $marker, $flags);
                    $wgHooks['ArticleSaveComplete'][] = $this->mConverter;
            }
    }
    ?>

Атрымана з «http://be-x-old.wikipedia.org../../../a/l/e/%D0%A3%D0%B4%D0%B7%D0%B5%D0%BB%D1%8C%D0%BD%D1%96%D0%BA%7EAlexander_Gouk_%D0%9A%D0%B0%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%80_files_LanguageBe.php_a7da.html»

##### Views

- Старонка ўдзельніка/ўдзельніцы
- Гутаркі
- Бягучая вэрсія

##### Пошук