Moduulin sanarivi/ko käyttöohje
Tässä ohjeessa kuvataan toiminnallisuutta jonka kehitys on vielä kesken. Sivu on tarkoitettu lähinnä kehityksen apuvälineeksi, ei yleiseen käyttöön. |
Korean sanoille voi käyttää seuraavia parametreja:
Tätä artikkelia tai artikkelin osaa on pyydetty parannettavaksi. | |
Syy: päivitettävä Voit auttaa Wikisanakirjaa parantamalla artikkelia. Lisää tietoa saattaa olla keskustelusivulla. |
local p = {}
local kielilinkki = require("Moduuli:Kielilinkki")
function p.muotoileSanarivi(title, lat, hangul, hanja)
local output = {}
-- Lihavoitu sana sanarivillä.
local b = mw.html.create('b')
:node(title)
:done()
if title == hangul then
b:attr("lang", "ko-Hang")
:attr("class", "hakusana Hang")
hangul = nil
else
b:attr("lang", "ko-Hani")
:attr("class", "hakusana Hani")
hanja = nil
end
table.insert(output, tostring(b))
if lat then
table.insert(output, ' (<span class="lat">')
table.insert(output, lat)
table.insert(output, "</span>)")
if hangul or hanja then
table.insert(output, " ")
end
end
if hangul or hanja then
table.insert(output, " (")
end
if hangul then
table.insert(output, "''hangul'' ")
table.insert(output, kielilinkki.linkki_tai_nil{
kieli = "ko-Hang",
kohde = hangul,
kuvaus = "rm/ko-hangul" })
table.insert(output, "")
end
if hanja then
table.insert(output, "''hanja'' ")
table.insert(output, kielilinkki.linkki_tai_nil{
kieli = "ko-Hani",
kohde = hanja,
kuvaus = "rm/ko-hanja"
})
table.insert(output, "")
end
if hangul or hanja then
table.insert(output, ")")
end
return table.concat(output, "")
end
function p.sana(sanalk, frame, luokat)
assert(frame.args == "ko", "Väärä kieli!")
-- Sanarivillä näkyvä sana.
local title = frame.args or mw.title.getCurrentTitle().text
local lat = frame.args.lat
local hanja = frame.args.hanja
local hangul = frame.args.hangul
if not lat then
-- Jos artikkelissa ei ole lat-merkintää, laitetaan huomiota kapaaviin.
luokat.asetaAakkostajalla("ko", "Korean sana-artikkelit, joista puuttuu lat-merkintä")
end
if mw.ustring.find(title, "") then -- u+ac00–u+d7a3
hangul = title
elseif mw.ustring.find(title, "") then -- u+4e00–u+9fef
hanja = title
else
error("Outo otsikko: " .. title)
end
-- Nämä on jo asetettu sanarivi-moduulissa, mutta korvataan ne mahdollisella
-- eri aakkostuksella.
luokat.asetaAakkostajalla("ko", luokat.kielenLuokka("ko", "sanat"))
if sanalk ~= "erisnimi" then
luokat.asetaAakkostajalla("ko", luokat.kielenLuokka("ko", luokat.luokkaMonikko(sanalk)), hangul or title)
end
return p.muotoileSanarivi(title, lat, hangul, hanja), luokat
end
function p.Sanarivi(frame)
local sanalk = frame.args.sanaluokka
if frame.args.frame == 'parent' then
frame = frame:getParent()
end
assert(frame.args == "ko", "Väärä kieli!")
return p.sana(sanalk, frame, require("Moduuli:luokittelu"))
end
return p