Modul:Swadesh
A modult a Modul:Swadesh/doc lapon tudod dokumentálni
local export = {}
local m_links = require("Module:links")
local m_scripts = require("Module:scripts")
local m_ipa = require("Module:IPA")
local gsub = mw.ustring.gsub
local English = {"[[én]]", "[[te]]", "[[ő]]", "[[mi]]", "[[ti]]", "[[ők]]", "[[ez]]", "[[az]]", "[[itt]]", "[[ott]]", "[[ki]]?", "[[mi]]?", "[[hol]]?", "[[mikor]]?", "[[hogy]]?, ([[hogyan]]?)", "[[nem]], [[ne]]!", "[[mind]], ([[minden]])", "[[sok]]", "[[néhány]]", "[[kevés]]", "[[más]]", "[[egy]]", "[[kettő]]", "[[három]]", "[[négy]]", "[[öt]]", "[[nagy]]", "[[hosszú]]", "[[széles]]", "[[vastag]]", "[[nehéz]]", "[[kicsi]]", "[[rövid]]", "[[szűk]]", "[[vékony]]", "[[nő]]", "[[férfi]]", "[[ember]]", "[[gyerek]]", "[[feleség]]", "[[férj]]", "[[anya]]", "[[apa]]", "[[állat]]", "[[hal]]", "[[madár]]", "[[kutya]]", "[[tetű]]", "[[kígyó]]", "[[féreg]]", "[[fa]]", "[[erdő]]", "[[bot]]", "[[gyümölcs]]", "[[mag]]", "[[levél]]", "[[gyökér]]", "[[kéreg]]", "[[virág]]", "[[fű]]", "[[kötél]]", "[[bőr]]", "[[hús]]", "[[vér]]", "[[csont]]", "[[zsír]]", "[[tojás]]", "[[szarv]]", "[[farok]]", "[[toll]]", "[[haj]]", "[[fej]]", "[[fül]]", "[[szem]]", "[[orr]]", "[[száj]]", "[[fog]]", "[[nyelv]]", "[[köröm]]", "[[lábfej]]", "[[láb]]", "[[térd]]", "[[kéz]]", "[[szárny]]", "[[has]]", "[[bél]]", "[[nyak]]", "[[hát]]", "[[mell]]", "[[szív]]", "[[máj]]", "[[iszik]]", "[[eszik]]", "[[harap]]", "[[szopik]]", "[[köp]]", "[[hány]]", "[[fúj]]", "[[lélegzik]]", "[[nevet]]", "[[lát]]", "[[hall]]", "[[tud]]", "[[gondol]]", "[[szagol]]", "[[fél]] (ige)", "[[alszik]]", "[[él]]", "[[meghal]]", "[[megöl]]", "[[harcol]]", "[[vadászik]]", "[[üt]]", "[[vág]]", "[[hasít]]", "[[szúr]]", "[[vakar]]", "[[ás]]", "[[úszik]]", "[[repül]]", "[[megy]]", "[[jön]]", "[[fekszik]]", "[[ül]]", "[[áll]] (ige)", "[[fordul]]", "[[esik]]", "[[ad]]", "[[tart]]", "[[facsar]]", "[[dörzsöl]]", "[[mos]]", "[[töröl]]", "[[húz]]", "[[tol]]", "[[dob]]/[[hajít]]", "[[köt]]", "[[varr]]", "[[számol]]", "[[mond]]", "[[énekel]]", "[[játszik]]", "[[lebeg]]", "[[folyik]]", "[[megfagy]]", "[[dagad]]", "[[nap]]", "[[hold]]", "[[csillag]]", "[[víz]]", "[[eső]]", "[[folyó]]", "[[tó]]", "[[tenger]]", "[[só]]", "[[kő]]", "[[homok]]", "[[por]]", "[[föld]]", "[[felhő]]", "[[köd]]", "[[ég]] (főnév)", "[[szél]]", "[[hó]]", "[[jég]]", "[[füst]]", "[[tűz]]", "[[hamu]]", "[[ég]] (ige)", "[[út]]", "[[hegy]]", "[[piros]]/[[vörös]]", "[[zöld]]", "[[sárga]]", "[[fehér]]", "[[fekete]]", "[[éj]]", "[[nap]]", "[[év]]", "[[meleg]]", "[[hideg]]", "[[teli]]", "[[új]]", "[[régi]]", "[[jó]]", "[[rossz]]", "[[rohadt]]", "[[piszkos]]", "[[egyenes]]", "[[kerek]]", "[[éles]]", "[[tompa]]", "[[sima]]", "[[nedves]]", "[[száraz]]", "[[helyes]]", "[[közel]]", "[[távol]]", "[[jobb]]", "[[bal]]", "[[-nál]], [[-nél]]", "[[-ban]], [[-ben]]", "[[-val]], [[-vel]]", "[[és]]", "[[ha]]", "[[mert]]", "[[név]]"}
--array - list of 207 objects in this form {gloss=term}
local data = {}
function export.python_dictionary(frame)
local args = frame:getParent().args
local dataurl = args['lang']
if args['var'] then dataurl = dataurl .. '/' .. args['var'] end
local data = require("Module:Swadesh/data/" .. dataurl)
local lang = require("Module:languages").getByCode(args['lang'])
local res = "{'name': '" .. lang:getCanonicalName()
if data['header'] ~= nil then res = res .. ' (' .. data['header'] .. ')' end
res = res .. "',"
for word = 1, #English do
res = res .. "'" .. word .. "': ["
if data[word] ~= nil then
for _, termdata in ipairs(data[word]) do
local best = m_scripts.findBestScript(termdata.alt or termdata.term, lang)
local translit = lang:transliterate((termdata.alt or termdata.term), best)
res = res .. '{'
if termdata.term then res = res .. "'term': '" .. gsub(termdata.term, "'", "'") .. "', " end
if termdata.alt then res = res .. "'alt': '" .. gsub(termdata.alt, "'", "'") .. "', " end
if termdata.tr or translit then res = res .. "'translit': '" .. gsub((termdata.tr or translit), "'", "'") .. "', " end
if termdata.ts then res = res .. "'transcript': '" .. gsub(termdata.ts, "'", "'") .. "', " end
if termdata.ipa then res = res .. "'ipa': '" .. gsub(termdata.ipa, "'", "'") .. "', " end
if termdata.nolink then res = res .. "'nolink': '" .. gsub(termdata.nolink, "'", "'") .. "', " end
if termdata.notes then res = res .. "'notes': '" .. gsub(termdata.notes, "'", "'") .. "', " end
res = res .. '},'
end
end
res = res .. "],"
end
res = res .. "}"
return "<pre>" .. mw.text.nowiki(res) .. "</pre>"
end
function export.show(frame)
local args = frame:getParent().args
local data = {}
local langs = {}
local res = mw.html.create("table"):addClass("wikitable sortable")
local headers = res:tag("tr")
for _, text in ipairs { "№", "magyar" } do
headers:tag("th"):node(text)
end
for i, arg in ipairs(args) do
local lang = arg
local header = arg
langs[i] = require("Module:languages").getByCode(lang)
if args["var" .. i] ~= nil then
arg = arg .. '/' .. args["var" .. i]
end
data[i] = require("Module:Swadesh/data/" .. arg)
local header = langs[i]:getCanonicalName()
if data[i]['header'] ~= nil and args['translit'] == nil then
header = header .. ' (' .. data[i]['header'] .. ')'
end
if data[i]['nativename'] ~= nil then
header = header .. '<br><small>' .. m_links.full_link({lang = langs[i], alt = data[i]['nativename'], tr = "-"}) .. "</small>"
end
local count = 0
for k, v in pairs(data[i]) do
if (type(k) == 'number') then count = count + 1 end
end
header = header .. "<br><small><sup>[[Module:Swadesh/data/" .. arg .. "|edit (" .. count .. ")]]</sup></small>"
headers:tag("th"):node(header)
end
if args[2] == nil and args['translit'] == nil then
headers:tag("th"):node("IPA")
end
for word = 1, #English do
local row = mw.html.create("tr")
row:tag("td"):node(word)
row:tag("td"):node(English[word])
for lang, arg in ipairs(args) do
local res = ""
local count = 0
if data[lang][word] then
for _, termdata in ipairs(data[lang][word]) do
if count ~= 0 then res = res .. ", " end
if args["translit"] then
res = res .. '<span class="swadesh-translit">'
local best = m_scripts.findBestScript(termdata.alt or termdata.term, langs[lang])
local translit = langs[lang]:transliterate((termdata.alt or termdata.term), best)
if termdata.nolink == nil and termdata.term ~= nil then
res = res .. m_links.language_link({lang = langs[lang], term = termdata.term or '?',
alt = termdata.ts or termdata.tr or translit or termdata.term or ('<span class="IPA">' .. termdata.ipa .. '</span>') or '?'})
else
res = res .. (termdata.ts or termdata.tr or translit or termdata.term or ('<span class="IPA">' .. termdata.ipa .. '</span>') or '?')
end
else
res = res .. '<span class="swadesh-term">'
if termdata.nolink == nil then
res = res .. m_links.full_link({lang = langs[lang], term = termdata.term, alt = termdata.alt, tr = termdata.tr, ts = termdata.ts})
else
res = res .. termdata.term
end
end
if termdata.notes then
if args[2] == nil then res = res .. " (''<span class=\"swadesh-note\">" .. termdata.notes .. "</span>'')"
else res = res .. '<abbr title = "' .. termdata.notes .. '>*</abbr>' end
end
res = res .. '</span>'
count = count + 1
end
end
row:tag("td"):node(res)
end
if args[2] == nil and args['translit'] == nil then
local ipas = ""
local count = 0
if data[1][word] then
for _, termdata in ipairs(data[1][word]) do
if count ~= 0 then
ipas = ipas .. ", "
end
if termdata.ipa then
ipas = ipas .. '<span class="IPA">' .. termdata.ipa .. '</span>'
count = count + 1
end
end
end
row:tag("td"):node(ipas)
end
res:node(row)
end
return res;
end
return export