Siirry sisältöön

Moduuli:kieliaakkostus/fi

Wikisanakirjasta

Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:kieliaakkostus/fi/ohje

-- suomi
local fi = {}
-- ennen käyttöä sanan pitää olla muutettu pieniksi kirjaimiksi
function fi.lajittelumuotoon(isanta, sana)
    -- sivun http://www.kotus.fi/?s=4354 mukaan
    local oma_map = { 
		['0'] = '0', 
		['1'] = '0', 
		['2'] = '0', 
		['3'] = '0', 
		['4'] = '0', 
		['5'] = '0', 
		['6'] = '0', 
		['7'] = '0', 
		['8'] = '0', 
		['9'] = '0', 
    	['æ'] = 'ä', 
    	['w'] = 'v', 
    	['ü'] = 'y', 
    	['ű'] = 'y', 
        ['õ'] = 'ö', 
        ['ő'] = 'ö', 
        ['ø'] = 'ö', 
    	
    }
    local f = function (m) return oma_map[m] or isanta.muuta_merkki(m) or m end
    return isanta.yksinkertaista_sana(sana, "abcdefghijklmnopqrstuvxyzåäö#", f)
end

-- ennen käyttöä sanan pitää olla muutettu pieniksi kirjaimiksi
function fi.lajittelukirjaimiksi(isanta, sana, n)
    n = n or 2
    sana = fi.lajittelumuotoon(isanta, sana)
    return mw.ustring.sub(sana, 1, n), mw.ustring.sub(sana, n+1)
end

-- Muuttaa tekstit sellaiseen muotoon, että niitä voidaan vertailla < ja >-operaattoreilla.
-- 'å' -> '{', 'å' -> '|', 'ö' -> '}' (koska 'z' < '{' < '|' < '}').
-- esim. "aasi" -> "aasi", "päällikkö" -> p||llikk} 
function fi.vertailumuotoon(isanta, sana)
    return fi.lajittelumuotoon(isanta, mw.ustring.lower(sana)):gsub("å", "{"):gsub("ä", "|"):gsub("ö", "}")
end

return fi