Modul:бу́квы

Z Wikislovníku
Skočit na navigaci Skočit na vyhledávání

Dokumentaci tohoto modulu lze vytvořit na stránce Nápověda:Modul:бу́квы

p = {}

local OrdinaryNumbers = { 
	"první", "druhé", "třetí", "čtvrté", "páté", "šesté", "sedmé", "osmé", "deváté", "desáté", 
	"jedenácté", "dvanácté", "třinácté", "čtrnácté", "patnácté", "šestnácté", "sedmnácté", "osmnácté", "devatenácté", "dvacáté",
	"dvacáté první", "dvacáté druhé", "dvacáté třetí", "dvacáté čtvrté", "dvacáté páté", "dvacáté šesté", "dvacáté sedmé", "dvacáté osmé", "dvacáté deváté", "třicáté",
	"třicáté první", "třicáté druhé", "třicáté třetí", "třicáté čtvrté", "třícáté páté", "třicáté šesté", "třicáté sedmé", "třicáté osmé", "třicáté deváté", "čtyřicáté"
}

local Alphabets = {
	["ru"] = { 
		["all caps"] = { "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я" },
		["small caps"] = { "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я" },
	}	
}

local AlphabetsNames = {
	["ru"] = "ruské abecedy (azbuky, moderní cyrilice)"
}

local Categories = {
	["ru"] = "Písmena azbuky"
}

function AlphabetExists (alphabet)
	for entry in pairs (Alphabets) do
		if entry == alphabet then
			return true
		end
	end
	return false
end


function p.print (frame)
	local out = ""
	local arg = frame:getParent().args
	local lang = arg[1]
	if not lang or lang == "" then
		return "CHYBA: Nezadán kód jazyka abecedy"
	end
	
	local page = mw.title.getCurrentTitle()
	local pagename = page.text

	if not AlphabetExists (lang) then
		return "CHYBA: Zadán chybný nebo dosud nepřidaný kód jazyka abecedy"
	end
	local order = false
	local case = false

	for typeset in pairs (Alphabets[lang]) do
		for letter in pairs (Alphabets[lang][typeset]) do
			if Alphabets[lang][typeset][letter] == pagename then
				order = letter
				case = typeset
			end
		end
	end

	if not order or not case then
		return "CHYBA: " .. pagename .. " není písmeno nebo toto písmeno nebylo přidáno do seznamu písmen jazyka s kódem " .. lang
	end
	out = OrdinaryNumbers[order] .. " písmeno " .. AlphabetsNames[lang] 

	
	if order == 1 then
		out = out .. " předcházející písmeno [[" .. Alphabets[lang][case][order+1] .. "#písmeno|" .. Alphabets[lang][case][order+1] .. "]]"
	else 
		out = out .. " následující za písmenem [[" .. Alphabets[lang][case][order-1] .. "#písmeno|" .. Alphabets[lang][case][order-1] .. "]]"

		if order ~= # Alphabets[lang][case] then
			out = out .. " a předcházející písmeno [[" .. Alphabets[lang][case][order+1] .. "#písmeno|" .. Alphabets[lang][case][order+1] .. "]]"
		end
	end
	
	out = out .. "[[Category:" .. Categories[lang] .. "]]"
	
	return out
end

return p