Модуль:improve
Модуль реализован для использования в шаблоне {{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 = 'Добавить описание [[Викисловарь:Правила оформления статей#Морфемный состав|морфемного состава]] с помощью {{tpl|морфо}}',
category = 'Нужны сведения о морфологии'
}
d['произношение?'] = {
desc = 'Добавить секцию «[[Викисловарь:Правила оформления статей#Оформление фонетических свойств|Произношение]]»',
category = 'Нужно произношение'
}
d['транскрипция'] = {
desc = 'Добавить [[Викисловарь:Правила оформления статей#Оформление фонетических свойств|транскрипцию]] в секцию «Произношение» с помощью {{tpl|transcription}}',
category = 'Нужно произношение'
}
d['транскрипция/мн'] = {
desc = 'Добавить [[Викисловарь:Правила оформления статей#Оформление фонетических свойств|транскрипцию]] в секцию «Произношение» с помощью {{tpl|transcriptions}}',
category = 'Нужно произношение'
}
d['произношение'] = d['транскрипция']
d['произношения'] = d['транскрипция/мн']
d['значение?'] = {
desc = 'Добавить секцию «[[Викисловарь:Правила оформления статей#Оформление толкований|Значение]]» внутри «Семантические свойства»',
category = 'Нужны сведения о семантике'
}
d['значение#'] = {
desc = 'Добавить перед каждым [[Викисловарь:Правила оформления статей#Оформление толкований|значением]] в начале строки символ "<code>#</code>"',
category = 'Нужны сведения о семантике'
}
d['значение'] = {
desc = "'''Добавить [[Викисловарь:Правила оформления статей#Статьи об иностранных словах|значение-перевод]] в секцию «Семантические свойства»'''",
categories = {'Нужны сведения о семантике', 'Статьи-болванки'}
}
d['пример'] = {
desc = 'Добавить [[Викисловарь:Правила оформления статей#Примеры словоупотребления|пример словоупотребления]] для значения с помощью {{tpl|пример}}',
category = 'Нужны сведения о семантике'
}
d['примеры'] = {
desc = 'Добавить [[Викисловарь:Правила оформления статей#Примеры словоупотребления|примеры словоупотребления]] для всех значений с помощью {{tpl|пример}}',
category = 'Нужны сведения о семантике'
}
d['семантика?'] = {
desc = 'Добавить необходимые разделы в «Семантические свойства» (Синонимы, Антонимы, Гиперонимы, Гипонимы)',
category = 'Нужны сведения о семантике'
}
d['синонимы'] = {
desc = 'Добавить [[Викисловарь:Правила оформления статей#Оформление семантических отношений|синонимы]] в секцию «Семантические свойства»',
category = 'Нужны сведения о семантике'
}
d['гиперонимы'] = {
desc = 'Добавить [[Викисловарь:Правила оформления статей#Оформление семантических отношений|гиперонимы]] в секцию «Семантические свойства»',
categories = {'Нужны сведения о семантике', 'Нужно указать гиперонимы'}
}
d['семантика'] = {
desc = 'Добавить все семантические связи (отсутствие можно указать прочерком, а неизвестность — символом вопроса)',
category = 'Нужны сведения о семантике'
}
d['этимология?'] = {
desc = 'Добавить секцию «[[Викисловарь:Правила оформления статей#Этимология|Этимология]]»',
category = 'Нужна этимология'
}
d['этимология'] = {
desc = 'Добавить сведения об [[Викисловарь:Правила оформления статей#Этимология|этимологии]] в секцию «Этимология»',
category = 'Нужна этимология'
}
d['перевод?'] = {
desc = 'Добавить секцию «[[Викисловарь:Правила оформления статей#Перевод|Перевод]]»',
category = 'Нужен перевод'
}
d['перевод'] = {
desc = 'Добавить хотя бы один [[Викисловарь:Правила оформления статей#Перевод|перевод]] в секцию «Перевод»',
category = 'Нужен перевод'
}
d['переводы'] = {
desc = 'Добавить хотя бы один [[Викисловарь:Правила оформления статей#Перевод|перевод]] для каждого значения в секцию «Перевод»',
category = 'Нужен перевод'
}
local override = {}
override['ru'] = {}
override['ru']['морфо'] = {
desc = 'Добавить описание [[Викисловарь:Правила оформления статей#Морфемный состав|морфемного состава]] с помощью {{tpl|морфо-ru}}',
category = 'Нужны сведения о морфологии'
}
override['ru']['транскрипция'] = {
desc = 'Добавить [[Викисловарь:Правила оформления статей#Оформление фонетических свойств|транскрипцию]] в секцию «Произношение» с помощью {{tpl|transcription-ru}}',
category = 'Нужно произношение'
}
override['ru']['транскрипция/мн'] = {
desc = 'Добавить [[Викисловарь:Правила оформления статей#Оформление фонетических свойств|транскрипцию]] в секцию «Произношение» с помощью {{tpl|transcriptions-ru}}',
category = 'Нужно произношение'
}
override['ru']['произношение'] = override['ru']['транскрипция']
override['ru']['произношения'] = override['ru']['транскрипция/мн']
override['ru']['значение'] = {
desc = "'''Добавить [[Викисловарь:Правила оформления статей#Оформление толкований|значение]] в секцию «Семантические свойства»'''",
categories = {'Нужны сведения о семантике', 'Статьи-болванки'}
}
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