მოდული:MoscowMetro
ხაზი | NameByNum | ColorByNum | {{MOSMETRO icon}} |
---|---|---|---|
1 | სოკოლნიჩესკაია | EF161E | |
2 | ზამოსკვორეცკაია | 2DBE2C | |
3 | არბატსკო-პოკროვსკაია | 0078BE | |
4 | ფილიოვსკაია | 00BFFF | |
4А | ფილიოვსკაია | 00BFFF | |
5 | კოლცევაია | 8D5B2D | |
6 | კალუჟსკო-რიჟსკაია | ED9121 | |
7 | ტაგანსკო-კრასნოპრესნენსკაია | 800080 | |
8 | კალინინსკაია | FFD702 | |
8А | სოლნცევსკაია | FFD702 | |
9 | სერპუხოვსკო-ტიმირიაზევსკაია | 999999 | |
10 | ლიუბლინსკო-დმიტროვსკაია | 99CC00 | |
11 | დიდი წრიული | 82C0C0 | |
11А | კახოვსკაია | 82C0C0 | |
12 | ბუტოვსკაია | A1B3D4 | |
13 | მონორელსი | 9999FF | |
14 | მოსკოვის ცენტრალური წრე | FFFFFF | |
15 | ნეკრასოვსკაია | DE64A1 | |
16 | კომუნარსკაია | D8D8D8 | |
D1 | МЦД-1 | f6a600 | |
D2 | МЦД-2 | e74280 | |
D3 | МЦД-3 | e95b0c | |
D4 | МЦД-4 | 40b280 | |
D5 | МЦД-5 | 77b729 | |
0 | სხვა დანაჩენი ხაზები | 231F20 | — |
სოლნცევოს "8А" და კახოვსკაიას "11А" ხაზებისთვის ასოები იწერება კირილიცათი.
local i18n = {
NAMES = {
['1'] = 'სოკოლნიჩესკაია',
['2'] = 'ზამოსკვორეცკაია',
['3'] = 'არბატსკო-პოკროვსკაია',
['4'] = 'ფილიოვსკაია',
['4А'] = 'ფილიოვსკაია',
['5'] = 'კოლცევაია',
['6'] = 'კალუჟსკო-რიჟსკაია',
['7'] = 'ტაგანსკო-კრასნოპრესნენსკაია',
['8'] = 'კალინინსკაია',
['8А'] = 'სოლნცევსკაია',
['9'] = 'სერპუხოვსკო-ტიმირიაზევსკაია',
['10'] = 'ლიუბლინსკო-დმიტროვსკაია',
['11']= 'დიდი წრიული',
['11А'] = 'კახოვსკაია',
['12'] = 'ბუტოვსკაია',
['13'] = 'მონორელსი',
['14'] = 'მოსკოვის ცენტრალური წრე',
['15']= 'ნეკრასოვსკაია',
['16']= 'კომუნარსკაია',
['D1'] = 'МЦД-1',
['D2'] = 'МЦД-2',
['D3'] = 'МЦД-3',
['D4'] = 'МЦД-4',
['D5'] = 'МЦД-5'
},
html = {
icon_fmt = '<span title="%s">[[File:Moskwa Metro Line %s.svg|%spx|%s|link=%s]]</span>', -- parameters: alt, linenum, icon size, alt, link
text_fmt = '[[%s|<span style="display:inline-block;line-height:%spx;height:%spx;font-size:%spx;font-style:normal;font-weight:bold;background:#%s;color:white;white-space:nowrap;text-align:center" title="%s"> %s </span>]]', --[[
parameters: link, icon size, icon size, icon size - 3, color, alt, linenum ]]
small = '<span style="font-size:85%%">%s</span>',
style = '<span style="%s">%s</span>',
sortkey = '<span style="display:none" class="sortkey">%s</span>',
},
text = {
transfer = 'გადასაჯდომი სადგურზე %s %s',
CPIC = 'კროს-ბაქნური გადასაჯდომი სადგურზე %s %s',
dab = ' (მოსკოვის მეტრო)',
},
default = {
icon_size = '15'
}
}
i18n.NAMES['КалЛ'] = i18n.NAMES['8']; i18n.NAMES['КСЛ'] = i18n.NAMES['8'];
i18n.NAMES['СолЛ'] = i18n.NAMES['8А'];
i18n.NAMES['ТПК'] = i18n.NAMES['11']; i18n.NAMES['БКЛ'] = i18n.NAMES['11'];
i18n.NAMES['L1'] = i18n.NAMES['12']; i18n.NAMES['Л1'] = i18n.NAMES['12']; --თარგის წინა ვერსიებთან თავსებადობისთვის
i18n.NAMES['МОЖД'] = i18n.NAMES['14']; i18n.NAMES['МЦК'] = i18n.NAMES['14'];
i18n.NAMES['КожЛ'] = i18n.NAMES['15']; i18n.NAMES['НЛ'] = i18n.NAMES['15'];
i18n.NAMES['КомЛ'] = i18n.NAMES['16'];
i18n.line = function(num) -- ხაზის სახელი სახელობით ბრუნვაში
if num == '13' then return 'მოსკოვის მონორელსი'
elseif num == '14' then return 'მოსკოვის ცენტრალური წრე'
elseif num == 'D1' then return 'МЦД-1'
elseif num == 'D2' then return 'МЦД-2'
elseif num == 'D3' then return 'МЦД-3'
elseif num == 'D4' then return 'МЦД-4'
elseif num == 'D5' then return 'МЦД-5'
else return i18n.NAMES[num] .. ' (მოსკოვის მეტრო)'
end
end
i18n.link = function(num) -- ბმული ხაზის გვერდზე
if num == '5' then return i18n.NAMES[num] .. ' (მოსკოვის მეტრო)'
else return i18n.line(num)
end
end
i18n.ofLine = function(num) -- სადგურის სახელი მიცემით ბრუნვაში ("გადასაჯდომი სადგურზე ... ... ხაზზე")
if num == 'ТПК' or num == '11' then return 'დიდი წრიულის'
elseif num == '13' then return 'მოსკოვის მონორელსის'
elseif num == '14' then return 'მოსკოვის ცენტრალური წრის'
elseif num == 'D1' then return 'МЦД-1'
elseif num == 'D2' then return 'МЦД-2'
elseif num == 'D3' then return 'МЦД-3'
elseif num == 'D4' then return 'МЦД-4'
elseif num == 'D5' then return 'МЦД-5'
else return mw.ustring.sub(i18n.NAMES[num], 1, -3) .. 'ხაზის'
end
end
local COLORS = { -- ფერების მნიშვნელობა შეცვალეთ მხოლოდ ოფიციალური სქემის შესაბამისად
['1'] = 'EF161E', -- სოკოლნიჩესკაია
['2'] = '2DBE2C', -- ზამოსკვორეცკაია
['3'] = '0078BE', -- არბატსკო-პოკროვსკაია
['4'] = '00BFFF', -- ფილიოვსკაია
['5'] = '8D5B2D', -- კოლცევაია
['6'] = 'ED9121', -- კალუჟსკო-რიჟსკაია
['7'] = '800080', -- ტაგანსკო-კრასნოპრესნენსკაია
['8'] = 'FFD702', -- კალინინსკაია
['8А'] = 'FFD702', -- სოლნცევსკაია
['9'] = '999999', -- სერპუხოვსკო-ტიმირიაზევსკაია
['10'] = '99CC00', -- ლიუბლინსკო-დმიტროვსკაია
['11'] = '82C0C0', -- დიდი წრიული
['11А'] = '82C0C0', -- კახოვსკაია
['12'] = 'A1B3D4', -- ბუტოვსკაია
['13'] = '9999FF', -- მოსკოვის მონორელსი
['14'] = 'FFFFFF', -- მოსკოვის ცენტრალური წრე
['15'] = 'DE64A1', -- ნეკრასოვსკაია
['16'] = 'D8D8D8', -- კომუნარსკაია (დროებით)
['D1'] = 'f6a600', -- МЦД-1
['D2'] = 'e74280', -- МЦД-2
['D3'] = 'e95b0c', -- МЦД-3
['D4'] = '40b280', -- МЦД-4
['D5'] = '77b729', -- МЦД-5
['0'] = '231F20', -- ყველა სხვა დანარჩენი დაგეგმილი ხაზისთვის
}
COLORS['КСЛ'] = COLORS['8']; COLORS['КалЛ'] = COLORS['8'];
COLORS['СолЛ'] = COLORS['8А']; COLORS['სოლნცევსკაია'] = COLORS['8А'];
COLORS['ТПК'] = COLORS['11']; COLORS['БКЛ'] = COLORS['11'];
COLORS['L1'] = COLORS['12']; COLORS['Л1'] = COLORS['12'];
COLORS['М1'] = COLORS['13'];
COLORS['МОЖД'] = COLORS['14']; COLORS['МЦК'] = COLORS['14'];
COLORS['КожЛ'] = COLORS['15']; COLORS['კოჟუხოვსკაია'] = COLORS['КожЛ']; COLORS['НЛ'] = COLORS['15'];
COLORS['КомЛ'] = COLORS['16'];
function IconByNum(num)
if num == 'КожЛ' then return nil
elseif num == 'КСЛ' or num == 'КалЛ' then return '8'
elseif num == 'СолЛ' then return '8А'
elseif num == 'ТПК' then return '11'
elseif num == 'М1' then return '13'
elseif num == 'МОЖД' then return '14'
else return num
end
end
local p = {}
function p.ColorByNum(frame)
return COLORS[mw.text.trim(frame.args[1] or '')] or '[[კატეგორია:მოსკოვის მეტროს მოდულის არასწორი პარამეტრებით]]'
end
function p.NameByNum(frame)
return i18n.NAMES[mw.text.trim(frame.args[1] or '')] or '[[კატეგორია:მოსკოვის მეტროს მოდულის არასწორი პარამეტრებით]]'
end
function p.interchange(frame)
local num, station, station_dabbed, CPIC = frame.args['line'] or '', frame.args['station'] or '', frame.args['station_dabbed'] or '', frame.args['CPIC'] or '' ~= ''
local icon_size, alt, text, small, style = frame.args['size'] or '', frame.args['alt'] or '', frame.args['text'] or '', frame.args['small'] or '', frame.args['style'] or ''
local icon, station_stripped
if not i18n.NAMES[num] then return '[[კატეგორია:მოსკოვის მეტროს მოდულის არასწორი პარამეტრებით]]' end
local iconN = IconByNum(num)
if icon_size == '' then
icon_size = i18n.default.icon_size
elseif mw.ustring.sub(icon_size, -2 ) == 'px' then
icon_size = mw.ustring.sub(icon_size, 1, -3 )
end
if alt == '' then
if station ~= '' then
alt = mw.ustring.format(i18n.text[CPIC ~= '' and 'CPIC' or 'transfer'], station, i18n.ofLine(num))
elseif station_dabbed ~= '' then
station_stripped = mw.ustring.match(station_dabbed, '(.-) %(') or station_dabbed
alt = mw.ustring.format(i18n.text[CPIC ~= '' and 'CPIC' or 'transfer'], station_stripped, i18n.ofLine(num))
else
alt = i18n.line(num)
end
elseif station_dabbed ~= '' then
station_stripped = mw.ustring.match(station_dabbed, '(.-) %(') or station_dabbed
end
local link = text == '' and (station_dabbed ~= '' and station_dabbed or (station ~= '' and station .. i18n.text.dab or i18n.link(num))) or i18n.link(num)
if iconN then
icon = mw.ustring.format(i18n.html.sortkey, mw.ustring.len(iconN) == 2 and iconN or '0' .. iconN) .. mw.ustring.format(i18n.html.icon_fmt, alt, iconN, icon_size, alt, link)
else
icon = mw.ustring.format(i18n.html.text_fmt, link, icon_size, icon_size, tonumber(icon_size) - 3, COLORS[num], alt, num)
end
if text == '' then return icon end
local result = ''
if station_dabbed ~= '' then
result = '[[' .. station_dabbed .. '|' .. (station ~= '' and station or station_stripped) .. ']]'
elseif station ~= '' then
result = '[[' .. station .. i18n.text.dab .. '|' .. station .. ']]'
elseif link == mw.title.getCurrentTitle().prefixedText then
result = style ~= '' and mw.ustring.format(i18n.html.style, style, text == '2' and i18n.NAMES[num] or i18n.line(num)) or (text == '2' and i18n.NAMES[num] or i18n.line(num))
elseif text == '2' and num ~= 'ТПК' or style ~= '' or num == '5' then
result = '[[' .. link .. '|' .. (style ~= '' and mw.ustring.format(i18n.html.style, style, text == '2' and i18n.NAMES[num] or i18n.line(num)) or (text == '2' and i18n.NAMES[num] or i18n.line(num))) .. ']]'
else
result = '[[' .. link .. ']]'
end
if small ~= '' then result = mw.ustring.format(i18n.html.small, result) end
return (not iconN and station == '' and station_dabbed == '' and '' or icon .. ' ') .. result
end
return p