Module:Labels
local m_labeldata = mw.loadData("Module:labels/data")
local m_utilities = require("Module:utilities")
local m_links = require("Module:links")
local export = {}
local function show_categories(data, lang, script, sort_key, script2, sort_key2, term_mode)
local categories = {}
local categories2 = {}
local lang_code = lang:getCode()
local canonical_name = lang:getCanonicalName()
local topical_categories = data.topical_categories or {}
local sense_categories = data.sense_categories or {}
local pos_categories = data.pos_categories or {}
local regional_categories = data.regional_categories or {}
local plain_categories = data.plain_categories or {}
for i, cat in ipairs(topical_categories) do
table.insert(categories, lang_code .. ":" .. cat)
if script then
table.insert(categories, lang_code .. ":" .. cat .. " in " .. script .. " script")
end
if script2 then
table.insert(categories2, lang_code .. ":" .. cat .. " in " .. script2 .. " script")
end
end
for i, cat in ipairs(sense_categories) do
cat = (term_mode and cat .. " terms" ) or "terms with " .. cat .. " senses"
table.insert(categories, canonical_name .. " " .. cat)
if script then
table.insert(categories, canonical_name .. " " .. cat .. " in " .. script .. " script")
end
if script2 then
table.insert(categories2, canonical_name .. " " .. cat .. " in " .. script2 .. " script")
end
end
for i, cat in ipairs(pos_categories) do
table.insert(categories, canonical_name .. " " .. cat)
if script then
table.insert(categories, canonical_name .. " " .. cat .. " in " .. script .. " script")
end
if script2 then
table.insert(categories2, canonical_name .. " " .. cat .. " in " .. script2 .. " script")
end
end
for i, cat in ipairs(regional_categories) do
table.insert(categories, cat .. " " .. canonical_name)
if script then
table.insert(categories, cat .. " " .. canonical_name .. " in " .. script .. " script")
end
if script2 then
table.insert(categories2, cat .. " " .. canonical_name .. " in " .. script2 .. " script")
end
end
for i, cat in ipairs(plain_categories) do
table.insert(categories, cat)
if script then
table.insert(categories, cat .. " in " .. script .. " script")
end
if script2 then
table.insert(categories2, cat .. " in " .. script2 .. " script")
end
end
return m_utilities.format_categories(categories, lang, sort_key) .. m_utilities.format_categories(categories2, lang, sort_key2)
end
function export.show_labels(labels, lang, script, script2, sort_key, sort_key2, nocat, term_mode)
if #labels < 1 then
if mw.title.getCurrentTitle().nsText == "Template" then
labels = {"example"}
else
error("You must specify at least one label.")
end
end
-- Show the labels
local omit_preComma = false
local omit_postComma = true
local omit_preSpace = false
local omit_postSpace = true
local lang_code = lang:getCode()
local canonical_name = lang:getCanonicalName()
local alias
for i, label in ipairs(labels) do
omit_preComma = omit_postComma
omit_postComma = false
omit_preSpace = omit_postSpace
omit_postSpace = false
local deprecated = false
if m_labeldata.deprecated[label] then
deprecated = true
end
if m_labeldata.aliases[label] then
alias = label
label = m_labeldata.aliases[label]
end
if m_labeldata.deprecated[label] then
deprecated = true
end
local data = m_labeldata.labels[label] or {}
if data.track then
require("Module:debug").track("labels/label/" .. label)
end
local languages = data.languages
if languages and not languages[lang_code] then
-- [[Special:WhatLinksHere/Template:tracking/labels/incorrect-language]]
require("Module:debug").track("labels/incorrect-language")
mw.log(lang_code .. ":" .. label)
--[[ Do not use the data in the table if the current language
is not in the "languages" list. | Do not use the data in the table if the current language
is not in the "languages" list. ]]
label = alias or label
data = {}
end
if data.special_display then
local function add_language_name(str)
if str == "canonical_name" then
return canonical_name
else
return ""
end
end
label = mw.ustring.gsub(data.special_display, "<([^>]+)>", add_language_name)
else
if data.glossary then
local glossary_entry = type(data.glossary) == "string" and data.glossary or label
label = "[[Appendix:Glossary#" .. glossary_entry .. "|" .. label .. "]]"
elseif data.Wikipedia then
Wikipedia_entry = type(data.Wikipedia) == "string" and data.Wikipedia or label
label = "[[w:" .. Wikipedia_entry .. "|" .. label .. "]]"
else
label = data.display or label
end
end
local omit_comma = omit_preComma or data.omit_preComma
omit_postComma = data.omit_postComma
local omit_space = omit_preSpace or data.omit_preSpace
omit_postSpace = data.omit_postSpace
if deprecated then
label = '<span class="deprecated-label">' .. label .. '</span>'
if not nocat then
label = label .. m_utilities.format_categories({ "Entries with deprecated labels" }, lang)
end
end
label = (omit_comma and "" or '<span class="ib-comma">,</span>') .. (omit_space and "" or " ") .. label
labels[i] = label .. (nocat and "" or show_categories(data, lang, script, sort_key, script2, sort_key2, term_mode))
end
return
"<span class=\"ib-brac\">(</span><span class=\"ib-content\">" ..
table.concat(labels, "") ..
"</span><span class=\"ib-brac\">)</span>"
end
function export.printConflicts(frame)
local replacements = m_labeldata.replacements
local output = {"; labels:"}
local labels = {}
for label, data in pairs(replacements.labels) do
local lang
if data.languages then
langCode = data.languages[1]
lang = require("Module:languages").getByCode(langCode)
end
local canonicalName
if lang then
canonicalName = lang.getCanonicalName()
end
table.insert(labels, label)
if langCode or canonicalName then
table.insert(output, " (")
end
if langCode then
table.insert(output, "<code>" .. langCode .. "</code>")
end
if canonicalName then
if langCode then
table.insert(output, ", ")
end
table.insert(output, canonicalName)
end
if langCode or canonicalName then
table.insert(output, ")")
end
end
table.sort(labels)
for _, label in ipairs(labels) do
table.insert(output, "\n* " .. label)
end
return table.concat(output)
end
return export
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.