Автомобильные номера постсоветского пространства: различия между версиями

Материал из Энциклопедия автомобильных номеров мира
Перейти к навигации Перейти к поиску
(Новая страница: «Test»)
imported>Oles
(Новая страница: «Test»)
Строка 1: Строка 1:
--
В 1991 году вместо СССР появилось 15 независимых республик. Со временем в каждой из них появились свои форматы автомобильных номеров.
-- This module implements
{| class="wikitable"
-- {{Color contrast ratio}}
|-
-- {{Greater color contrast ratio}}
! № !! Название страны !! Первый собственный<br/>стандарт !! Текущий стандарт
-- {{ColorToLum}}
|-
-- {{RGBColorToLum}}
| 1 || Азербайджанская Республика || [[Автомобильные номера Азербайджана (стандарт 1991 года)|1991]] || [[Автомобильные номера Азербайджана|1993]]
--
|-
local p = {}
| 2 || Республика Армения || [[Автомобильные номера Армении (стандарт 1996 года)|1996]] || [[Автомобильные номера Армении|1996]]
local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' )
|-
| 3 || Республика Беларусь || [[Автомобильные номера Беларуси (стандарт 1992 года)|1992]] || [[Автомобильные номера Беларуси|2004]]
|-
| 4 || Грузия || [[Автомобильные номера Грузии (стандарт 1993 года)|1993]] || [[Автомобильные номера Грузии|2014]]
|-
| 5 || Республика Казахстан || [[Автомобильные номера Казахстана (стандарт 1993 года)|1993]] || [[Автомобильные номера Казахстана|2012]]
|-
| 6 || Кыргызская Республика || [[Автомобильные номера Киргизии (стандарт 1994 года)|1994]] || [[Автомобильные номера Киргизии|2016]]
|-
| 7 || Латвийская Республика || [[Автомобильные номера Латвии (стандарт 1992 года)|1992]] || [[Автомобильные номера Латвии|1992]]
|-
| 8 || Литовская Республика || [[Автомобильные номера Литвы (стандарт 1993 года)|1993]] || [[Автомобильные номера Литвы|1993]]
|-
| 9 || Республика Молдова || [[Автомобильные номера Молдавии (стандарт 1992 года)|1992]] || [[Автомобильные номера Молдавии|2015]]
|-
| 10 || Российская Федерация || [[Автомобильные номера России (стандарт 1993 года)|1993]] || [[Автомобильные номера России|1993]]
|-
| 11 || Республика Таджикистан || [[Автомобильные номера Таджикистана (стандарт 1996 года)|1996]] || [[Автомобильные номера Таджикистана|2009]]
|-
| 12 || Туркменистан || [[Автомобильные номера Туркмении (стандарт 1994 года)|1994]] || [[Автомобильные номера Туркмении|2009]]
|-
| 13 || Украина || [[Автомобильные номера Украины (стандарт 1992 года)|1992]] || [[Автомобильные номера Украины|2004]]
|-
| 14 || Республика Узбекистан || [[Автомобильные номера Узбекистана (стандарт 1998 года)|1998]] || [[Автомобильные номера Узбекистана|2008]]
|-
| 15 || Эстонская Республика || [[Автомобильные номера Эстонии (стандарт 1991 года)|1991]] || [[Автомобильные номера Эстонии|1991]]
|}


local function sRGB ( v )
== Шаблон ==
if (v <= 0.03928) then
Для статей о номерах стран постсоветского пространства рекомендуется использовать шаблон {{tl|Автомобильные номера постсоветского пространства}}
v = v / 12.92
{{Автомобильные номера постсоветского пространства|!}}
else
v = math.pow((v+0.055)/1.055, 2.4)
end
return v
end
 
local function rgbdec2lum( R, G, B )
if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then
return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255)
else
return ''
end
end
 
local function hsl2lum( h, s, l )
if ( 0 <= h and h < 360 and 0 <= s and s <= 1 and 0 <= l and l <= 1 ) then
local c = (1 - math.abs(2*l - 1))*s
local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) )
local m = l - c/2
 
local r, g, b = m, m, m
if( 0 <= h and h < 60 ) then
r = r + c
g = g + x
elseif( 60 <= h and h < 120 ) then
r = r + x
g = g + c
elseif( 120 <= h and h < 180 ) then
g = g + c
b = b + x
elseif( 180 <= h and h < 240 ) then
g = g + x
b = b + c
elseif( 240 <= h and h < 300 ) then
r = r + x
b = b + c
elseif( 300 <= h and h < 360 ) then
r = r + c
b = b + x
end
return rgbdec2lum(255*r, 255*g, 255*b)
else
return ''
end
end
 
local function color2lum( c )
 
if (c == nil) then
return ''
end
-- whitespace
c = c:match( '^%s*(.-)[%s;]*$' )
 
-- lowercase
c = c:lower()
 
-- first try to look it up
local L = HTMLcolor[c]
if (L ~= nil) then
return L
end
 
  -- convert from hsl
  if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100)
  end
 
  -- convert from rgb
  if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$')
return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B))
  end
 
  -- convert from rgb percent
  if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100)
  end
 
-- remove leading # (if there is one) and whitespace
c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$')
 
-- split into rgb
local cs = mw.text.split(c or '', '')
if( #cs == 6 ) then
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2])
local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4])
local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6])
 
return rgbdec2lum(R, G, B)
elseif ( #cs == 3 ) then
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1])
local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2])
local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3])
 
return rgbdec2lum(R, G, B)
end
 
-- failure, return blank
return ''
end
 
function p._greatercontrast(args)
local bias = tonumber(args['bias'] or '0') or 0
local v1 = color2lum(args[1] or '')
local c2 = args[2] or '#FFFFFF'
local v2 = color2lum(c2)
local c3 = args[3] or '#000000'
local v3 = color2lum(c3)
local ratio1 = 0;
local ratio2 = 0;
if (type(v1) == 'number' and type(v2) == 'number') then
ratio1 = (v2 + 0.05)/(v1 + 0.05)
ratio1 = (ratio1 < 1) and 1/ratio1 or ratio1
end
if (type(v1) == 'number' and type(v3) == 'number') then
ratio2 = (v3 + 0.05)/(v1 + 0.05)
ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2
end
return (ratio1 + bias > ratio2) and c2 or c3
end
 
function p._ratio(args)
local v1 = color2lum(args[1])
local v2 = color2lum(args[2])
if (type(v1) == 'number' and type(v2) == 'number') then
-- v1 should be the brighter of the two.
if v2 > v1 then
v1, v2 = v2, v1
end
return (v1 + 0.05)/(v2 + 0.05)
else
return args['error'] or '?'
end
end
 
function p._styleratio(args)
local style = (args[1] or ''):lower()
local bg, fg = 'white', 'black'
local lum_bg, lum_fg = 1, 0
 
if args[2] then
local lum = color2lum(args[2])
if lum ~= '' then bg, lum_bg = args[2], lum end
end
if args[3] then
local lum = color2lum(args[3])
if lum ~= '' then fg, lum_fg = args[3], lum end
end
 
local slist = mw.text.split(style or '', ';')
for k = 1,#slist do
s = slist[k]
local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' )
k = k or ''
v = v or ''
if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then
local lum = color2lum(v)
if( lum ~= '' ) then bg, lum_bg = v, lum end
elseif (k:match('^[%s]*(color)[%s]*$')) then
local lum = color2lum(v)
if( lum ~= '' ) then bg, lum_fg = v, lum end
end
end
if lum_bg > lum_fg then
return (lum_bg + 0.05)/(lum_fg + 0.05)
else
return (lum_fg + 0.05)/(lum_bg + 0.05)
end
end
 
function p.lum(frame)
return color2lum(frame.args[1] or frame:getParent().args[1])
end
 
function p.ratio(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._ratio(args)
end
 
function p.styleratio(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._styleratio(args)
end
 
function p.greatercontrast(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._greatercontrast(args)
end
 
return p

Версия от 15:25, 18 марта 2019

В 1991 году вместо СССР появилось 15 независимых республик. Со временем в каждой из них появились свои форматы автомобильных номеров.

Название страны Первый собственный
стандарт
Текущий стандарт
1 Азербайджанская Республика 1991 1993
2 Республика Армения 1996 1996
3 Республика Беларусь 1992 2004
4 Грузия 1993 2014
5 Республика Казахстан 1993 2012
6 Кыргызская Республика 1994 2016
7 Латвийская Республика 1992 1992
8 Литовская Республика 1993 1993
9 Республика Молдова 1992 2015
10 Российская Федерация 1993 1993
11 Республика Таджикистан 1996 2009
12 Туркменистан 1994 2009
13 Украина 1992 2004
14 Республика Узбекистан 1998 2008
15 Эстонская Республика 1991 1991

Шаблон

Для статей о номерах стран постсоветского пространства рекомендуется использовать шаблон {{Автомобильные номера постсоветского пространства}}