Moduł:forma verbal
Moduł wykorzystywany przez szablon {{forma verbal}}.
local p = {
main = function(frame)
local pframe = frame:getParent()
local args = pframe.args
local czasownik, imieslow, osoba, liczba, czas, tryb = args.czasownik, args["imiesłów"], args.osoba, args.liczba, args.czas, args.tryb
local forma_zenska, liczba_mnoga, voseo, hiszpam, _3os = args["forma żeńska"], args["liczba mnoga"], args.voseo, args.hiszpam, args["3os"]
local title = mw.title.getCurrentTitle()
local ns = title:inNamespace(0)
local forma = ns and title.text or args.forma
local salida, pron = {}
if imieslow then
if (imieslow == "ger") or (imieslow == "gerundio") then
salida[#salida+1] = '<i>imiesłów czynny ([[gerundio#es|gerundio]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - imiesłów czynny]]' or '')
elseif (imieslow == "part") or (imieslow == "participio") then
if (forma_zenska == "tak") and (liczba_mnoga == "tak") then
salida[#salida+1] = '<i>forma żeńska liczby mnogiej imiesłowu biernego'
elseif forma_zenska == "tak" then
salida[#salida+1] = '<i>forma żeńska imiesłowu biernego'
elseif liczba_mnoga == "tak" then
salida[#salida+1] = '<i>liczba mnoga imiesłowu biernego'
else salida[#salida+1] = '<i>imiesłów bierny' end
salida[#salida+1] = ' ([[participio#es|participio]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - imiesłów bierny]]' or '')
else
salida[#salida+1] = '<b>błąd w parametrze "imiesłów", wybierz: "participio", "gerundio"</b>'..(ns
and '[[Kategoria:forma verbal/błędy]]' or '')
end
else
if hiszpam == "tak" then
salida[#salida+1] = '<i>([[:Kategoria:Regionalizmy hiszpańskie - Ameryka|Ameryka]], ' ..
'[[:Kategoria:Regionalizmy hiszpańskie - Wyspy Kanaryjskie|Kanary]] i ' ..
'[[:Kategoria:Regionalizmy hiszpańskie - Andaluzja|zach. Andaluzja]])</i> '
end
-- osoba
if (osoba == "1") or (osoba == "pierwsza") then
salida[#salida+1] = '<i>1.</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - pierwsza osoba]]' or '')
elseif (osoba == "2") or (osoba == "druga") then
salida[#salida+1] = '<i>2.</i>'..((ns and hiszpam ~= "tak")
and '[[Kategoria:Formy czasowników hiszpańskich - druga osoba]]' or '')
elseif (osoba == "3") or (osoba == "trzecia") then
salida[#salida+1] = '<i>3.</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - trzecia osoba]]' or '')
else
salida[#salida+1] = '<b>błąd w parametrze "osoba", wybierz: "pierwsza", "druga", "trzecia"</b>'..(ns
and '[[Kategoria:forma verbal/błędy]]' or '')
end
salida[#salida+1] = ' '..frame:expandTemplate{ title = 'os' }..' '
-- liczba
if (liczba == "lp") or (liczba == "pojedyncza") then
salida[#salida+1] = frame:expandTemplate{ title = 'lp' }
elseif (liczba == "lm") or (liczba == "mnoga") then
salida[#salida+1] = frame:expandTemplate{ title = 'lm' }
else
salida[#salida+1] = '<b> błąd w parametrze "liczba", wybierz: "pojedyncza", "mnoga"</b>'..(ns
and '[[Kategoria:forma verbal/błędy]]' or '')
end
-- zaimki
if ((osoba == "1") and (liczba == "lp")) or ((osoba == "1") and (liczba == "pojedyncza"))
or ((osoba == "pierwsza") and (liczba == "lp")) or ((osoba == "pierwsza") and (liczba == "pojedyncza")) then
salida[#salida+1] = '<i> ([[yo#es|yo]])</i>'
pron = '[[me#es|me]]'
elseif ((osoba == "2") and (liczba == "lp")) or ((osoba == "2") and (liczba == "pojedyncza"))
or ((osoba == "druga") and (liczba == "lp")) or ((osoba == "druga") and (liczba == "pojedyncza")) then
if voseo == "tak" then salida[#salida+1] = '<i> ([[vos#es|vos]])</i>'
else salida[#salida+1] = '<i> ([[tú#es|tú]])</i>' end
pron = '[[te#es|te]]'
elseif ((osoba == "3") and (liczba == "lp")) or ((osoba == "3") and (liczba == "pojedyncza"))
or ((osoba == "trzecia") and (liczba == "lp")) or ((osoba == "trzecia") and (liczba == "pojedyncza")) then
if _3os then -- forma trzecioosobowa
else
if (tryb == "imp") or (tryb == "imperativo") then salida[#salida+1] = '<i> ([[usted#es|usted]])</i>'
else salida[#salida+1] = '<i> ([[él#es|él]], [[ella#es|ella]], [[usted#es|usted]])</i>' end
end
pron = '[[se#es|se]]'
elseif ((osoba == "1") and (liczba == "lm")) or ((osoba == "1") and (liczba == "mnoga"))
or ((osoba == "pierwsza") and (liczba == "lm")) or ((osoba == "pierwsza") and (liczba == "mnoga")) then
salida[#salida+1] = '<i> ([[nosotros#es|nosotros]]/[[nosotras#es|as]])</i>'
pron = '[[nos#es|nos]]'
elseif ((osoba == "2") and (liczba == "lm")) or ((osoba == "2") and (liczba == "mnoga"))
or ((osoba == "druga") and (liczba == "lm")) or ((osoba == "druga") and (liczba == "mnoga")) then
if hiszpam == "tak" then
salida[#salida+1] = '<i> ([[ustedes#es|ustedes]])</i>'
pron = '[[se#es|se]]'
else
salida[#salida+1] = '<i> ([[vosotros#es|vosotros]]/[[vosotras#es|as]])</i>'
pron = '[[os#es|os]]'
end
elseif ((osoba == "3") and (liczba == "lm")) or ((osoba == "3") and (liczba == "mnoga"))
or ((osoba == "trzecia") and (liczba == "lm")) or ((osoba == "trzecia") and (liczba == "mnoga")) then
if _3os then -- forma trzecioosobowa
else
if (hiszpam == "tak") or (tryb == "imperativo") then salida[#salida+1] = '<i> ([[ustedes#es|ustedes]])</i>'
else salida[#salida+1] = '<i> ([[ellos#es|ellos]]/[[ellas#es|as]], [[ustedes#es|ustedes]])</i>' end
end
pron = '[[se#es|se]]'
end
-- tryby i czasy
if (tryb == "ind") or (tryb == "indicativo") then
if (czas == "pres") or (czas == "presente") then
salida[#salida+1] = '<i> czasu teraźniejszego ([[presente#es|presente]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - presente de indicativo]]' or '')
elseif (czas == "pi") or (czas == "pret. imperfecto") then
salida[#salida+1] = '<i> czasu przeszłego prostego ([[pretérito imperfecto#es|pretérito imperfecto]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - pretérito imperfecto de indicativo]]' or '')
elseif (czas == "pps") or (czas == "pret. perfecto simple") then
salida[#salida+1] = '<i> czasu przeszłego prostego ([[pretérito perfecto simple#es|pretérito perfecto simple]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - pretérito perfecto simple de indicativo]]' or '')
elseif (czas == "fut") or (czas == "futuro") then
salida[#salida+1] = '<i> czasu przyszłego prostego ([[futuro simple#es|futuro simple]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - futuro de indicativo]]' or '')
elseif (czas == "cond") or (czas == "condicional") then
salida[#salida+1] = '<i> czasu przypuszczającego prostego ([[condicional simple#es|condicional simple]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - condicional de indicativo]]' or '')
else
salida[#salida+1] = '<b> błąd w parametrze "czas", sprawdź nazewnictwo na [[Szablon:forma verbal|stronie szablonu]]</b>'..(ns
and '[[Kategoria:forma verbal/błędy]]' or '')
end
salida[#salida+1] = '<i> trybu oznajmującego ([[modo indicativo#es|indicativo]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - tryb oznajmujący]]' or '')
elseif (tryb == "sub") or (tryb == "subj") or (tryb == "subjuntivo") then
if (czas == "pres") or (czas == "presente") then
salida[#salida+1] = '<i> czasu teraźniejszego ([[presente#es|presente]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - presente de subjuntivo]]' or '')
elseif (czas == "pi1") or (czas == "pret. imperfecto I") then
salida[#salida+1] = '<i> czasu przeszłego prostego (I) ([[pretérito imperfecto#es|pretérito imperfecto]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - pretérito imperfecto de subjuntivo (-ra-)]]' or '')
elseif (czas == "pi2") or (czas == "pret. imperfecto II") then
salida[#salida+1] = '<i> czasu przeszłego prostego (II) ([[pretérito imperfecto#es|pretérito imperfecto]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - pretérito imperfecto de subjuntivo (-se-)]]' or '')
elseif (czas == "fut") or (czas == "futuro") then
salida[#salida+1] = '<i> czasu przyszłego prostego ([[futuro simple#es|futuro simple]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - futuro de subjuntivo]]' or '')
else
salida[#salida+1] = '<b> błąd w parametrze "czas", sprawdź nazewnictwo na [[Szablon:forma verbal|stronie szablonu]]</b>'..(ns
and '[[Kategoria:forma verbal/błędy]]' or '')
end
salida[#salida+1] = '<i> trybu łączącego ([[modo subjuntivo#es|subjuntivo]])</i>'..(ns
and '[[Kategoria:Formy czasowników hiszpańskich - tryb łączący]]' or '')
elseif (tryb == "imp") or (tryb == "imperativo") then
salida[#salida+1] = '<i> trybu rozkazującego ([[modo imperativo#es|imperativo]])</i>'
if ns and (not hiszpam) and ((osoba == "2") or (osoba == "druga")) then
salida[#salida+1] = '[[Kategoria:Formy czasowników hiszpańskich - tryb rozkazujący]]' end
else
salida[#salida+1] = '<b> błąd w parametrze "tryb", wybierz: "indicativo", "subjuntivo", "imperativo"</b>'..(ns
and '[[Kategoria:forma verbal/błędy]]' or '')
end
end
if czasownik then
salida[#salida+1] = '<i> od </i>[['..czasownik..'#es|'..czasownik..']]'
if string.sub(czasownik, -2, -1) == "se" then
if imieslow or (tryb == "imp") or (tryb == "imperativo") then -- imiesłów lub zbitka z zaimkiem enklitycznym
else salida[#salida+1] = ' – '..pron..' '..forma end
else
if (tryb == "imp") or (tryb == "imperativo") or (imieslow == "ger") or (imieslow == "gerundio") then
else
local title = mw.title.new(czasownik..'se', 0)
if title.exists then
local cnt = title:getContent()
local init = string.find(cnt, "{{język hiszpański", 1, true)
if init then
local section = string.sub(cnt, init, (string.find(cnt, "\n== ", init, true)))
if string.find(section, "\n''czasownik zwrotny''\n", 1, true) then
salida[#salida+1] = '([['..czasownik..'se#es|se]])'
end
end
end
end
end
else
salida[#salida+1] = '<b> brak parametru "czasownik"</b>'..(ns and '[[Kategoria:forma verbal/błędy]]' or '')
end
return table.concat(salida)
end }
return p