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

Материал из Энциклопедия автомобильных номеров мира
Перейти к навигации Перейти к поиску
(Новая страница: «Test»)
imported>Admin
Нет описания правки
 
(не показано 5 промежуточных версий 3 участников)
Строка 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

Текущая версия от 13:18, 6 апреля 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

Шаблон

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