ARBEIT MACHT FREI
Moduł:TNT i Moduł:TNT/sandbox: Różnica pomiędzy stronami
(Różnica między stronami)
m 1 wersja |
m 1 wersja |
||
| Linia 33: | Linia 33: | ||
-- if the current page is Template:Graph:Lines/doc | -- if the current page is Template:Graph:Lines/doc | ||
-- | -- | ||
local p = {} | local p = {} | ||
| Linia 47: | Linia 42: | ||
function p.msg(frame) | function p.msg(frame) | ||
local dataset, id | local dataset, id | ||
local params = {} | local params = { n = 0 } | ||
local lang = nil | local lang = nil | ||
for k, v in pairs(frame.args) do | for k, v in pairs(frame.args) do | ||
| Linia 55: | Linia 50: | ||
id = mw.text.trim(v) | id = mw.text.trim(v) | ||
elseif type(k) == 'number' then | elseif type(k) == 'number' then | ||
local i = k - 2 | |||
params[i] = mw.text.trim(v) | |||
params.n = math.max(params.n, i) | |||
elseif k == 'lang' and v ~= '_' then | elseif k == 'lang' and v ~= '_' then | ||
lang = mw.text.trim(v) | lang = mw.text.trim(v) | ||
| Linia 70: | Linia 67: | ||
checkType('format', 1, dataset, 'string') | checkType('format', 1, dataset, 'string') | ||
checkType('format', 2, key, 'string') | checkType('format', 2, key, 'string') | ||
return formatMessage(dataset, key, {...}) | return formatMessage(dataset, key, {n = select('#', ...), ...}) | ||
end | end | ||
| Linia 82: | Linia 79: | ||
checkType('formatInLanguage', 2, dataset, 'string') | checkType('formatInLanguage', 2, dataset, 'string') | ||
checkType('formatInLanguage', 3, key, 'string') | checkType('formatInLanguage', 3, key, 'string') | ||
return formatMessage(dataset, key, {...}, lang) | return formatMessage(dataset, key, {n = select('#', ...), ...}, lang) | ||
end | end | ||
| Linia 156: | Linia 153: | ||
description=data.description, | description=data.description, | ||
-- TODO: Store this in a dataset: | -- TODO: Store this in a dataset: | ||
format = (args and args.format or nil), | format=(args and args.format or nil), | ||
}) | }) | ||
| Linia 183: | Linia 180: | ||
loadData = function(dataset, lang, dataType) | loadData = function(dataset, lang, dataType) | ||
mw.log(dataset, lang, dataType) | |||
dataset = sanitizeDataset(dataset) | dataset = sanitizeDataset(dataset) | ||
if not dataset then | if not dataset then | ||
| Linia 190: | Linia 188: | ||
-- Give helpful error to thirdparties who try and copy this module. | -- Give helpful error to thirdparties who try and copy this module. | ||
if not mw.ext or not mw.ext.data or not mw.ext.data.get then | if not mw.ext or not mw.ext.data or not mw.ext.data.get then | ||
error( | error('Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:' .. dataset) | ||
Cannot load https://commons.wikimedia.org/wiki/Data: | |||
end | end | ||
| Linia 203: | Linia 199: | ||
data = mw.ext.data.get('Templatedata/' .. dataset, lang); | data = mw.ext.data.get('Templatedata/' .. dataset, lang); | ||
if data ~= false then | if data ~= false then | ||
categories = '[[Category:Templates using legacy global TemplateData table name]]'; | |||
dataPage = 'Templatedata/' .. dataset; | dataPage = 'Templatedata/' .. dataset; | ||
end | end | ||
| Linia 223: | Linia 212: | ||
error('Missing Commons dataset ' .. i18nDataset) | error('Missing Commons dataset ' .. i18nDataset) | ||
else | else | ||
error(formatMessage(i18nDataset, 'error_bad_dataset', {link( | error(formatMessage(i18nDataset, 'error_bad_dataset', {link(dataset)})) | ||
end | end | ||
end | end | ||
| Linia 238: | Linia 227: | ||
local id, msg = unpack(row) | local id, msg = unpack(row) | ||
if id == key then | if id == key then | ||
local result = mw.message.newRawMessage(msg, unpack(params or {})) | local result = mw.message.newRawMessage(msg, unpack(params or {}, 1, params and params.n or nil)) | ||
return result:plain() | return result:plain() | ||
end | end | ||