Moduuli:artikkeliaakkostaja
Moduulin artikkeliaakkostaja käyttöohje [näytä tämä käyttöohje omalla sivullaan] [muokkaa tätä käyttöohjetta] [päivitä] [testit] [hiekkalaatikko]
Artikkeliaakkostaja
[muokkaa]Käyttö
[muokkaa]{{#invoke:artikkeliaakkostaja|Aakkostusavain|kieli=kielikoodi|teksti}}
- Muuttaa sanan kirjaimet niiden lajittelussa käytettäviksi muodoiksi, esim. suomessa w → v.
Kielikohtaiset aakkostajat
[muokkaa]Seuraaville kielille on määritetty erityinen aakkostaja. Muissa käytetään oletusta.
Uuden kielikohtaisen aakkostajan lisääminen
[muokkaa]Useimmissa kielissä voi käyttää alla olevaa pohjaa, johon merkkijonoon aakkoset kirjoitetaan kielen sallitut kirjaimet. Taulukkoon muunnokset kirjoitetaan ne kirjaimet, jotka aakkostetaan toisen kirjaimen tai merkkijonon mukaan, esim. jos ß aakkostetaan ss:ksi tulee taulukkoon rivi ["ß"] = "ss"
. Näiden muunnosten lisäksi kaikki alla olevalla tavalla tehdyt aakkostajat poistavat tarkkeet kaikista niistä merkeistä, joita ei ole annettu aakkosissa tai muunnoksissa. Tarvittaessa voi perusaakkostajan metodit korvata kokonaan, ks. esim. [[../en]].
local perus = require("Moduuli:artikkeliaakkostaja/perus") local p = perus:kopioi() p.asetukset{ aakkoset = "", muunnokset = { } } return p
local p = {}
--- Palauttaa annetun kielelle käytetyn aakkostajan
-- Jos kielelle on määritetty oma aakkostaja palauttaa sen muuten
-- oletusaakkostajan. Aakkostajat sijaitsevat moduulin alasivuilla.
-- Alasivun nimen tulee olla kielen kielikoodi.
-- @param lang alasivun nimi, jolla aakkostaja on
-- @return kielelle käytettävä aakkostaja
function p.lataa_aakkostaja(lang)
local aakkostaja
local stat
stat, aakkostaja = pcall(require, "Moduuli:artikkeliaakkostaja/" .. lang)
if stat == false then
-- Käytetään oletusaakkostajaa
stat, aakkostaja = pcall(require, "Moduuli:artikkeliaakkostaja/oletus")
if stat == false then
error("Ei oletusaakkostajaa")
end
end
return aakkostaja
end
--- Muuttaa `tekstin` kielen `lang` mukaiseksi aakkostusavaimeksi.
-- @param teksti tyypillisesti artikkelin nimi
-- @param lang kielikoodi. TODO vaihtoehtoisten kielikoodien normalisointi
-- @return aakkostusavain
function p.hae_aakkostusavain(teksti, lang)
local aakkostaja = p.lataa_aakkostaja(lang)
return aakkostaja.kuvaa_merkkijono(teksti)
end
function p.Aakkostusavain(frame)
-- Muutettava artikkelin nimi
local teksti = frame.args[1] or mw.title.getCurrentTitle().text
local lang = frame.args.kieli -- Kielitunnus (alisivun nimi)
if not teksti or not lang then
error("Virheelliset parametrit")
end
return p.hae_aakkostusavain(teksti, lang)
end
return p