Участник:CodeMonkBot/Автозамены

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
    # General replacements for Russian language v1.21
    'general-ru': {
        'regex': True,
        'exceptions': [
            u'\{\{NO_BOT_TEXT_PROCESSING}}',
            u'<math>',
            u'Ссылки-мнемоники для символов',   #Мнемоники в HTML
            u'== Подстрочные и надстрочные индексы ==',   #Википедия:Специальные символы
            u'\[\[Категория:Типографические знаки\]\]',
            u'\[\[Category:Типографические знаки\]\]',
            u'\[\[Категория:Знаки препинания\]\]',
            u'\[\[Category:Знаки препинания\]\]',
        ],
        'msg': {
               'ru':    u'[[Участник:CodeMonkBot/Автозамены|Автозамены v1.21]]',
              },
        'replacements': [
            #Замена устаревших и иностранных названий пространств имён
            (ur'(?i)\[\[Wikipedia:(.*?)\]\]',                   ur'[[Википедия:\1]]'),            
            (ur'(?i)\[\[Wikipedia talk:(.*?)\]\]',              ur'[[Обсуждение Википедии:\1]]'),
            (ur'(?i)\[\[Википедия обсуждение:(.*?)\]\]',        ur'[[Обсуждение Википедии:\1]]'),
            (ur'(?i)\[\[Help:(.*?)\]\]',                        ur'[[Справка:\1]]'),            
            (ur'(?i)\[\[Help talk:(.*?)\]\]',                   ur'[[Обсуждение справки:\1]]'),
            (ur'(?i)\[\[Справка обсуждение:(.*?)\]\]',          ur'[[Обсуждение справки:\1]]'),
            (ur'(?i)\[\[User:(.*?)\]\]',                        ur'[[Участник:\1]]'),
            (ur'(?i)\[\[User talk:(.*?)\]\]',                   ur'[[Обсуждение участника:\1]]'),
            (ur'(?i)\[\[Участник обсуждение:(.*?)\]\]',         ur'[[Обсуждение участника:\1]]'),
            (ur'(?i)\[\[Category:(.*?)\]\]',                    ur'[[Категория:\1]]'),
            (ur'(?i)\[\[:Category:(.*?)\]\]',                   ur'[[:Категория:\1]]'),
            (ur'(?i)\[\[Category talk:(.*?)\]\]',               ur'[[Обсуждение категории:\1]]'),
            (ur'(?i)\[\[Категория обсуждение:(.*?)\]\]',        ur'[[Обсуждение категории:\1]]'),
            (ur'(?i)\[\[Image:(.*?)\]\]',                       ur'[[Изображение:\1]]'),
            (ur'(?i)\[\[Image talk:(.*?)\]\]',                  ur'[[Обсуждение изображения:\1]]'),
            (ur'(?i)\[\[Изображение обсуждение:(.*?)\]\]',      ur'[[Обсуждение изображения:\1]]'),
            (ur'(?i)\[\[Template:(.*?)\]\]',                    ur'[[Шаблон:\1]]'),
            (ur'(?i)\[\[Template talk:(.*?)\]\]',               ur'[[Обсуждение шаблона:\1]]'),
            (ur'(?i)\[\[Шаблон обсуждение:(.*?)\]\]',           ur'[[Обсуждение шаблона:\1]]'),
            (ur'(?i)\[\[Talk:(.*?)\]\]',                        ur'[[Обсуждение:\1]]'),
            (ur'(?i)\[\[Media:(.*?)\]\]',                       ur'[[Медиа:\1]]'),
            (ur'(?i)\[\[Специальные:(.*?)\]\]',                 ur'[[Служебная:\1]]'),
            #Вставить неразрывный пробел в сокращения вроде "т. п."
            (ur'т\. ?н\.',                                      ur'т. н.'), #пробел U+00A0
            (ur'и т\. ?д\.',                                    ur'и т. д.'), #пробелы U+00A0
            (ur'и т\. ?п\.',                                    ur'и т. п.'), #пробелы U+00A0
            (ur'н\.э\.',                                        ur'н. э.'), #обычный пробел
            (ur'д\. ?н\. э\.',                                  ur'до н. э.'), #обычные пробелы
            (ur'т\. ?е\.',                                      ur'то есть'), #полная расшифровка
            (ur'т\. ?к\.',                                      ur'так как'), #полная расшифровка
            (ur'т\. ?ч\.',                                      ur'том числе'), #полная расшифровка
            (ur'Т\. ?е\.',                                      ur'То есть'), #полная расшифровка
            (ur'Т\. ?к\.',                                      ur'Так как'), #полная расшифровка
            #Дополнить сокращения точками
	    (ur'(?u)(\d) (тыс|млн|млрд|трлн)(\W)',              ur'\1 \2.\3'), #первый пробел U+00A0
            #Заменить дефис, двойной дефис и короткое тире на неразрывный пробел, правильное тире,
            #и пробел, если с обеих сторон стоят не цифры, и если это не внутри ссылки или шаблона
            (ur'(?i)([^0-9\s]) (-|--|—|—|–) ([^0-9\s])'+
             ur'(?!(.{,20}(\.jpg|\.jpeg|\.png|\.gif|\.svg|\.ogg))|[^\[\{]*[\]\}])',
                                                                ur'\1 — \3'), #первый пробел U+00A0
            #Привести специальные символы в корректный вид
	    (ur'(\.\.\.|…|&#133;)',                      ur'…'),
            (ur'(\+-|\+-|±)',                            ur'±'),
            (ur'€',                                        ur'€'),
            (ur'¥',                                         ur'¥'),
            (ur'£',                                       ur'£'),
            (ur'§',                                        ur'§'),
            (ur'(\(r\)|®)',                                 ur'®'),
            (ur'(\(tm\)|™)',                              ur'™'),
            (ur'(\(c\)|©)',                                ur'©'),
            (ur'°',                                         ur'°'),
            (ur'([а-яА-ЯёЁ])\'([а-яА-ЯёЁ])',                    ur'\1’\2'), #апостроф
            (ur'́',                                        ur'́'), #принятое сейчас ударение
            #Привести градусы в правильный вид
            (ur'(?um)([ =≈≠≤≥<>("«\'|]|^)([+±−\-]?\d+?(?:[.,]\d+?)?)'+
             ur'( [°^*]?[CС])(?=[ "»\').,;!?|]|$)',
                                                                ur'\1\2 °C'), #пробел U+00A0
            (ur'(?um)([ =≈≠≤≥<>("«\'|]|^)([+±−\-]?\d+?(?:[.,]\d+?)?)'+
             ur'( [°^*]?F)(?=[ "»\').,;|!?]|$)',       
                                                                ur'\1\2 °F'), #пробел U+00A0
            #Вставить неразрывные пробелы перед специальными символами
            (ur'([^%\w]\d+?(?:[.,]\d+?)?) ?([%‰])(?!-[А-Яа-яЁё])',
                                                                ur'\1 \2'),  #пробел U+00A0
            (ur'(\d) ([%‰])(?=-[А-Яа-яЁё])',                    ur'\1\2'),
            #Вставить неразрывные пробелы после специальных символов            
            (ur'(№|§) ?(\d)(?![^\[\{]*[\]\}])',                 ur'\1 \2'), #пробел U+00A0
            #Привести разрывы строк в соответствие с требованиями XHTML
            (ur'(?i)<br>',                                      ur'<br />'),
            (ur'(?i)<br ([^>/]+?)>',                            ur'<br \1 />'),
            (ur'(?i)<hr ([^>/]+?)>',                            ur'<hr \1 />'),
            #Обрамить названия разделов статьи пробелами
            (ur'(\r\n)(==+)([  \t\f\v]*)(.*?)([  \t\f\v]*)(==+)(\r\n)',
                                                                ur'\1\2 \4 \2\7'),
            #Вставить пробелы после символов списков (*, # и ещё :) в начале строки
            (ur'\r\n([*#:]+)([ \t\f\v]*)([^ \t\f\v\*#:])',      ur'\r\n\1 \3'),
            #Раскрыть запись типа 1952-67 в [[1952]]—[[1967]] (отключено)
            #(ur' \[?\[?([12]?[0-9])([0-9]{2})\]?\]?(-|–|—)([0-9]{2}) ',
            #                                                   ur' [[\1\2]]—[[\1\4]] '),
            #Раскрыть запись типа 1952-7 в [[1952]]—[[1957]] (отключено)
            #(ur' \[?\[?([12]?[0-9]{2})([0-9])\]?\]?(-|–|—)([0-9]) ',
            #                                                   ur' [[\1\2]]—[[\1\4]] '),
            #Вставить неразрывный пробел между годом и сокращениями "г." и "гг."
            (ur'(\[?\[?[12]?[0-9]{3}\]?\]?) ?(г\.|гг\.)(?![^\[\{]*[\]\}])',
                                                                ur'\1 \2'), #пробел U+00A0
            #Заменить дефис, дв. дефис, минус и короткое тире на правильное тире в диапазонах годов
            (ur'(?iu)([ \(\s])(\[?\[?[12]?[0-9]{3}\]?\]?)[  ]?(-|--|−|–|—) ?'+
             ur'(\[?\[?[12]?[0-9]{3}\]?\]?)(\W)(?!.{,20}(\.jpg|\.jpeg|\.png|\.gif|\.svg|\.ogg))',
                                                                ur'\1\2—\4\5'),
            #Перевести номера веков в римские цифры
            (ur'(?iu)(?<! через|спустя) 1( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' I \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 2( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' II \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 3( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' III \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 4( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' IV \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 5( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' V \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 6( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' VI \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 7( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' VII \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 8( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' VIII \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 9( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' IX \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 10( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' X \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 11( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XI \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 12( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XII \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 13( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XIII \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 14( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XIV \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 15( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XV \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 16( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XVI \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 17( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XVII \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 18( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XVIII \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 19( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XIX \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 20( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XX \2\5'), #пробел U+00A0
            (ur'(?iu)(?<! через|спустя) 21( | | )?(в\.|век(а|у|ом|е)?|столети(е|я|ю|ем|и))'+
             ur'(\W)(?!назад|спустя|тому назад|раньше|ранее|позже|позднее)',
                                                                ur' XXI \2\5'), #пробел U+00A0
            #Вставить неразрывный пробел между веком и сокращениями "в." и "вв."
            (ur'(\[?\[?[IVX]{1,5}\]?\]?) ?(в\.|вв\.)(?![^\[\{]*[\]\}])',
                                                                ur'\1 \2'), #пробел U+00A0
            #Заменить дефис, дв. дефис и короткое тире на правильное тире в диапазонах веков
            (ur'(?iu)([ \(\s])(\[?\[?[IVX]{1,5}\]?\]?)[  ]?(-|--|–|—) ?'+
             ur'(\[?\[?[IVX]{1,5}\]?\]?)(\W)(?!.{,20}(\.jpg|\.jpeg|\.png|\.gif|\.svg|\.ogg))',
                                                                ur'\1\2—\4\5'),
        ]
    }