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

Материал из Энциклопедия автомобильных номеров мира
Перейти к навигации Перейти к поиску
м (робот удалил: no:Mal:DJI)
imported>Oles
(Новая страница: «Test»)
 
(не показаны 4 промежуточные версии 2 участников)
Строка 1: Строка 1:
--[[
{{к-у}}{{Машинный перевод}}{{Номер
Основные функции, касающиеся русского языка
|название страны            = Демократическая Республика Восточный Тимор
]]
|страна                    = Восточный Тимор
local M={}
|изображение                = СХІДНИЙ ТИМОР НОМЕР 1.gif
function M.obo(phr) -- выбирает предлог о, об или обо к фразе, в начале кот. м. б. пунктуация
|название                  = Автомобильные номера Восточного Тимора
|стандарт                  =
|дата ввода стандарта      = 2002
|дата упразднения стандарта =
|IVR код                    =
|материал                  = Алюминий
|ширина номера              =
|высота номера              =
|цвет шрифта                = {{Шрифт|Восточный Тимор|ЧШ|БШ}}
|цвет фона                  = {{Фон|Восточный Тимор|БФ|ЧФ|КФ}}
}}


    local w = mw.ustring.match(phr,"[%p%s%c]*(.-)[%p%s%c]") or mw.ustring.match(phr,"[%p%s%c]*(.-)$")
<p>'''Автомобильные номера Восточного Тимора''' — металлическая пластина, которая устанавливается на транспортное средство при его регистрации.</p><p>Номерные знаки Восточного Тимора по своему дизайну аналогичны [[Автомобильные номера Австралии|номерным знакам Австралии]], а также используют аналогичные шрифты.</p>
    if not w then return nil end
== Примечания ==
    if string.find(" всей всём всех мне ",' '..mw.ustring.lower(w)..' ',1,true) then return 'обо' end
{{примечания}}
    local ws=mw.ustring.sub(w,1,2)
    if ws==mw.ustring.upper(ws) then -- abbrev
        if mw.ustring.match(ws,"^[ЙУНФЫАРОЛЭСМИRYUIOASFHLXNMÖÜÄΑΕΟΥΩ]") then return 'об' else return 'о' end
    elseif mw.ustring.match(mw.ustring.upper(w),"^[АОЭИУЫAOIEÖÜÄΑΕΟΥΩ]") then
        return 'об'
    else
        return 'о'
    end
end


local cons='бвгджзйклмнпрстфхцчшщ'; -- all consonants
{{Автомобильные номера Азии|Восточный Тимор}}[[Категория:Машинный перевод]]
local cons7='кгхчжшщ'; -- consonants requiring -и
local adjends={['ой']='ые',['ый']='ые',['ий']='ие',['ое']='ые',['ая']='ые',['яя']='ие',['ое']='ые',['ее']='ие'};
local specpl={
    ["человек"]="люди",
    ['мать']='матери',
    ['дочь']='дочери',
    ['брат']='братья',
    ['сын']='сыновья',
    ['дерево']='деревья',
    ['чудо']='чудеса',
    ['ребёнок']='дети',
    ['дитя']='дети',
    ['край'] = 'края',
    ['перо']='перья',
    ['знамя']='знамёна',
    ['грузин']='грузины',
    ['татарин']='татары',
    ['болгарин']='болгары',
    ['боярин']='бояре',
    ['цыган']='цыгане',
    ['друг']='друзья',
    ['веко']='веки',
    ['день']='дни',
    ['век']='века',
    ['директор']='директора',
    ['доктор']='доктора',
    ['инспектор']='инспектора',
    ['город']='города',
    ['вес']='веса',
    ['поезд']='поезда',
    ['звезда']='звёзды',
    ['список']='списки',
    ['церковь']='церкви'
}; -- table of some common special plural cases
function M.pl(p) -- множественное число, 2-й аргумент 0 (нескл.), 1, 2, 3 или a (adjective - прилагательное)
--Поддержка словосочетаний планируется потом
    local word = p.args[1];
    if specpl[word] then return specpl[word] end;
    local d=p.args[2];
    if d==nil then d=M.guessdecl(p) end;
    if d=='0' then return word
    elseif d=='a' then
        if mw.ustring.match(word,'['..cons7..']..$') then
            return mw.ustring.sub(word,1,-3)..'ие'
        else return mw.ustring.sub(word,1,-3)..adjends[mw.ustring.sub(word,-2)]
        end
elseif d=='1' then
    if  mw.ustring.sub(word,-1)=='я' or mw.ustring.match(word,'['..cons7..']а$')
    then return mw.ustring.sub(word,1,-2)..'и'
    else return mw.ustring.sub(word,1,-2)..'ы' end
elseif d=='2' then
    if mw.ustring.match(word,'о$') then return mw.ustring.sub(word,1,-2)..'а'
    elseif mw.ustring.match(word,'е$') then return mw.ustring.sub(word,1,-2)..'я'
    elseif mw.ustring.match(word,'[ьй]$') then return mw.ustring.sub(word,1,-2)..'и'
    elseif mw.ustring.match(word,'онок$') then return mw.ustring.sub(word,1,-5)..'ата'
    elseif mw.ustring.match(word,'ёнок$') then return mw.ustring.sub(word,1,-5)..'ята'
    elseif mw.ustring.match(word,'анин$') then return mw.ustring.sub(word,1,-5)..'ане'
    elseif mw.ustring.match(word,'янин$') then return mw.ustring.sub(word,1,-5)..'яне'
    elseif mw.ustring.match(word,'ец$') and not mw.ustring.match(word,'['..cons7..']['..cons7..']ец$') then -- !!неправильно для этнохоронимов на -ец типа "ньюйоркцы"
        if mw.ustring.match(word,'лец$') then return mw.ustring.sub(word,1,-3)..'ьцы'
            elseif mw.ustring.match(word,'[аоуыэяёюие]ец$') then return mw.ustring.sub(word,1,-3)..'ьцы'
            else return mw.ustring.sub(word,1,-3)..'цы'
        end
    elseif mw.ustring.match(word,'['..cons7..']$') then return word..'и'
    else return word..'ы'
    end
elseif d=='3' then
    if mw.ustring.match(word,'мя$') then return mw.ustring.sub(word,1,-3)..'ена'
        else return mw.ustring.sub(word,1,-2)..'и'
    end
    else return "<span class=error>Wrong declesion '"..d.."' in RuGrammar::pl()</span>"
    end
end
function M.guessdecl(p) -- угадывает тип склонения
    local word=p.args[1];
    if mw.ustring.match(word,'['..cons..'][оыи]й$')
      or mw.ustring.match(word,'['..cons..'][ая]я$')
      or mw.ustring.match(word,'['..cons..'][ое]е$')
    then return 'a' --sometimes wrong
    elseif mw.ustring.match(word,'['..cons..'][оеь]?$') then return '2' --but mb 3, can't guess w/o dict
    elseif mw.ustring.match(word,'['..cons..'][ая]$') then
        if mw.ustring.match(word,'[^'..cons..']мя$') then return '3' else return '1' end
    else return '0'
    end
end
function M.locative(p) -- Возможно, будет когда-то заменено на функционал mw.language('ru'):grammar(), которого пока не хватает
local word=p.args[1];
local locend={['а']='е', ['я']='е', ['й']='е', ['ы']="ах", ['ь']='и'}; -- the last is disputed, most Russian cities on -ь are 3 declesion but some foreign a 2 and thus -е
local ec=mw.ustring.sub(word,-1);
if mw.ustring.match(word,'ия$') then return mw.ustring.sub(word,1,-2)..'и'
elseif mw.ustring.match(word,'['..cons..']ль$') or mw.ustring.sub(word,-4)=='поль' then return mw.ustring.sub(word,1,-2)..'е'
elseif locend[ec] then return mw.ustring.sub(word,1,-2)..locend[ec]
elseif ec=='я' then return mw.ustring.sub(word,1,-2)..'е'
elseif mw.ustring.match(ec,'['..cons..']') then return word..'е'
elseif ec=='о' then
    if mw.ustring.match(word,'[оеё]во$') then return mw.ustring.sub(word,1,-2)..'е'
        else return word
    end
else return word end
end;
return M

Текущая версия от 14:20, 11 мая 2020

Автомобильные номера Восточного Тимора
Восточный Тимор Демократическая Республика Восточный Тимор
Фотография
Страна: Восточный Тимор Восточный Тимор
Дата ввода
стандарта:
2002
Материал: Алюминий
Цвет фона:

белый, чёрный,

красный
Цвет шрифта:

чёрный,

белый

Автомобильные номера Восточного Тимора — металлическая пластина, которая устанавливается на транспортное средство при его регистрации.

Номерные знаки Восточного Тимора по своему дизайну аналогичны номерным знакам Австралии, а также используют аналогичные шрифты.

Примечания