Moduuli:sanarivi/he

Wikisanakirjasta

Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:sanarivi/he/ohje

local p = {}

local luokat    = require("Moduuli:luokittelu")
local apu       = require("Moduuli:Mallinetyokalut")
local paramtext = require("Moduuli:ParametrisoituTeksti")
local srlib     = require("Moduuli:LibSanarivi")
local ryhma, var, luettelo = paramtext.ryhma, paramtext.muuttuja, paramtext.luettelo

function p.adjektiivi(frame, luokat)
	local muotoilu = paramtext:new()
	local args     = frame.args
	local args2    = apu.numeroidut_parametrit(frame.args, { "mon", "monvok", "monlat", "f", "fvok", "flat", "fmon", "fmonvok", "fmonlat" })
	local PAGENAME = apu.ensimmainen_ei_tyhja{ frame.args.vok, frame.args[2], mw.title.getCurrentTitle().text }	
	local lang = "he"
	local kirj = "Hebr"
	local suku_txt = mw.getCurrentFrame():expandTemplate{ ['title'] = 'suku-teksti', ['args'] = { args.suku } }
	local suku_mon_txt, suku_f_txt, suku_fmon_txt

	if args2.mon then
		suku_mon_txt = mw.getCurrentFrame():expandTemplate{ ['title'] = 'suku-teksti', ['args'] = { args.suku } }
	end
	
	if args2.f then
		suku_f_txt = mw.getCurrentFrame():expandTemplate{ ['title'] = 'suku-teksti', ['args'] = { "f" } }
	end

	if args2.fmon then
		suku_fmon_txt = mw.getCurrentFrame():expandTemplate{ ['title'] = 'suku-teksti', ['args'] = { "f" } }
	end
	
	
	-- Lisäparametrit kielilinkeille.
  	lp_f  = apu.map(function (_)  return { ["elem"]   = "b", 
    								       ["kuvaus"] = "tm/adj-y-fem-lat" } end, args2.f  or {}) 	
    								  	
	lp_mon = apu.map(function (_) return { ["elem"]   = "b", 
    									    ["kuvaus"] = "tm/adj-mon-mask-lat" } end, args2.mon or {})	
    									     
	lp_fmon = apu.map(function (_) return { ["elem"]   = "b", 
    									    ["kuvaus"] = "tm/adj-mon-fem-lat" } end, args2.fmon or {})									        
	
	
	muotoilu:prosessoi(
		ryhma("",
			srlib.hakusana(PAGENAME, lang, kirj), " ",
   			suku_txt, " ",
   			ryhma("(", srlib.latmerkkaus(args.lat), ")"), ", ",
   			srlib.linkkiluettelo(lang, args2.f,  args2.fvok,  args2.flat, lp_f), " ",
   			suku_f_txt, " ",
			ryhma("(''monikko'' ", 
				ryhma("", srlib.linkkiluettelo(lang, args2.mon,  args2.monvok,  args2.monlat,  lp_mon),  " ", suku_mon_txt, ""), ", ",
				ryhma("", srlib.linkkiluettelo(lang, args2.fmon, args2.fmonvok, args2.fmonlat, lp_fmon), " ", suku_fmon_txt,    ""), ")"), ""))

	return tostring(muotoilu), luokat	
end

function p.substantiivi (frame, luokat)
	local muotoilu = paramtext:new()
	local args     = frame.args
	local args2    = apu.numeroidut_parametrit(frame.args, { "mon",    "monvok",    "monlat", 
															 "du",     "duvok",     "dulat", 
															 "kon",    "konvok",    "konlat", 
															 "monkon", "monkonvok", "monkonlat" })
	local PAGENAME = apu.ensimmainen_ei_tyhja{ frame.args.vok, frame.args[2], mw.title.getCurrentTitle().text }	
	local lang = "he"
	local kirj = "Hebr"

	-- Lisäparametrit kielilinkeille.
	lp_mon = apu.map(function (mon) return { ["elem"]   = "b", 
    									     ["kuvaus"] = "tm/subs-mon-lat"    } end, args2.mon or {})
    									        
  	lp_du  = apu.map(function (du)  return { ["elem"]   = "b", 
    								  		 ["kuvaus"] = "tm/subs-du-lat"  } end, args2.du  or {})  									        
	
	muotoilu:prosessoi(ryhma("",
   		srlib.hakusana(PAGENAME, lang, kirj), " ",
   		srlib.sukuteksti(args.suku), " ",
   		ryhma("(", srlib.latmerkkaus(args.lat), ")"), " ",
   		ryhma("(",
   			srlib.monikkoluettelo(lang, args2.mon, args2.monvok, args2.monlat, lp_mon), "; ",
   			ryhma("''duaali'' ",  srlib.linkkiluettelo(lang, args2.du,  args2.duvok,  args2.dulat, lp_du),  ""), "; ",
   			ryhma("''konstrukti'' ",  srlib.linkkiluettelo(lang, args2.kon,  args2.konvok,  args2.konlat, nil), ""), ", ",
   			ryhma("''monikon konstrukti'' ",  srlib.linkkiluettelo(lang, args2.monkon,  args2.monkonvok,  args2.monkonlat, nil), ""), ")"), ""))


	return tostring(muotoilu), luokat	
end

return p