Moduulin kielikoodit käyttöohje
Kielten nimien ja tunnusten hakemiseen.
Kielikoodimääritykset tehdään tiedostoon Module:kielikoodit/taulukot.
nimi(tunnus)
Palauttaa tunnusta vastaavan kielen nimen. Huom. saman asian saa tehtyä mw.language.fetchLanguageName
-funktiolla.
tunnus(nimi)
Palauttaa nimeä vastaavan kielitunnuksen. Huom. saman asian saa tehtyä kieliolion mw.language:getCode
-metodilla.
tunnus_genetiiville(nimi)
Palauttaa nimeä vastaavan kielitunnuksen.
genetiivissa(tunnus)
Palauttaa tunnusta vastaavan kielen genetiivimuodon.
partitiivissa(tunnus)
Palauttaa tunnusta vastaavan kielen partitiivimuodon.
translatiivissa(tunnus)
Palauttaa tunnusta vastaavan kielen translatiivimuodon.
lajitteluarvo(tunnus)
Palauttaa tunnusta vastaavan kielen lajitteluarvon, joita vertaamalla tietää kahden kielen välisen järjestyksen.
lajitteluarvo_nimelle(nimi)
Palauttaa nimeä vastaavan kielen lajitteluarvon, joita vertaamalla tietää kahden kielen välisen järjestyksen.
{{#invoke:kielikoodit|Nimi|tunnus}}
{{#invoke:kielikoodit|Nimi|tunnus|isolla=1}}
Palauttaa tunnusta vastaavan kielen nimen. Jos parametri isolla on annettu, palauttaa nimen isolla alkukirjaimella.
{{#invoke:kielikoodit|Tunnus|nimi}}
Palauttaa nimeä vastaavan kielen tunnuksen.
{{#invoke:kielikoodit|Tunnus|nimi}}
Palauttaa nimeä vastaavan kielen tunnuksen. Jos kielikoodistandardi on annettu, palauttaa sen mukaisen kielikoodin, muuten oletuksksi asetetun.
{{#invoke:kielikoodit|Genetiivissa|tunnus}}
{{#invoke:kielikoodit|Genetiivissa|tunnus|isolla=1}}
Palauttaa tunnusta vastaavan kielen genetiivimuodon. Jos parametri isolla on annettu, palauttaa nimen isolla alkukirjaimella.
{{#invoke:kielikoodit|Tunnus_genetiiville|nimen genetiivi}}
Palauttaa nimen genetiiviä vastaavan kielen tunnuksen.
{{#invoke:kielikoodit|Partitiivissa|tunnus}}
{{#invoke:kielikoodit|Partitiivissa|tunnus|isolla=1}}
Palauttaa tunnusta vastaavan kielen partitiivimuodon. Jos parametri isolla on annettu, palauttaa nimen isolla alkukirjaimella.
{{#invoke:kielikoodit|Translatiivissa|tunnus}}
{{#invoke:kielikoodit|Translatiivissa|tunnus|isolla=1}}
Palauttaa tunnusta vastaavan kielen translatiivimuodon. Jos parametri isolla on annettu, palauttaa nimen isolla alkukirjaimella.
mouk-aria
mouk-aria
ǃXóõn
ǃXóõn
mouk-arian
mouk-arian
ɧ
-- http://fi.wiktionary.orghttps://dictious.com/fi/Wikisanakirja:Kielimallineet
local m = {}
local taulukot = mw.loadData('Module:kielikoodit/taulukot')
-- Muuttaa sanan s ensimmäisen kirjaimen isoksi vaikka sana ei alkaisi
-- kirjaimella. Esim. versaaliksi("'auhelawa") --> "'Auhelawa"
function m.versaalilla (s)
local lang_fi = mw.language.new("fi");
-- Erotetaan erikoismerkit alusta, koska mw.lang:ucfirst ei muuta nillä
-- alkavia nimiä oikein
s = string.gsub(s, "^(*)(.+)", function (a, b)
return a .. lang_fi:ucfirst(b)
end)
return s
end
function m.gemenalla (s)
local lang_fi = mw.language.new("fi");
s = string.gsub(s, "^(*)(.+)", function (a, b)
return a .. lang_fi:lcfirst(b)
end)
return s
end
-- Palauttaa annetun tunnuksen kielen nimen nominatiivissa.
-- Jos valinnainen parametri 'isolla' on true, alkaa palautettu sana isolla kirjaimella.
function m.nimi(tunnus, isolla)
local kt = taulukot.tunnukset
if kt then
if isolla then
return m.versaalilla(kt)
end
return kt
end
return nil
end
--- Kielen osioiden otsikkona käytetty teksti.
--
-- Yleensä sama kuin m.nimi isolla, muttei aina.
function m.kieliotsikko(tunnus)
if tunnus == "rmf" then
return "Suomen romani"
end
return m.nimi(tunnus, true)
end
-- Palauttaa annetun tunnuksen kielen nimen genetiivissä.
-- Jos valinnainen parametri 'isolla' on true, alkaa palautettu sana isolla kirjaimella.
function m.genetiivi_tunnukselle(tunnus, isolla)
local kt = taulukot.tunnukset
if kt and kt then
if isolla then
return m.versaalilla(kt)
end
return kt
end
return nil
end
function m.genetiivi_nimelle(kieli, isolla)
if taulukot.nimet then
return taulukot.nimet
end
return nil
end
function m.genetiivissa(k, isolla)
local t
if taulukot.tunnukset then
t = k
else
t = m.tunnus_genetiiville(k) or m.tunnus(k, nil)
end
return m.genetiivi_tunnukselle(t, isolla) or k
end
function m.tunnus_genetiiville(gen)
-- muutetaan pienellä alkavaksi
local s = m.gemenalla(gen)
if taulukot.genetiivit then
return taulukot.genetiivit
end
return nil
end
-- Palauttaa annetun tunnuksen kielen nimen partitiivissa.
-- Jos valinnainen parametri 'isolla' on true, alkaa palautettu sana isolla kirjaimella.
-- TODO
function m.partitiivissa(tunnus, isolla)
kt = taulukot.tunnukset
if kt then
if isolla and kt then
return m.versaalilla(kt)
end
return kt
end
return nil
end
function m.partitiivi_nimelle(kieli, isolla)
if taulukot.nimet then
return taulukot.nimet
end
return nil
end
function m.translatiivissa(tunnus, isolla)
g = m.genetiivissa(tunnus, isolla)
if g then
return string.match(g, "^(.*)n$") .. "ksi"
end
return nil
end
-- Palauttaa arvon, joka kertoo kielen paikan akkosjärjesyksessä.
-- TODO
function m.lajitteluarvo(tunnus)
kt = taulukot.tunnukset
if kt then
return kt
end
return -1
end
function m.lajitteluarvo_nimelle(nimi)
kt = taulukot.nimet
if kt then
return kt
end
return -1
end
function m._tunnus(tunnukset, tark)
local iso1 = nil
local iso2 = nil
local iso3 = nil
if tark == nil then
return tunnukset
end
for i,v in ipairs(tunnukset) do
if v:len() == 2 then
iso1 = v
if tark == "ISO 639-1" then
return v
end
elseif v:len() == 3 and iso3 == nil then
iso3 = v
if tark == "ISO 639-3" then
return v
end
elseif v:len() == 3 and iso3 ~= nil then
iso2 = v
if tark == "ISO 639-2" then
return v
end
end
end
return nil
end
-- Palauttaa annetun kielen kielitunnuksen.
function m.tunnus(kieli, tark)
local s = m.gemenalla(kieli)
if taulukot.nimet then
return m._tunnus(taulukot.nimet, tark)
end
return nil
end
-- #invokella kutsuttavat funktiot
function m.Nimi(frame)
return m.nimi(frame.args, frame.args.isolla and frame.args.isolla ~= "")
end
function m.Tunnus(frame)
local ret = m.tunnus(frame.args, frame.args)
if ret then
return ret
end
return frame.args.oletus or ""
end
function m.Tunnus_tunnukselle(frame)
kt = taulukot.tunnukset]
if kt then
local ret = m._tunnus(kt, frame.args)
if ret then
return ret
end
end
return frame.args.oletus or ""
end
function m.Genetiivissa(frame)
local ret = m.genetiivissa(frame.args, frame.args.isolla and frame.args.isolla ~= "")
if ret then
return ret
end
return frame.args.oletus or ""
end
function m.Tunnus_genetiiville(frame)
local ret = m.tunnus_genetiiville(frame.args)
if ret then
return ret
end
return frame.args.oletus or ""
end
function m.Partitiivissa(frame)
local ret = m.partitiivissa(frame.args, frame.args.isolla and frame.args.isolla ~= "")
if ret then
return ret
end
return frame.args.oletus or ""
end
function m.Translatiivissa(frame)
local ret = m.translatiivissa(frame.args, frame.args.isolla and frame.args.isolla ~= "")
if ret then
return ret
end
return frame.args.oletus or ""
end
function m.Tulosta_kielet(frame)
local teksti = "{| class='wikitable sortable' border=1\n|-\n! Kielikoodi !! Nimi!!Wikisanakirjassa käytetty nimi\n"
for i,v in ipairs(taulukot.tiedot) do
local jnro = v
local nimi = v
local kielikoodit = v
local viittaus = v
local kaytetty_nimi = ""
if (kielikoodit == nil or next(kielikoodit) == nil) and viittaus then
rivi = taulukot.tunnukset
if rivi then
kielikoodit = rivi
kaytetty_nimi = " .. "]]"
end
end
if kielikoodit then
for j,koodi in ipairs(kielikoodit) do
teksti = teksti .. "|-\n| " .. koodi .. " ||data-sort-value=\"" .. jnro .. "\"| ] || " .. kaytetty_nimi .. "\n"
end
end
end
teksti = teksti .. "|}"
return teksti
end
-- Yhteensopivuusfunkto vanhoille {{Kieliaakkostus}}- ja {{Kieliaakkostus-2}} -mallineille.
-- Palauttaa kielen nominatiivin, kun kieli on annettu genetiivimuodossa tai kielikoodina.
function m.Nimi2(frame)
local tunnus = frame.args
-- Etsitään ensisijaisesti kielikoodilla, koska toisen kielen kielikoodi
-- ja toisen nimi voivat olla samat (iiri, ga).
if m.nimi(tunnus) == nil then
tunnus = m.tunnus(tunnus, nil) or m.tunnus_genetiiville(tunnus)
end
if tunnus then
local ret = m.nimi(tunnus, frame.args.isolla and frame.args.isolla ~= "")
if ret then
if frame.args.isolla == 1 then
return m.versaalilla(ret)
else
return ret
end
end
end
return frame.args.oletus or ""
end
-- Yhteensopivuusfunkto vanhoille {{Kieliaakkostus}}- ja {{Kieliaakkostus-2}} -mallineille.
-- Palauttaa kielen nominatiivin, kun kieli on annettu nominatiivimuodossa tai kielikoodina.
function m.Genetiivissa2(frame)
local tunnus = frame.args
-- Etsitään ensisijaisesti kielikoodilla, koska toisen kielen kielikoodi
-- ja toisen nimi voivat olla samat (iiri, ga).
if m.nimi(tunnus) == nil then
tunnus = m.tunnus(tunnus, nil) or m.tunnus_genetiiville(tunnus)
end
if tunnus then
local ret = m.genetiivi_tunnukselle(tunnus, 1)
if ret then
return ret
end
end
return frame.args.oletus or ""
end
function m.Testi(frame)
return m.nimi(frame.args) .. "<br/>" .. m.lajitteluarvo_nimelle(frame.args) .. "<br/>" .. m.lajitteluarvo_nimelle(m.nimi(frame.args))
end
return m