Wiktionary
hrwiktionary
https://hr.wiktionary.org/wiki/Glavna_stranica
MediaWiki 1.39.0-wmf.25
case-sensitive
Mediji
Posebno
Razgovor
Suradnik
Razgovor sa suradnikom
Wječnik
Razgovor Wječnik
Datoteka
Razgovor o datoteci
MediaWiki
MediaWiki razgovor
Predložak
Razgovor o predlošku
Pomoć
Razgovor o pomoći
Kategorija
Razgovor o kategoriji
TimedText
TimedText talk
Modul
Razgovor o modulu
Gadget
Gadget talk
Gadget definition
Gadget definition talk
Modul:WDLex
828
44296
267714
267695
2022-08-22T21:02:13Z
Ivi104
4549
+definicije prevedenog smisla
Scribunto
text/plain
local p = {}
local vrste_rijeci = {
-- promjenjive
["Q1084"] = "imenica",
["Q36224"] = "zamjenica",
["Q34698"] = "pridjev",
["Q63116"] = "broj",
["Q24905"] = "glagol",
-- nepromjenjive
["Q380057"] = "prilog",
["Q4833830"] = "prijedlog",
["Q36484"] = "veznik",
["Q184943"] = "čestica",
["Q83034"] = "usklik"
}
local im_broj = {
["Q110786"] = "jednina",
["Q146786"] = "množina"
}
local im_padez = {
["Q131105"] = "nominativ",
["Q146233"] = "genitiv",
["Q145599"] = "dativ",
["Q146078"] = "akuzativ",
["Q185077"] = "vokativ",
["Q202142"] = "lokativ",
["Q192997"] = "instrumental"
}
local im_broj_rev = {
["j"] = "Q110786",
["m"] = "Q146786"
}
local im_padez_rev = {
["n"] = "Q131105",
["g"] = "Q146233",
["d"] = "Q145599",
["a"] = "Q146078",
["v"] = "Q185077",
["l"] = "Q202142",
["i"] = "Q192997"
}
local function getEntity()
local frame = mw.getCurrentFrame()
return frame, mw.wikibase.getEntity(frame.args['1'])
end
local function has_value (tab, val)
for index, value in pairs(tab) do
-- We grab the first index of our sub-table instead
if value == val then
return true
end
end
return false
end
function p.getLemmas(lexeme)
-- { {ključ, hr} }
local frame, entity = getEntity(lexeme)
local jezici = mw.language.fetchLanguageNames ('hr', 'all');
local rijec = entity:getLemmas()[1][1]
local jezik = entity:getLemmas()[1][2]
local retval = ''
if (jezici[jezik] == nil) then
retval = retval .. rijec .. ' (nepoznati jezik kratice '.. jezik .. ') - ' .. vrste_rijeci[entity:getLexicalCategory()]
else
retval = retval .. rijec .. ' ('.. jezici[jezik] ..' jezik) - ' .. vrste_rijeci[entity:getLexicalCategory()]
end
return retval
end
function p.define(frame, lexeme)
return 'define'
end
function p.deklinacije()
local frame, entity = getEntity(lexeme)
local forms = entity:getForms()
retval = ''
for k, v in pairs(forms) do -- 1 do 14, tablica
-- mw.logObject(v)
local formFeatures = ''
local formValues = ''
for _, gv in pairs(v.grammaticalFeatures) do
if #formFeatures == 0 then
formFeatures = formFeatures .. mw.wikibase.getLabel(gv)
else
formFeatures = formFeatures .. ', ' ..mw.wikibase.getLabel(gv)
end
end
local lang = ''
for k, v in pairs(v.representations) do
lang = k
end
if #formValues == 0 then
formValues = formValues .. v.representations[lang].value
else
formValues = formValues .. ', ' ..v.representations[lang].value
end
retval = retval .. formFeatures .. ': ' .. formValues .. '<br>'
end
return retval
end
-- old
function p.deklinacija()
local frame, entity = getEntity(lexeme)
-- local frame = mw.getCurrentFrame()
padez = frame.args[2]:lower():sub(1, 1)
broj = frame.args[3]:lower():sub(1, 1)
if (vrste_rijeci[entity:getLexicalCategory()]) == "imenica" then
local jezik = entity:getLemmas()[1][2]
local forms = entity:getForms()
retval = ''
for k, v in pairs(forms) do -- 1 do 14, tablica
-- mw.logObject(v.grammaticalFeatures)
-- mw.log(has_value(v.grammaticalFeatures, im_broj_rev[broj]), has_value(v.grammaticalFeatures, im_padez_rev[padez]))
if has_value(v.grammaticalFeatures, im_broj_rev[broj]) and has_value(v.grammaticalFeatures, im_padez_rev[padez]) then
if #retval == 0 then
retval = retval .. v.representations[jezik].value
else
retval = retval .. ' / ' ..v.representations[jezik].value
end
end
end
return retval
else
return 'Ostale vrste riječi još nisu podržane'
end
end
function p.prijevodi()
local frame, entity = getEntity(lexeme)
local senses = entity:getSenses()
local jezici = mw.language.fetchLanguageNames ('hr', 'all');
local stupci = 3
retval = ''
-- P5137 item for this sense
for _, v in pairs(senses) do
local prijevodi = {}
if v.claims.P5137 ~= nil then
for _, pv in pairs(v.claims.P5137) do
--mw.logObject(pv.id)
local lex, sense = string.match(pv.id, "(L[0-9]*)-(S[0-9]*).*")
retval = retval ..'(' ..lex .. '-' .. sense ..') '.. (v:getGloss('hr') or v:getGloss('en')) .. '<br />'
local propertyValue = pv.mainsnak.datavalue.value.id
local propValueEntity = mw.wikibase.getEntity(propertyValue)
-- kratica jezika, label, alias
for lang, val in pairs(propValueEntity.labels) do
prijevodi[lang] = val.value
end
for lang, val in pairs(propValueEntity.aliases) do
if prijevodi[lang] == nil then
prijevodi[lang] = val[1].value
else
prijevodi[lang] = prijevodi[lang] .. ', ' .. val[1].value
end
end
end
end
retval = retval .. '<div class="div-col columns column-width"'
..' style="-moz-column-count: '..stupci..'; column-count: '..stupci..'; -webkit-column-count: '..stupci..';">'
for k, v in pairs(prijevodi) do
retval = retval .. jezici[k] .. ': ' .. v .. '<br/>'
end
retval = retval .. '</div>'
retval = retval .. '<hr>'
-- todo sort languages
end
return retval
end
return p
jn6dr5sdnzfz28uyvtuok054i3ujqwb