Документацію для цього модуля можна створити у Модуль:improve/документація

-- Модуль:improve v0.5
-- 2017-07-24

local export = {}

local u = require("Module:utils")

local d = {}
-- TODO: морфо/додати → "Додати шаблон {{морфо}} …", морфо/заполнить → "Заполнить шаблон {{морфо}}"
d['морфологія?'] = {
	desc = 'Додати секцію «Морфосинтаксичні ознаки»',
	category = 'Потрібна морфологія'
}
d['морфологія/порожньо'] = {
	desc = 'Додати відомості про [[морфологія|морфологію]] у «Морфосинтаксичні ознаки»',
	category = 'Потрібна морфологія'
}
d['морфологія/шаблон'] = {
	desc = 'Використати потрібний [[:Категорія:Шаблони словозміни|шаблон словозніми]] у «Морфосинтаксичні ознаки»',
	category = 'Потрібна морфологія'
}
d['морфологія/мова'] = {
	desc = 'Використати потрібний [[:Категорія:Шаблони словозміни|шаблон словозніми]] (відповідної мови)',
	category = 'Потрібна морфологія'
}
d['морфологія/рід'] = {
	desc = 'Додати інформацію про рід та істотність у «Морфосинтаксичні ознаки»',
	category = 'Потрібна морфологія'
}
d['морфологія/парадигма'] = {
	desc = 'Уточнити парадигму словозміни, використовуючи конкретніший [[:Категорія:Шаблони словозміни|шаблон словозніми]]',
	category = 'Потрібна морфологія'
}
d['морфо'] = {
	desc = 'Додати опис морфемної будови за допомогою {{шаблон|морфо}}',
	category = 'Потрібна морфологія'
}
d['вимова?'] = {
	desc = 'Додати секцію «Вимова»',
	category = 'Потрібна вимова'
}
d['транскрипція'] = {
	desc = 'Додати транскрипцію у секцію «Вимова» за допомогою {{шаблон|transcription}}',
	category = 'Потрібна вимова'
}
d['транскрипція/мн'] = {
	desc = 'Додати транскрипцію у секцію «Вимова» за допомогою {{шаблон|transcriptions}}',
	category = 'Потрібна вимова'
}
d['вимова'] = d['транскрипція']
d['вимови'] = d['транскрипція/мн']
d['значення?'] = {
	desc = 'Додати секцію «Значення» до секції «Семантичні властивості»',
	category = 'Потрібна семантика'
}
d['значення#'] = {
	desc = 'Додати перед кожним значенням на початку рядка символ "<code>#</code>"',
	category = 'Потрібна семантика'
}
d['значення'] = {
	desc = "'''Додати |значення-переклад у секцію «Семантичні властивості»'''",
	categories = {'Потрібна семантика', 'Болванки'}
}
d['приклад'] = {
	desc = 'Додати приклад слововжитку для значення за допомогою {{шаблон|приклад}}',
	category = 'Потрібна семантика'
}
d['приклади'] = {
	desc = 'Додати приклади слововжитку для всіх значень за допомогою {{шаблон|приклад}}',
	category = 'Потрібна семантика'
}
d['семантика?'] = {
	desc = 'Додати необхідні розділи у «Семантичні властивості» (Синоніми, Антоніми, Гіпероніми, Гіпоніми)',
	category = 'Потрібна семантика'
}
d['синоніми'] = {
	desc = 'Додати [[синонім]]и у секцію «Семантичні властивості»',
	category = 'Потрібна семантика'
}
d['гіпероніми'] = {
	desc = 'Додати гипероніми у секцію «Семантичні властивості»',
	categories = {'Потрібна семантика', 'Потрібно вказати гіпероніми'}
}
d['семантика'] = {
	desc = 'Додати усі семантичні зв’язки (отсутствие можно указать прочерком, а неизвестность — символом вопроса)',
	category = 'Потрібна семантика'
}
d['споріднені слова?'] = {
	desc = 'Додати секцію «Споріднені слова»',
	category = 'Потрібні споріднені слова'
}
d['спорідн'] = {
	desc = 'Додати вміст у секцію «Споріднені слова» за допомогою {{шаблон|спорідн}}',
	category = 'Потрібні споріднені слова'
}
d['повн'] = {
	desc = 'Додати усі спільнокореневі слова у секцію «Споріднені слова» за допомогою запису <nowiki>{{спорідн|повн=}}</nowiki>',
	category = 'Потрібні споріднені слова'
}
d['етимологія?'] = {
	desc = 'Додати секцію «Етимологія»',
	category = 'Потрібна етимологія'
}
d['етимологія'] = {
	desc = 'Додати етимологічні відомості до секції «Етимологія»',
	category = 'Потрібна етимологія'
}
d['переклад?'] = {
	desc = 'Додати секцію «Переклад»',
	category = 'Потрібен переклад'
}
d['переклад'] = {
	desc = 'Додати принаймні один переклад до секції «Переклад»',
	category = 'Потрібен переклад'
}
d['переклади'] = {
	desc = 'Додати хоча б один переклад для кожного значення у секцію «Переклад»',
	category = 'Потрібен переклад'
}
d['джерела?'] = {
	desc = 'Додати секцію «Джерела»',
	category = 'Потрібні джерела'
}
d['джерело'] = {
	desc = 'Додати принайні одне джерело у секцію «Джерела»',
	category = 'Потрібні джерела'
}
d['ulif'] = {
	desc = 'Додати посилання на словник [https://lcorp.ulif.org.ua/dictua/dictua.aspx?uid= УЛІФ] у секцію «Джерела» за допомогою {{шаблон|ulif}}',
	category = 'Потрібні джерела'
}
d['goroh'] = {
	desc = 'Додати посилання на словник [https://goroh.pp.ua/ Горох] у секцію «Джерела» за допомогою {{шаблон|goroh}}',
	category = 'Потрібні джерела'
}
d['СУМ'] = {
	desc = 'Додати посилання на [http://www.inmo.org.ua/sum.html?wrd= СУМ-11] у секцію «Джерела» за допомогою {{шаблон|СУМ-11}}',
	category = 'Потрібні джерела'
}
d['СУМ-11'] = d['СУМ'] 
local override = {}
override['uk'] = {}
override['uk']['морфо'] = {
	desc = 'Додати опис морфемної будови за допомогою {{шаблон|морфо-uk}}',
	category = 'Потрібна морфологія'
}
override['uk']['транскрипція'] = {
	desc = 'Додати транскрипцію у секцію «Вимова» за допомогою {{шаблон|transcription-uk}}',
	category = 'Потрібна вимова'
}
override['uk']['транскрипція/мн'] = {
	desc = 'Додати транскрипцію у секцію «Вимова» за допомогою {{шаблон|transcriptions-uk}}',
	category = 'Потрібна вимова'
}
override['uk']['вимова'] = override['uk']['транскрипція']
override['uk']['вимови'] = override['uk']['транскрипція/мн']

override['ru'] = {}
override['ru']['морфо'] = {
	desc = 'Додати опис морфемної будови за допомогою {{шаблон|морфо-ru}}',
	category = 'Потрібна морфологія'
}	
override['ru']['транскрипція'] = {
	desc = 'Додати транскрипцію у секцію «Вимова» за допомогою {{шаблон|transcription-ru}}',
	category = 'Потрібна вимова'
}
override['ru']['транскрипція/мн'] = {
	desc = 'Додати транскрипцію у секцію «Вимова» за допомогою {{шаблон|transcriptions-ru}}',
	category = 'Потрібна вимова'
}
override['ru']['вимова'] = override['ru']['транскрипція']
override['ru']['вимови'] = override['ru']['транскрипція/мн']

override['be'] = {}
override['be']['морфо'] = {
	desc = 'Додати опис морфемної будови за допомогою {{шаблон|морфо-be}}',
	category = 'Потрібна морфологія'
}
function export.details(frame)
	local args = u.clone(frame:getParent().args)
	count_args = 0
	for key, value in pairs(args) do
		if type(key) == 'number' and value ~= '??' then
			count_args = count_args + 1
		end
	end
	lang = mw.text.trim(args[1])
	text = '{{in article|[[Категория:Статі до доробки/' .. lang .. '|{{PAGENAME}}]]}}'
	if count_args < 2 then
		return text
	end
	for i = 2, count_args do
		key = mw.text.trim(args[i])
		if d[key] or override[lang] and override[lang][key] then
			data = d[key]
			if override[lang] and override[lang][key] then
				data = override[lang][key]
			end
			categories = {}
			if data['category'] then
				categories = {data['category']}
			elseif data['categories'] then
				categories = data['categories']
			end
			text = text .. '\n* '
			for i, category in pairs(categories) do
				if category == 'Потрібен переклад' then
					-- Суффикс языка не нужен для переводов, т.к. переводы бывают только у русских слов
					text = text .. '{{in article|[[Категорія:' .. category .. ']]}}'
				else
					text = text .. '{{in article|[[Категорія:' .. category .. '/' .. lang .. ']]}}'
				end
			end
			text = text .. data['desc']
		elseif key ~= '' and key ~= '??' then
			text = text .. '\n* ' .. key .. " ''(неизвестный параметр шаблона)''"
		end
	end
	text = text .. '<br/>'
	return frame:preprocess(text)
end
 
return export