Moduuli:Kielitieto
Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:Kielitieto/ohje
local p = {}
local taulukot = require('Moduuli:kielikoodit/taulukot')
local kenttadata = require('Module:Kielitieto/kentat')
--- Muuttaa Moduuli:kielikoodit/taulukot- ja Moduuli:Kielitieto/kentät -moduulien tiedot JSON-formaattiin.
local function kieletJSONiksi(kieltenKentat, kieltenSanarivit)
local paakohdat = {}
local nimiohjaukset = {}
local koodiohjaukset = {}
local taulu = {
["kielet"] = paakohdat,
["rinnakkaisnimet"] = nimiohjaukset,
["rinnakkaiskoodit"] = koodiohjaukset }
for i,v in ipairs(taulukot.tiedot) do
local jnro = v[1]
local nimi = v[2]
local kielikoodit = v[5]
local viittaus = v[6]
local kaytetty_nimi = ''
local kentat = kieltenKentat[kielikoodit[1]]
local sanarivit = kieltenSanarivit[kielikoodit[1]]
if (kielikoodit == nil or next(kielikoodit) == nil) and viittaus then
rivi = taulukot.tunnukset[viittaus]
if rivi then
kielikoodit = rivi[5]
-- Ohjaus toiseen nimeen.
table.insert(nimiohjaukset, { ["nimi"] = nimi, ["ohjaus"] = kielikoodit[1] })
end
elseif kielikoodit then
for j,koodi in ipairs(kielikoodit) do
if j == 1 then
-- Päänimi. Ensimmäinen koodi on ensisijainen.
table.insert(paakohdat, {
["koodi"] = koodi,
["nimi"] = nimi,
["kentat"] = kentat,
["sanarivit"] = sanarivit
})
else
-- Lisätään muut kielikoodit ohjauksiksi pääkoodiin.
table.insert(koodiohjaukset, { ["koodi"] = koodi, ["ohjaus"] = kielikoodit[1] })
end
end
end
end
return taulu
end
function p.DataJSONiksi(frame)
local data = kieletJSONiksi(kenttadata["kielten kentät"], kenttadata["kielten sanarivit"])
data['kenttien tiedot'] = kenttadata['kenttien tiedot']
return " " .. mw.text.jsonEncode(data, mw.text.JSON_PRETTY):gsub("\n", "\n ")
end
return p