Документација модула[прикажи] [уреди] [историја] [освежи]

local podaci = mw.loadData ('Модул:ISO 639/podaci');

local function fetch(frame)
	local arg = frame.args[1]:lower();

	local kod = podaci.iso639_1[arg];
	if (kod == nil) then
		kod = podaci.iso639_2B[arg];
		if (kod == nil) then
			kod = arg;
		end
	end
	
	local jezik = podaci.iso639_3[kod];
	if (jezik == nil) then
		jezik = podaci.iso639_3['zxx'];
	end
	
	return jezik;
end

local function tabela(frame)
	local t = '';
	t = t .. '{| class="wikitable sortable"\n'
	t = t .. '|-\n'
	t = t .. '! ISO 639-1 !! ISO 639-2 !! ISO 639-3 !! Скр. !! Име !! Кратко име !! Датив !! Кратки датив !! Чланак\n' 

	local ordered = {}
	for k in pairs(podaci.iso639_3) do
		table.insert(ordered, k);
	end
	table.sort(ordered);

	for i = 1, #ordered do
		local k, p = ordered[i], podaci.iso639_3[ordered[i]];
		t = t .. '|-\n';
		t = t .. '|' .. p[1] .. '||' .. p[2] .. '||' .. p[3] .. '||' .. p[4] .. '||'  .. p[5] .. '||' .. p[6] .. '||' .. p[7] .. '||' .. p[8] .. '|| [[' .. p[9] .. ']]\n';
	end
	
	t = t .. '|}\n'
	return t;
end

local function skr(frame)
	return fetch(frame)[4];
end

local function ime(frame)
	return fetch(frame)[5];
end

local function kratkoIme(frame)
	return fetch(frame)[6];
end

local function dativ(frame)
	return fetch(frame)[7];
end

local function kratkiDativ(frame)
	return fetch(frame)[8];
end

local function clanak(frame)
	return fetch(frame)[9];
end

return {
	tabela = tabela,
	skr = skr,	
	ime = ime,	
	kratkoIme = kratkoIme,
	dativ = dativ,	
	kratkiDativ = kratkiDativ,	
	clanak = clanak,
};