မာတိကာသို့ ခုန်သွားရန်

မဝ်ဂျူ:language tracking

နူ ဝိက်ရှေန်နရဳ

Documentation for this module may be created at မဝ်ဂျူ:language tracking/doc

local export = {}

local function generate_lemmas(langs)
	local output = '<table class="langtrack"><tr class="primary">'

    for _, language in ipairs(langs) do
        output = output .. "<th style=\"padding: 15px\">" .. mw.site.stats.pagesInCategory(language .. " lemmas", "pages") .. "</th>"
    end

    output = output .. '</tr><tr class="secondary">'

    for _, language in ipairs(langs) do
        output = output .. "<th style=\"padding: 15px\">[[Special:RecentChangesLinked/Category:ဝေါဟာ" .. language .. "နွံပ္ဍဲအဘိဓာန်ဂမၠိုင်|ဝေါဟာတံသ္ဇိုၚ်ဘာသာ" .. language .. "]]</th>"
    end
	
    output = output .. "</tr></table>"
    
    return output
end

local function generate_nonlemmas(langs)
	local output = '<table class="infobox langtrack"><tr class="primary">'
	
    for _, language in ipairs(langs) do
        output = output .. "<th style=\"padding: 15px\">" .. mw.site.stats.pagesInCategory(language .. " non-lemma forms", "pages") .. "</th>"
    end

    output = output .. '</tr><tr class="secondary">'

    for _, language in ipairs(langs) do
        output = output .. "<th style=\"padding: 15px\">[[Special:RecentChangesLinked/Category:ဝေါဟာ" .. language .. "ဗီုပြၚ်ဟွံမွဲကဵုပ္ဍဲအဘိဓာန်ဂမၠိုင်|ဗီုပြၚ်ဝေါဟာတံသ္ဇိုၚ်ဘာသာ" .. language .. "]]</th>"
    end

    output = output .. "</tr></table>"
    
    return output
end

local function generate_both(langs)
	local output = '<table class="infobox langtrack"><tr class="primary">'

    for _, language in ipairs(langs) do
        output = output .. "<th style=\"padding: 15px\">" .. mw.site.stats.pagesInCategory(language .. " lemmas", "pages") .. "</th>"
    end
    
    output = output .. '</tr><tr class="secondary">'

    for _, language in ipairs(langs) do
        output = output .. "<th style=\"padding: 15px\">[[Special:RecentChangesLinked/Category:ဝေါဟာ" .. language .. "နွံပ္ဍဲအဘိဓာန်ဂမၠိုင်|ဝေါဟာတံသ္ဇိုၚ်ဘာသာ" .. language .. "]]</th>"
    end
    
    output = output .. '</tr><tr class="primary">'
    
    for _, language in ipairs(langs) do
        output = output .. "<th style=\"padding: 15px\">" .. mw.site.stats.pagesInCategory(language .. " non-lemma forms", "pages") .. "</th>"
    end

    output = output .. '</tr><tr class="secondary">'

    for _, language in ipairs(langs) do
        output = output .. "<th style=\"padding: 15px\">[[Special:RecentChangesLinked/Category:ဝေါဟာ" .. language .. "ဗီုပြၚ်ဟွံမွဲကဵုပ္ဍဲအဘိဓာန်ဂမၠိုင်|ဗီုပြၚ်ဝေါဟာတံသ္ဇိုၚ်ဘာသာ" .. language .. "]]</th>"
    end

    output = output .. "</tr></table>"
    
    return output
end

function export.show(frame)
    local args = require("Module:parameters").process(
		frame:getParent().args,
		{
			[1] = { list = true },
			["type"] = { default = "lemma" },
		})

    local langs = {}

    local languageData = mw.loadData("Module:languages/code to canonical name")

    for _, language in ipairs(args[1]) do
        language = languageData[language]
        table.insert(langs, (language ~= "") and language or nil)
    end
    
    local output

	if args.type == "lemma" then
		output = generate_lemmas(langs) 
	elseif args.type == "nonlemma" then
		output = generate_nonlemmas(langs)
	elseif args.type == "both" then
		output = generate_both(langs)
	else 
		error("Invalid type.")
	end
	
    return output ..  frame:extensionTag("templatestyles", nil, {src = "Template:language tracking/styles.css"})
end

return export