پودمان:IPA/category documentation
ظاهر
require('strict')
local p = {}
local lects = mw.loadData('Module:IPA/data/export')
local mLang = require('Module:Lang')
function p.main(frame)
local args = {}
for k, v in pairs(frame:getParent().args) do
if v ~= '' then
args[k] = v
end
end
local name = mw.ustring.sub(mw.title.getCurrentTitle().text, 43)
local lect, parent
local code = args.code
if not code then
for _, lect2 in ipairs(lects) do
if (lect2.name or lect2.extName) == name then
lect = lect2
parent = lect.parent
code = lect.code
break
end
end
end
if not code then
code = mLang._tag_from_name({ name })
if code:find('^<span') then
code = nil
else
local regionCode = code:match('-(.+)')
if regionCode and regionCode:sub(1, 2) ~= 'x-' then
code = code:sub(1, #code - #regionCode) .. regionCode:upper()
end
for _, lect2 in ipairs(lects) do
if lect2.code == code then
lect = lect2
parent = lect.parent
break
end
end
end
end
local isCollective = name:find('^زبانهای ') and true
local link = lect and (lect.link or lect.generatedLink or lect.extLink) or
parent and (parent.link or parent.generatedLink or parent.extLink) or
isCollective and name or
'زبان ' .. name
local key = lect and lect.key or parent and parent.key
local langCat, langCatCount
if code then
langCat = mLang._category_from_tag({ code })
if mw.ustring.find(langCat, '^<span') then
langCat = nil
else
langCatCount = mw.site.stats.pagesInCategory(langCat:sub(5), 'pages')
end
end
local parentName = args.parent or
parent and (parent.name or parent.extName) or
code and code:find('-') and mLang._name_from_tag({ code:gsub('%-.*', '') })
if parentName == name or
parentName and parentName:find('^<span')
then
parentName = nil
end
local cat = args.cat ~= 'no' and (
parentName and 'صفحههای دارای الفبای آوانگاری بینالمللی ' .. parentName or
'صفحههای دارای الفبای آوانگاری بینالمللی'
)
local sortkey = args.sort or
name:find('^[ %l]+$') and ' ' .. name or
name
local ret = {
mw.ustring.format(
'صفحههای زیر حاوی رونوشتهای [[الفبای آوانگاری بینالمللی]] برای [[%s|%s]] با استفاده از %s هستند. این رده هرگز نباید بهصورت دستی به صفحهها افزوده شود.',
link,
name,
code
and mw.ustring.format('<code>{{[[الگو:آوا|آوا]]|%s|...}}</code>', code)
or '[[الگو:آوا]]'
)
}
if key then
table.insert(ret, mw.ustring.format(
'بهطور پیشفرض، رونوشتها به کلید [[%s]] پیوند دارند. رونوشتهایی که از قواعد کلید پیروی نمیکنند باید دارای پارامتر <code>|generic=yes</code> باشند.',
key
))
end
if isCollective then
table.insert(ret, mw.ustring.format(
'%s یک مجموعهٔ زبان هستند. لطفاً شناسه%s را با در صورت امکان با شناسهٔ زبانهایی اختصاصیتر جایگزین کنید.',
name,
code and ' (' .. code .. ')' or ''
))
end
if not code and args.container ~= 'yes' then
table.insert(ret, mw.ustring.format(
'<small>خطای مستندسازی: شناسهٔ زبان برای «%s» یافت نشد.</small>',
name
))
end
if args.content then
table.insert(ret, args.content)
end
if langCat and langCatCount ~= 0 then
table.insert(ret, mw.ustring.format(
'== صفحههای وابسته ==\n*[[:%s]] (%s)',
langCat,
mw.language.new('fa'):formatNum(langCatCount)
))
end
if cat then
table.insert(ret, mw.ustring.format('[[رده:%s|%s]]', cat, sortkey))
end
return table.concat(ret, '\n\n')
end
return p