Wikipedia
lgwiki
https://lg.wikipedia.org/wiki/Olupapula_Olusooka
MediaWiki 1.47.0-wmf.19
first-letter
Media
Special
Talk
User
User talk
Wikipedia
Wikipedia talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Template:Done
10
1940
74481
3848
2024-06-17T12:07:26Z
Jarekt
11742
Second attempt at deploying translation based version of the template
74481
wikitext
text/x-wiki
{{#invoke:Autotranslate|autotranslate|base=Template:Done/i18n}}<noinclude>
{{Documentation|Template:Polling template}}
</noinclude>
dvgck4189jy3llndl65p204xfnwgszq
74482
50413
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Template:Done]]: Importing the Support template
50413
wikitext
text/x-wiki
[[Image:Yes_check.svg|15px| ]] {{{1|'''Done'''}}}<noinclude>[[Category:Wikipedia templates|{{PAGENAME}}]]</noinclude>
cqex2cb54ymgs4jbap0x2ddgz96h1pd
Template:Documentation
10
2729
74505
28401
2022-11-27T20:49:57Z
Tacsipacsi
2820
Undo revision 710061475 by [[Special:Contributions/Sarang|Sarang]] ([[User talk:Sarang|talk]]): undocumented, unused parameter. This is not a sandbox, this is the LIVE template.
74505
wikitext
text/x-wiki
<!-- {{#invoke:Autotranslate|autotranslate}} is used to avoid "Warning: This page calls Template:Autotranslate which causes a template loop (an infinite recursive call). "-->
<onlyinclude>{{#invoke:Autotranslate|autotranslate
| base = Template:Documentation/i18n
|lang = {{{lang|{{int:Lang}} }}}
|1 = {{#if:{{{1|}}}
|{{{1}}}
|{{#ifexist:{{SUBJECTPAGENAME}}/doc
|{{SUBJECTPAGENAME}}/doc
|{{#ifexist:{{#titleparts:{{SUBJECTPAGENAME}}|-1}}/doc
|{{#titleparts:{{SUBJECTPAGENAME}}|-1}}/doc
|{{SUBJECTPAGENAME}}/doc
}}
}}
}}
|2 = {{{heading|{{{2|}}} }}}
|content = {{{content|}}}
}}</onlyinclude>
eci5tevagu64g1pdamaseb2nj1i28lz
74506
28402
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Documentation]]: Importing the Support template
28401
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>
<!-- Add categories to the /doc subpage -->
</noinclude>
ii1kftoonz87mztj4siz1yhyqeg6agm
Module:Yesno
828
3738
74439
28279
2021-02-19T00:52:55Z
Magog the Ogre
11744
6 revisions imported from [[:w:en:Module:Yesno]]
28279
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
swdskn7svew8i9wuydn9uj5l3r2ghcs
74440
28280
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Module:Yesno]]: Importing the Support template
28168
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
swdskn7svew8i9wuydn9uj5l3r2ghcs
Module:Arguments
828
3739
74441
28281
2021-02-19T00:52:50Z
Magog the Ogre
11744
2 revisions imported from [[:w:en:Module:Arguments]]
18467
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
5qx9tzlul9ser30uxj9nbasjt92cevn
74442
28282
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Module:Arguments]]: Importing the Support template
18467
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
5qx9tzlul9ser30uxj9nbasjt92cevn
Module:TableTools
828
5430
74445
28294
2025-01-03T15:21:01Z
Matrix
8894
update from enwiki
74445
Scribunto
text/plain
------------------------------------------------------------------------------------
-- TableTools --
-- --
-- This module includes a number of functions for dealing with Lua tables. --
-- It is a meta-module, meant to be called from other Lua modules, and should not --
-- be called directly from #invoke. --
------------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local p = {}
-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
function p.isPositiveInteger(v)
return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity
end
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false if
-- not. Although it doesn't operate on tables, it is included here as it is useful
-- for determining whether a value can be a valid table key. Lua will generate an
-- error if a NaN is used as a table key.
------------------------------------------------------------------------------------
function p.isNan(v)
return type(v) == 'number' and v ~= v
end
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
function p.shallowClone(t)
checkType('shallowClone', 1, t, 'table')
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
function p.removeDuplicates(arr)
checkType('removeDuplicates', 1, arr, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for _, v in ipairs(arr) do
if isNan(v) then
-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
ret[#ret + 1] = v
elseif not exists[v] then
ret[#ret + 1] = v
exists[v] = true
end
end
return ret
end
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
function p.numKeys(t)
checkType('numKeys', 1, t, 'table')
local isPositiveInteger = p.isPositiveInteger
local nums = {}
for k in pairs(t) do
if isPositiveInteger(k) then
nums[#nums + 1] = k
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return
-- {1, 3, 6}.
------------------------------------------------------------------------------------
function p.affixNums(t, prefix, suffix)
checkType('affixNums', 1, t, 'table')
checkType('affixNums', 2, prefix, 'string', true)
checkType('affixNums', 3, suffix, 'string', true)
local function cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k in pairs(t) do
if type(k) == 'string' then
local num = mw.ustring.match(k, pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table
-- of subtables in the format
-- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}.
-- Keys that don't end with an integer are stored in a subtable named "other". The
-- compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
function p.numData(t, compress)
checkType('numData', 1, t, 'table')
checkType('numData', 2, compress, 'boolean', true)
local ret = {}
for k, v in pairs(t) do
local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
if num then
num = tonumber(num)
local subtable = ret[num] or {}
if prefix == '' then
-- Positional parameters match the blank string; put them at the start of the subtable instead.
prefix = 1
end
subtable[prefix] = v
ret[num] = subtable
else
local subtable = ret.other or {}
subtable[k] = v
ret.other = subtable
end
end
if compress then
local other = ret.other
ret = p.compressSparseArray(ret)
ret.other = other
end
return ret
end
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
function p.compressSparseArray(t)
checkType('compressSparseArray', 1, t, 'table')
local ret = {}
local nums = p.numKeys(t)
for _, num in ipairs(nums) do
ret[#ret + 1] = t[num]
end
return ret
end
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
function p.sparseIpairs(t)
checkType('sparseIpairs', 1, t, 'table')
local nums = p.numKeys(t)
local i = 0
local lim = #nums
return function ()
i = i + 1
if i <= lim then
local key = nums[i]
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
function p.size(t)
checkType('size', 1, t, 'table')
local i = 0
for _ in pairs(t) do
i = i + 1
end
return i
end
local function defaultKeySort(item1, item2)
-- "number" < "string", so numbers will be sorted before strings.
local type1, type2 = type(item1), type(item2)
if type1 ~= type2 then
return type1 < type2
elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then
return tostring(item1) < tostring(item2)
else
return item1 < item2
end
end
------------------------------------------------------------------------------------
-- keysToList
--
-- Returns an array of the keys in a table, sorted using either a default
-- comparison function or a custom keySort function.
------------------------------------------------------------------------------------
function p.keysToList(t, keySort, checked)
if not checked then
checkType('keysToList', 1, t, 'table')
checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'})
end
local arr = {}
local index = 1
for k in pairs(t) do
arr[index] = k
index = index + 1
end
if keySort ~= false then
keySort = type(keySort) == 'function' and keySort or defaultKeySort
table.sort(arr, keySort)
end
return arr
end
------------------------------------------------------------------------------------
-- sortedPairs
--
-- Iterates through a table, with the keys sorted using the keysToList function.
-- If there are only numerical keys, sparseIpairs is probably more efficient.
------------------------------------------------------------------------------------
function p.sortedPairs(t, keySort)
checkType('sortedPairs', 1, t, 'table')
checkType('sortedPairs', 2, keySort, 'function', true)
local arr = p.keysToList(t, keySort, true)
local i = 0
return function ()
i = i + 1
local key = arr[i]
if key ~= nil then
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- isArray
--
-- Returns true if the given value is a table and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArray(v)
if type(v) ~= 'table' then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- isArrayLike
--
-- Returns true if the given value is iterable and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArrayLike(v)
if not pcall(pairs, v) then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- invert
--
-- Transposes the keys and values in an array. For example, {"a", "b", "c"} ->
-- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to
-- the index of the last duplicate) and NaN values are ignored.
------------------------------------------------------------------------------------
function p.invert(arr)
checkType("invert", 1, arr, "table")
local isNan = p.isNan
local map = {}
for i, v in ipairs(arr) do
if not isNan(v) then
map[v] = i
end
end
return map
end
------------------------------------------------------------------------------------
-- listToSet
--
-- Creates a set from the array part of the table. Indexing the set by any of the
-- values of the array returns true. For example, {"a", "b", "c"} ->
-- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them
-- never equal to any value (including other NaNs or even themselves).
------------------------------------------------------------------------------------
function p.listToSet(arr)
checkType("listToSet", 1, arr, "table")
local isNan = p.isNan
local set = {}
for _, v in ipairs(arr) do
if not isNan(v) then
set[v] = true
end
end
return set
end
------------------------------------------------------------------------------------
-- deepCopy
--
-- Recursive deep copy function. Preserves identities of subtables.
------------------------------------------------------------------------------------
local function _deepCopy(orig, includeMetatable, already_seen)
if type(orig) ~= "table" then
return orig
end
-- already_seen stores copies of tables indexed by the original table.
local copy = already_seen[orig]
if copy ~= nil then
return copy
end
copy = {}
already_seen[orig] = copy -- memoize before any recursion, to avoid infinite loops
for orig_key, orig_value in pairs(orig) do
copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen)
end
if includeMetatable then
local mt = getmetatable(orig)
if mt ~= nil then
setmetatable(copy, _deepCopy(mt, true, already_seen))
end
end
return copy
end
function p.deepCopy(orig, noMetatable, already_seen)
checkType("deepCopy", 3, already_seen, "table", true)
return _deepCopy(orig, not noMetatable, already_seen or {})
end
------------------------------------------------------------------------------------
-- sparseConcat
--
-- Concatenates all values in the table that are indexed by a number, in order.
-- sparseConcat{a, nil, c, d} => "acd"
-- sparseConcat{nil, b, c, d} => "bcd"
------------------------------------------------------------------------------------
function p.sparseConcat(t, sep, i, j)
local arr = {}
local arr_i = 0
for _, v in p.sparseIpairs(t) do
arr_i = arr_i + 1
arr[arr_i] = v
end
return table.concat(arr, sep, i, j)
end
------------------------------------------------------------------------------------
-- length
--
-- Finds the length of an array, or of a quasi-array with keys such as "data1",
-- "data2", etc., using an exponential search algorithm. It is similar to the
-- operator #, but may return a different value when there are gaps in the array
-- portion of the table. Intended to be used on data loaded with mw.loadData. For
-- other tables, use #.
-- Note: #frame.args in frame object always be set to 0, regardless of the number
-- of unnamed template parameters, so use this function for frame.args.
------------------------------------------------------------------------------------
function p.length(t, prefix)
-- requiring module inline so that [[Module:Exponential search]] which is
-- only needed by this one function doesn't get millions of transclusions
local expSearch = require("Module:Exponential search")
checkType('length', 1, t, 'table')
checkType('length', 2, prefix, 'string', true)
return expSearch(function (i)
local key
if prefix then
key = prefix .. tostring(i)
else
key = i
end
return t[key] ~= nil
end) or 0
end
------------------------------------------------------------------------------------
-- inArray
--
-- Returns true if searchElement is a member of the array, and false otherwise.
-- Equivalent to JavaScript array.includes(searchElement) or
-- array.includes(searchElement, fromIndex), except fromIndex is 1 indexed
------------------------------------------------------------------------------------
function p.inArray(array, searchElement, fromIndex)
checkType("inArray", 1, array, "table")
-- if searchElement is nil, error?
fromIndex = tonumber(fromIndex)
if fromIndex then
if (fromIndex < 0) then
fromIndex = #array + fromIndex + 1
end
if fromIndex < 1 then fromIndex = 1 end
for _, v in ipairs({unpack(array, fromIndex)}) do
if v == searchElement then
return true
end
end
else
for _, v in pairs(array) do
if v == searchElement then
return true
end
end
end
return false
end
------------------------------------------------------------------------------------
-- merge
--
-- Given the arrays, returns an array containing the elements of each input array
-- in sequence.
------------------------------------------------------------------------------------
function p.merge(...)
local arrays = {...}
local ret = {}
for i, arr in ipairs(arrays) do
checkType('merge', i, arr, 'table')
for _, v in ipairs(arr) do
ret[#ret + 1] = v
end
end
return ret
end
------------------------------------------------------------------------------------
-- extend
--
-- Extends the first array in place by appending all elements from the second
-- array.
------------------------------------------------------------------------------------
function p.extend(arr1, arr2)
checkType('extend', 1, arr1, 'table')
checkType('extend', 2, arr2, 'table')
for _, v in ipairs(arr2) do
arr1[#arr1 + 1] = v
end
end
return p
4n03zk6kcoeg4gz82mieeh94c1szcjy
74446
50911
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Module:TableTools]]: Importing the Support template
50911
Scribunto
text/plain
------------------------------------------------------------------------------------
-- TableTools --
-- --
-- This module includes a number of functions for dealing with Lua tables. --
-- It is a meta-module, meant to be called from other Lua modules, and should not --
-- be called directly from #invoke. --
------------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local p = {}
-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
function p.isPositiveInteger(v)
return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity
end
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false if
-- not. Although it doesn't operate on tables, it is included here as it is useful
-- for determining whether a value can be a valid table key. Lua will generate an
-- error if a NaN is used as a table key.
------------------------------------------------------------------------------------
function p.isNan(v)
return type(v) == 'number' and v ~= v
end
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
function p.shallowClone(t)
checkType('shallowClone', 1, t, 'table')
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
function p.removeDuplicates(arr)
checkType('removeDuplicates', 1, arr, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for _, v in ipairs(arr) do
if isNan(v) then
-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
ret[#ret + 1] = v
elseif not exists[v] then
ret[#ret + 1] = v
exists[v] = true
end
end
return ret
end
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
function p.numKeys(t)
checkType('numKeys', 1, t, 'table')
local isPositiveInteger = p.isPositiveInteger
local nums = {}
for k in pairs(t) do
if isPositiveInteger(k) then
nums[#nums + 1] = k
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return
-- {1, 3, 6}.
------------------------------------------------------------------------------------
function p.affixNums(t, prefix, suffix)
checkType('affixNums', 1, t, 'table')
checkType('affixNums', 2, prefix, 'string', true)
checkType('affixNums', 3, suffix, 'string', true)
local function cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k in pairs(t) do
if type(k) == 'string' then
local num = mw.ustring.match(k, pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table
-- of subtables in the format
-- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}.
-- Keys that don't end with an integer are stored in a subtable named "other". The
-- compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
function p.numData(t, compress)
checkType('numData', 1, t, 'table')
checkType('numData', 2, compress, 'boolean', true)
local ret = {}
for k, v in pairs(t) do
local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
if num then
num = tonumber(num)
local subtable = ret[num] or {}
if prefix == '' then
-- Positional parameters match the blank string; put them at the start of the subtable instead.
prefix = 1
end
subtable[prefix] = v
ret[num] = subtable
else
local subtable = ret.other or {}
subtable[k] = v
ret.other = subtable
end
end
if compress then
local other = ret.other
ret = p.compressSparseArray(ret)
ret.other = other
end
return ret
end
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
function p.compressSparseArray(t)
checkType('compressSparseArray', 1, t, 'table')
local ret = {}
local nums = p.numKeys(t)
for _, num in ipairs(nums) do
ret[#ret + 1] = t[num]
end
return ret
end
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
function p.sparseIpairs(t)
checkType('sparseIpairs', 1, t, 'table')
local nums = p.numKeys(t)
local i = 0
local lim = #nums
return function ()
i = i + 1
if i <= lim then
local key = nums[i]
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
function p.size(t)
checkType('size', 1, t, 'table')
local i = 0
for _ in pairs(t) do
i = i + 1
end
return i
end
local function defaultKeySort(item1, item2)
-- "number" < "string", so numbers will be sorted before strings.
local type1, type2 = type(item1), type(item2)
if type1 ~= type2 then
return type1 < type2
elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then
return tostring(item1) < tostring(item2)
else
return item1 < item2
end
end
------------------------------------------------------------------------------------
-- keysToList
--
-- Returns an array of the keys in a table, sorted using either a default
-- comparison function or a custom keySort function.
------------------------------------------------------------------------------------
function p.keysToList(t, keySort, checked)
if not checked then
checkType('keysToList', 1, t, 'table')
checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'})
end
local arr = {}
local index = 1
for k in pairs(t) do
arr[index] = k
index = index + 1
end
if keySort ~= false then
keySort = type(keySort) == 'function' and keySort or defaultKeySort
table.sort(arr, keySort)
end
return arr
end
------------------------------------------------------------------------------------
-- sortedPairs
--
-- Iterates through a table, with the keys sorted using the keysToList function.
-- If there are only numerical keys, sparseIpairs is probably more efficient.
------------------------------------------------------------------------------------
function p.sortedPairs(t, keySort)
checkType('sortedPairs', 1, t, 'table')
checkType('sortedPairs', 2, keySort, 'function', true)
local arr = p.keysToList(t, keySort, true)
local i = 0
return function ()
i = i + 1
local key = arr[i]
if key ~= nil then
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- isArray
--
-- Returns true if the given value is a table and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArray(v)
if type(v) ~= 'table' then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- isArrayLike
--
-- Returns true if the given value is iterable and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArrayLike(v)
if not pcall(pairs, v) then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- invert
--
-- Transposes the keys and values in an array. For example, {"a", "b", "c"} ->
-- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to
-- the index of the last duplicate) and NaN values are ignored.
------------------------------------------------------------------------------------
function p.invert(arr)
checkType("invert", 1, arr, "table")
local isNan = p.isNan
local map = {}
for i, v in ipairs(arr) do
if not isNan(v) then
map[v] = i
end
end
return map
end
------------------------------------------------------------------------------------
-- listToSet
--
-- Creates a set from the array part of the table. Indexing the set by any of the
-- values of the array returns true. For example, {"a", "b", "c"} ->
-- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them
-- never equal to any value (including other NaNs or even themselves).
------------------------------------------------------------------------------------
function p.listToSet(arr)
checkType("listToSet", 1, arr, "table")
local isNan = p.isNan
local set = {}
for _, v in ipairs(arr) do
if not isNan(v) then
set[v] = true
end
end
return set
end
------------------------------------------------------------------------------------
-- deepCopy
--
-- Recursive deep copy function. Preserves identities of subtables.
------------------------------------------------------------------------------------
local function _deepCopy(orig, includeMetatable, already_seen)
if type(orig) ~= "table" then
return orig
end
-- already_seen stores copies of tables indexed by the original table.
local copy = already_seen[orig]
if copy ~= nil then
return copy
end
copy = {}
already_seen[orig] = copy -- memoize before any recursion, to avoid infinite loops
for orig_key, orig_value in pairs(orig) do
copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen)
end
if includeMetatable then
local mt = getmetatable(orig)
if mt ~= nil then
setmetatable(copy, _deepCopy(mt, true, already_seen))
end
end
return copy
end
function p.deepCopy(orig, noMetatable, already_seen)
checkType("deepCopy", 3, already_seen, "table", true)
return _deepCopy(orig, not noMetatable, already_seen or {})
end
------------------------------------------------------------------------------------
-- sparseConcat
--
-- Concatenates all values in the table that are indexed by a number, in order.
-- sparseConcat{a, nil, c, d} => "acd"
-- sparseConcat{nil, b, c, d} => "bcd"
------------------------------------------------------------------------------------
function p.sparseConcat(t, sep, i, j)
local arr = {}
local arr_i = 0
for _, v in p.sparseIpairs(t) do
arr_i = arr_i + 1
arr[arr_i] = v
end
return table.concat(arr, sep, i, j)
end
------------------------------------------------------------------------------------
-- length
--
-- Finds the length of an array, or of a quasi-array with keys such as "data1",
-- "data2", etc., using an exponential search algorithm. It is similar to the
-- operator #, but may return a different value when there are gaps in the array
-- portion of the table. Intended to be used on data loaded with mw.loadData. For
-- other tables, use #.
-- Note: #frame.args in frame object always be set to 0, regardless of the number
-- of unnamed template parameters, so use this function for frame.args.
------------------------------------------------------------------------------------
function p.length(t, prefix)
-- requiring module inline so that [[Module:Exponential search]] which is
-- only needed by this one function doesn't get millions of transclusions
local expSearch = require("Module:Exponential search")
checkType('length', 1, t, 'table')
checkType('length', 2, prefix, 'string', true)
return expSearch(function (i)
local key
if prefix then
key = prefix .. tostring(i)
else
key = i
end
return t[key] ~= nil
end) or 0
end
------------------------------------------------------------------------------------
-- inArray
--
-- Returns true if searchElement is a member of the array, and false otherwise.
-- Equivalent to JavaScript array.includes(searchElement) or
-- array.includes(searchElement, fromIndex), except fromIndex is 1 indexed
------------------------------------------------------------------------------------
function p.inArray(array, searchElement, fromIndex)
checkType("inArray", 1, array, "table")
-- if searchElement is nil, error?
fromIndex = tonumber(fromIndex)
if fromIndex then
if (fromIndex < 0) then
fromIndex = #array + fromIndex + 1
end
if fromIndex < 1 then fromIndex = 1 end
for _, v in ipairs({unpack(array, fromIndex)}) do
if v == searchElement then
return true
end
end
else
for _, v in pairs(array) do
if v == searchElement then
return true
end
end
end
return false
end
------------------------------------------------------------------------------------
-- merge
--
-- Given the arrays, returns an array containing the elements of each input array
-- in sequence.
------------------------------------------------------------------------------------
function p.merge(...)
local arrays = {...}
local ret = {}
for i, arr in ipairs(arrays) do
checkType('merge', i, arr, 'table')
for _, v in ipairs(arr) do
ret[#ret + 1] = v
end
end
return ret
end
------------------------------------------------------------------------------------
-- extend
--
-- Extends the first array in place by appending all elements from the second
-- array.
------------------------------------------------------------------------------------
function p.extend(arr1, arr2)
checkType('extend', 1, arr1, 'table')
checkType('extend', 2, arr2, 'table')
for _, v in ipairs(arr2) do
arr1[#arr1 + 1] = v
end
end
return p
4n03zk6kcoeg4gz82mieeh94c1szcjy
Omusuja gw’enkaka (Yellow fever)
0
6649
74419
34046
2026-09-10T15:26:55Z
B722N
6898
Testing Orphan template
74419
wikitext
text/x-wiki
__FORCETOC__
{{Orphan}}
[[File:YellowFeverVirus.jpg|thumb|YellowFeverVirus]]
=== Obubonero n’enfaanana ===
Buno bulwadde obuleetebwa akawuka era nga butera okujja n’obubonero okuli: omusujja, obutayagala kulya, okusinduukirirwa emmeeme, okulumizibwa mu nnyingo, omutwe oguluma. Obubonero buno businga kweyolekera mu nnaku ezitasukka ttaano, kyoka mu bantu abamu, mu lunaku obulwadde buno we bweyongera, bafuna omusujja mungi, olubuto oluluma n’okukosa ekibumba kutandika ekireetera olususu okufuuka olwa kyenvu. Kino bwe kibaawo , olwo n’akatyabaga k’okuvaamu omusaayi wamu n’okulwala kwensigo kweyongera.
=== Ekibuleeta ===
Obulwadde buno buleetebwa akawuka akayitibwa yellow fever virus era ne kasaasaanyizibwa ensiri enkazi, singa eluma omuntu.Obulwadde buno bukwata bantu,ebisolo ebirala ebigwa mu luse lw’abantu n’ebimu ku bika byensiri.Obulwadde buno bwandiba obuzibu bw’okuzuulirawo, okujjako ng’omuntu amaze kufuna bubonero obwo waggulu, era okubukakasa omulwadde bamala kumujjako omusaayi ne gukeberebwa.
=== Okugema ===
Lyo eddagala erigema obulwadde buno gyeriri era mu mawanga agamu kiba kya buwaze eri abatambuze (abalambuzi) okugemebwa. Enkola endala ez’okwewalamu omusujja guno, kuliko okutta ensiri ezibusaasaanya. Yo mu bifo ewali abalwadde abangi ng’ate tewaaliyo kugema, abalwadde bakeberebwa mangu era n’okugema abantu mu bungi kikorebwa okwongera okubuziyiza. Eyo mu bitundu gye buba bukutte ennyo ate abantu ne batafuna bujjanjabi, abalwadde ebitundu ataano ku buli kikumi bafa.
r3cvt171ib71zf2blljp4kkcf6yxbw3
74420
74419
2026-09-10T15:27:23Z
B722N
6898
reverting the test edit Undid revision [[Special:Diff/74419|74419]] by [[Special:Contributions/B722N|B722N]] ([[User talk:B722N|talk]])
74420
wikitext
text/x-wiki
__FORCETOC__
[[File:YellowFeverVirus.jpg|thumb|YellowFeverVirus]]
=== Obubonero n’enfaanana ===
Buno bulwadde obuleetebwa akawuka era nga butera okujja n’obubonero okuli: omusujja, obutayagala kulya, okusinduukirirwa emmeeme, okulumizibwa mu nnyingo, omutwe oguluma. Obubonero buno businga kweyolekera mu nnaku ezitasukka ttaano, kyoka mu bantu abamu, mu lunaku obulwadde buno we bweyongera, bafuna omusujja mungi, olubuto oluluma n’okukosa ekibumba kutandika ekireetera olususu okufuuka olwa kyenvu. Kino bwe kibaawo , olwo n’akatyabaga k’okuvaamu omusaayi wamu n’okulwala kwensigo kweyongera.
=== Ekibuleeta ===
Obulwadde buno buleetebwa akawuka akayitibwa yellow fever virus era ne kasaasaanyizibwa ensiri enkazi, singa eluma omuntu.Obulwadde buno bukwata bantu,ebisolo ebirala ebigwa mu luse lw’abantu n’ebimu ku bika byensiri.Obulwadde buno bwandiba obuzibu bw’okuzuulirawo, okujjako ng’omuntu amaze kufuna bubonero obwo waggulu, era okubukakasa omulwadde bamala kumujjako omusaayi ne gukeberebwa.
=== Okugema ===
Lyo eddagala erigema obulwadde buno gyeriri era mu mawanga agamu kiba kya buwaze eri abatambuze (abalambuzi) okugemebwa. Enkola endala ez’okwewalamu omusujja guno, kuliko okutta ensiri ezibusaasaanya. Yo mu bifo ewali abalwadde abangi ng’ate tewaaliyo kugema, abalwadde bakeberebwa mangu era n’okugema abantu mu bungi kikorebwa okwongera okubuziyiza. Eyo mu bitundu gye buba bukutte ennyo ate abantu ne batafuna bujjanjabi, abalwadde ebitundu ataano ku buli kikumi bafa.
gvfhvqln3piljnage7r2u9xng11lqi5
Template:Tl
10
7769
74433
2019-06-06T23:58:20Z
4nn1l2
4271
Fulfilling [[Template:Edit request|edit request]] by [[User:Sarang|Sarang]].
74433
wikitext
text/x-wiki
<noinclude>{{protected template}}
</noinclude>{{T/main|{{{1|}}}
|{{{2|}}}
|{{{3|{{{lang|}}}}}}
|{{{4|}}}
|{{{5|}}}
|incl={{{incl|{{{i|3}}}}}}
|code={{{code|}}}
|link={{{link|}}}
|case={{{case|}}}
|i18n={{{i18n|}}}
|parm={{{parm|}}}
|full={{{full|}}}
|style={{{style|}}}
}}<noinclude>
{{documentation|Template:T/doc}}
</noinclude>
0shomsirl6ymjg2m0k9fmpuf2xg4ml3
74434
28362
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Template:Tl]]: Importing the Support template
28361
wikitext
text/x-wiki
#REDIRECT [[Template:Template link]]
{{Redirect category shell|
{{R from move}}
}}
p1dn3i2ckb7gtckkrbn0xh6ckx8nei1
Derrick Nyeko
0
8106
74660
74327
2026-09-10T15:44:26Z
Berniter
10779
/* Obuvo n'okusoma */
74660
wikitext
text/x-wiki
{{Databox}}
'''Derrick Nyeko Keko''' (yazaalibwa 1992),Munnayuganda Munnabyabufuzi, omulimi era yaliko omubaka wa paalamenti mu paalamenti ya Uganda ey'ekkumi nemu (2021-2026)akiikirira Buvanjuba bwa Makindye.Minisita ow'ekisiikirize ow'ensonga z'obwapulezidenti n'ebyokerinda (2021-2024) era yaliko Minisita w'ekisiikirize ow'ebyokwerinda n'ensonga z'abaazirwanako (2024-2026).Mufumbo ne Ruth Kirabo Nyeko.Mmemba w'ekiibina ekivuganya gavumenti ekya National Unity Platform(NUP)era nga muwagizi wa people power,Our power Movement.Gyebuvuddeko yali akolagana n’ekibiina ekiri mubuyinza ekya National Resistance Movement (NRM).
== Omulimu ==
Nyeko yaweerezako nga Ssaabawandiisi w'ensonga z'abayizi mu Kakiiko k’abuvubuka aka Youth for market zone 2011.Oluvannyuma mu mwaka gwe gumu yalondebwa nga Ssabawandiisi w'ekibiina kya Buganda youth Council ku parish level nga Omuwandiisi w’Okumanyisa abantu.Era yaweerezaako nga kansala w’Abavubuka mu Makindye Urban Council era ng'Omuwandiisi wa NRM Youth Council mu Kampala, ekifo kino kyaleetawo obutakkaanya kubanga , kubanga yalabikanga ng’ali mu bibiina by’obufuzi bibiri,NRM ekibiina ekiri mu buyinza n'ekya National Unity Platform (NUP) ekiri ku ludda oluvuganya.Nyeko yava mu National Resistance Movement (NRM) n'agenda mu National Unity Platform (NUP) ng'awakanya okuggyawo ekkomo ku myaka gya pulezidenti ekyandireetedde Museveni okusigala mu buyinza okumala emyaka egisukka mu asatu mwetaano.
Nyeko yava mu National Resistance Movement (NRM) n'agenda mu National Unity Platform (NUP) ng'awakanya okuggyawo ekkomo ku myaka gya pulezidenti ekyandireetedde Museveni okusigala mu buyinza okumala emyaka egisukka mu 35.Oluvannyuma yeesimbawo ku kifo ky'omubaka wa paalamenti ow'Amambuka Makindye era n'awangula eyali mu kifo ekyo Hon. Ibrahim Kasozi owa FDC, ekibiina ekirala ekiri ku ludda oluvuganya Gavumenti.Oluvannyuma yalondebwa nga Ssaabaminisita ow'ekisiikirize era ow'eby'okwerinda mu kabineti ey'ekisiikirize nga yalondebwa omukulembeze w'oludda oluvuganya gavumenti Hon. Mathias Mpuuga.
Yava mu lwokaano lwa 2026 wakati mu ntalo za NUP
[[File:Nyeko Derrick.jpg|left|thumb|Nyeko Derrick.jpg]]
== Okukwatibwa ==
Nyeko yakwatibwa era n'ateebwa emirundi egiwerako mu kunoonya akalulu k'omubaka wa Paalamenti,wamu n’omukulembeze wa NUP Bobi Wine mu kunoonya akalulu k'obwa pulezidenti ne mu kwekalakaasa olw'abawagizi b'oludda oluvuganya gavumenti ababula.
== Obuvo n'okusoma ==
Nyeko yazaalibwa mu ddwaliro ly'e Nsambya mu Kampala 1992 eri abazadde Abajapadhola, omwami. Paineto Ofumbi n'Omukyala we Florence Ofumbi.
== Ebijuliriziddwamu ==
{{Reflist}}
== Ewalala w'osobola okubigya ==
* MorningXpress - Annatalia Oze as she hosts Hon.Derrick Nyeko to tell us his journey into leadership
[[Category:Bannabyabufuzi mu Uganda]]
[[Category:Baminisita ba Uganda]]
[[Category:Buganda]]
gqa2uk5uo3ljzobolq1yzgq6mcky3we
Bethlehem Tilahun Alemu
0
8187
74677
72784
2026-09-10T20:13:08Z
Kisakye Jane
9195
Nterezeezamu mu mpadiika.
74677
wikitext
text/x-wiki
{{Databox}}
'''Bethlehem Tilahun Alemu''' (yazaalibwa 1980) [[:en:Businesswoman|mukyala musuubuzi]] okuva mu ggwanga lya [[:en:Ethiopians|Ethiopia]] , ye nannyini wa soleRebels, kkampuni [[:en:Footwear|y'engatto]] ekulira ku musinde ogwa waggulu mu Afrika . Bethlehem afunye [[:en:Bethlehem_Tilahun_Alemu#Honors_and_accolades|engule]] [[:en:Bethlehem_Tilahun_Alemu#Honors_and_accolades|n'ebirabo]] olw'obusobozi bwe okukulakulanya kkampuni wamu n'okukyusa ebyogerwa ku [[:en:Africa|Afrika]] okuba enjavu okudda ku mwoyo gw'bantu abaagala okutandiika bizinensi , abantu abalina obusobozi obw'enjawulo n'okwesobola mu by'ensimbi.<ref>{{Cite web |url=http://www.solerebels.com/pages/bethlehem-tilahun-alemu |title=Archive copy |access-date=2022-09-24 |archive-date=2014-07-17 |archive-url=https://web.archive.org/web/20140717132531/http://www.solerebels.com/pages/bethlehem-tilahun-alemu |url-status=dead }}</ref> Bethlehem yatongoza "The Republic of Leather", nga ekola emisono gy'amaliba emigundiivu,<ref>Alemu, Bethlehem Tilahun (April 9, 2014). "Exclusive: Introducing Republic of Leather". ''www.solerebels.com''. Retrieved 24 June 2014.</ref> ne "ennimiro ya kkaawa" yassaawo amaduuka okutumbula emmwanyi mu Ethiopia.<ref name=":0">{{Cite web |title=Bethlehem Tilahun Alemu, a Forbes 'World's 100 Most Powerful' Woman {{!}} The Next Women - Business Magazine |url=http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-url=https://web.archive.org/web/20140901145256/http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-date=2014-09-01 |access-date=2026-09-10 |website=www.thenextwomen.com |language=en}}</ref>
[[Category:Articles with hCards]]
[[Category:Omupiira mu Uganda]]
== OBUTO BWE ==
Bethlehem yazaalibwa Zenebework mu [[:en:Addis_Ababa|Addis Ababa]]. Bazadde be baakolanga mu ddwaliro lya kyalo . Alemu yasomera mu masomero ga gavumenti ku mutendera gwa pulayimale ne siniya oluvannyuma nasoma eby'okubalirira ebitabo mu [[:en:Unity_University|Unity University]],era naatikkirwa mu 2004.<ref>https://web.archive.org/web/20140924115935/http://www.ethiopianwomenunleashed.org/profile_detail.php?PId=54</ref>
Bethlehem ye munnabizinensi omukyala okuva mu Afrika eyasooka okusisinkana [[:en:Clinton_Global_Initiative|Clinton Global Initiative]] era yawangula okubeera omukyala Omufirika omusuubuzi asinze mu African Business Awards mu 2011.[https://en.wikipedia.org/wiki/Singapore]<ref name="Bethlehem Tilahun Alemu">https://www.weforum.org/people/bethlehem-tilahun-alemu/</ref>
== BIZINENSI Z'AKOZEEKO ==
Mu ntandiikwa ya 2005, Bethlehem yatandiika soleRebels okuwa abantu b'omukitundu kye emirimu egivaamu ensimbi wamu n'ebintu ebibalinanye . Okulaba nga abakugu mu mu by'emikono mu kitundu kya Zenebework abasinga tebaalinirako ddala mirimu ,yayagala ayolese obukugu bwabwe nga awa ab'omu kitundu kye emirimu.
Sole z'engato ze yazikolanga mu mipiira gya mmotoka emikadde .Leero , engatoze zirina sitoowa okwetoolola ensi okugeza mu mawanga nga [[Ethiopia]], [[:en:Singapore|Singapore]], [[:en:Switzerland|Switzerland]] and [[:en:Taiwan|Taiwan]].<ref>{{Cite web |url=https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |title=Archive copy |access-date=2022-09-24 |archive-date=2022-03-28 |archive-url=https://web.archive.org/web/20220328001025/https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |url-status=dead }}</ref>
Bethlehem yeenyumiriza mu busobozibwe okuba nga yasobola okukola erinnya mu nsi yonna erya soleRebels ne Garden of Coffee.
== EBYAFAAYO ==
Kkampuni yatandiika nga ekkolero etonotono ku ttaka eryali erya jjaja wa Bethlehem mu Zenebework.
SoleRebels etutumuse , n'abakozi abawera 300 mu Ethiopia,<ref>{{Cite web |url=https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |title=Archive copy |access-date=2022-09-24 |archive-date=2022-03-28 |archive-url=https://web.archive.org/web/20220328001025/https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |url-status=dead }}</ref> nga egabira ensi 30 ,era eguza market kingmakers Whole Foods, Urban Outfitters ne Amazon. Sitoowa z'obwanannyini ezitunda engatoze zaali ziteekebwateekebwa okuggulibwawo mu Austria, Switzerland, Taiwan, ne [[:en:United_Kingdom|UK]].<ref name="thenextwomen.com">https://web.archive.org/web/20140901145256/http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman</ref> Bethlehem yayagalanga nnyo okutondawo emirimu egikulakulanya talanta n'obukugu bw'abantu mu by'emikono n'obugagga obw'ensibo mu Ethiopia. Okulonda engato nga ekyamaguzi kya kkampuni kyajja luvannyuma . Bethlehem yeegombanga seleate oba barabasso, soole y'engatto ennansi ekolebwa mu mupiira omukadde ekoleddwa mu Ethopia era engato n'ezifuuka omulamwa kkampuni kweyasalawo okutambulira . .<ref name="thenextwomen.com" />
Mu 2016 kkampuni yatunda emigogo gy'engato 125,000 n'emirimu 1,200 jobs.<ref name=":0"/>
Mu 2014, Bethlehem yalangirira bizinensi empya , The Republic of Leather, ng'ayita ku mukutu gwa soleRebels . Bethlehem yazuula eby'amaguzi eby'ebbeeyi ebikoleddwa mu ddiba ebyali ku mutendera gwe gumu ne SoleRebels n'engato . The Republic of Leather etambulira ku musono omuguzi gwayagala nga ebitundu 5 % ku ssente ze basasula bigenda mu buyambi .
Mu 2017, "Garden of Coffee" yagattibwa ku zimu ku kampunize . Yatandiikika n'amaduuka mu Addis Ababa.
== Philosophy ==
Bethlehem yagenderera okusoomoza ebyogerwa ku [[:en:Africa|Afrika]] naddala , Ethiopia, "ng'awakanya ebigereesebwa nti Afrika n'Abafrika tebamanyi kutondawo kkubo libatuusa ku ku nkulakulana ."<ref name="TNW">Pitts, Beth; Alemu, Bethlehem Tilahun (February 21, 2013). "Bethlehem Tilahun Alemu, a Forbes 'World's 100 Most Powerful' Woman". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 1 September 2014. Retrieved 26 June 2014.</ref> Bethlehem akkiriza nti bannansi ba Ethiopia balina okugoberera endowooza zaabwe "abantu n'abayivu balina ebirubiirirwa mu kusoosowaza Ethiopia nga " eyeetaaga obuyambi" naddala okwagala "okuyamba" kye basobola okukola , nga Bethlehem bweyannyonnyola bwe yali abuuzibwa ebibuuzo ne ''The Next Woman''. Obuwanguzi bwa kkampuni mu nsi yonna nga soleRebels kiyamba okumalawo ebigereesebwa ekintu ekisobozesa [https://web.archive.org/web/20140901145256/http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman bannansi ba Ethiopia] okutereeza ekifaananyi kyeggwanga okwetoolola ensi .<ref name="TNW" />
== ENGULE N'EBIRABO BYAFUNYE ==
* Mu 2011 Bethlehem yalondebwa World Economic Forum nga omuwala omuto akulembedde mu nsi .<ref>Zopf, Yann. "World Economic Forum Announces Young Global Leaders 2011 (Africa)"</ref><ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Bethlehem yawandiikibwako mu katabo ka Forbes omu ku bakyala abato 20 abasinga amanyi mu Afrika mu 2011
* Mu 2012 Alemu yawandiikibwa ''Forbes'' 'Abantu 100 abasinga amaanyi ' n'awandiikibwako nga " Omukyala ow'okulabwa ."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2012 Bethlehem yawandiikibwako mu ''Business Insider'' ng'omu ku "Bakyala bannabizinensi 5 abasinga mu Afrika."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
** Mu 2012 Bethlehem yalongebwa Mayor Bloomberg mu NYC Venture Fellow by .<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2012 Bethlehem yalondebwa ''Arise'' Magazine's " Abakyala 100 ab'enkyukakyuka ," abatereeza Afrika.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yawandiikibwako nga #62 mu ''Fast Company'''s "Abantu 100 abasinga obuyiiya mu bizinensi 2013."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yali abudabuda emitima mu mwaka ogwo mu One Young World Summit.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yawandiikibwako mu ''Madame Figaro'''s "Abakyala 15 abafrika abasinga amaanyi."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yalondebwa okwegatta ku kakiiko aka Green Industry Platform, akategekeddwa United Nations Industrial Development Organization ne UN Environment Program.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yalondebwa abasomi ba ''The Guardian'' nga "Omukyala omufrika asinze okufuna mu bizinensi ye."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2014 Bethlehem yawandiikibwako ku CNN ng'omu ku bakyala bannabizinensi 12 abakyusizza engeri y'okukolamu bizinensi ."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
== EBIJULIZIDDWAMU ==
{{Reflist|30em}}
m7rzcd00vo5o2lbgtqi131bk0c1vwss
74678
74677
2026-09-10T20:17:16Z
Kisakye Jane
9195
Nterezeeza mu ndabika y′ekiwandiiko.
74678
wikitext
text/x-wiki
{{Databox}}
'''Bethlehem Tilahun Alemu''' (yazaalibwa 1980) [[:en:Businesswoman|mukyala musuubuzi]] okuva mu ggwanga lya [[:en:Ethiopians|Ethiopia]] , ye nannyini wa soleRebels, kkampuni [[:en:Footwear|y'engatto]] ekulira ku musinde ogwa waggulu mu Afrika . Bethlehem afunye [[:en:Bethlehem_Tilahun_Alemu#Honors_and_accolades|engule]] [[:en:Bethlehem_Tilahun_Alemu#Honors_and_accolades|n'ebirabo]] olw'obusobozi bwe okukulakulanya kkampuni wamu n'okukyusa ebyogerwa ku [[:en:Africa|Afrika]] okuba enjavu okudda ku mwoyo gw'bantu abaagala okutandiika bizinensi , abantu abalina obusobozi obw'enjawulo n'okwesobola mu by'ensimbi.<ref>{{Cite web |url=http://www.solerebels.com/pages/bethlehem-tilahun-alemu |title=Archive copy |access-date=2022-09-24 |archive-date=2014-07-17 |archive-url=https://web.archive.org/web/20140717132531/http://www.solerebels.com/pages/bethlehem-tilahun-alemu |url-status=dead }}</ref> Bethlehem yatongoza "The Republic of Leather", nga ekola emisono gy'amaliba emigundiivu,<ref>Alemu, Bethlehem Tilahun (April 9, 2014). "Exclusive: Introducing Republic of Leather". ''www.solerebels.com''. Retrieved 24 June 2014.</ref> ne "ennimiro ya kkaawa" yassaawo amaduuka okutumbula emmwanyi mu Ethiopia.<ref name=":0">{{Cite web |title=Bethlehem Tilahun Alemu, a Forbes 'World's 100 Most Powerful' Woman {{!}} The Next Women - Business Magazine |url=http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-url=https://web.archive.org/web/20140901145256/http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-date=2014-09-01 |access-date=2026-09-10 |website=www.thenextwomen.com |language=en}}</ref>
[[Category:Articles with hCards]]
[[Category:Omupiira mu Uganda]]
== OBUTO BWE ==
Bethlehem yazaalibwa Zenebework mu [[:en:Addis_Ababa|Addis Ababa]]. Bazadde be baakolanga mu ddwaliro lya kyalo . Alemu yasomera mu masomero ga gavumenti ku mutendera gwa pulayimale ne siniya oluvannyuma nasoma eby'okubalirira ebitabo mu [[:en:Unity_University|Unity University]],era naatikkirwa mu 2004.<ref>{{Cite web |title=Ethiopian Women Unleashed {{!}} Profiles |url=http://www.ethiopianwomenunleashed.org/profile_detail.php?PId=54 |archive-url=https://web.archive.org/web/20140924115935/http://www.ethiopianwomenunleashed.org/profile_detail.php?PId=54 |archive-date=2014-09-24 |access-date=2026-09-10 |website=www.ethiopianwomenunleashed.org}}</ref>
Bethlehem ye munnabizinensi omukyala okuva mu Afrika eyasooka okusisinkana [[:en:Clinton_Global_Initiative|Clinton Global Initiative]] era yawangula okubeera omukyala Omufirika omusuubuzi asinze mu African Business Awards mu 2011.[https://en.wikipedia.org/wiki/Singapore]<ref name="Bethlehem Tilahun Alemu">{{Cite web |title=Bethlehem Tilahun Alemu |url=https://www.weforum.org/people/bethlehem-tilahun-alemu/ |archive-url=http://web.archive.org/web/20250319054915/https://www.weforum.org/people/bethlehem-tilahun-alemu/ |archive-date=2025-03-19 |access-date=2026-09-10 |website=World Economic Forum |language=en}}</ref>
== BIZINENSI Z'AKOZEEKO ==
Mu ntandiikwa ya 2005, Bethlehem yatandiika soleRebels okuwa abantu b'omukitundu kye emirimu egivaamu ensimbi wamu n'ebintu ebibalinanye . Okulaba nga abakugu mu mu by'emikono mu kitundu kya Zenebework abasinga tebaalinirako ddala mirimu ,yayagala ayolese obukugu bwabwe nga awa ab'omu kitundu kye emirimu.
Sole z'engato ze yazikolanga mu mipiira gya mmotoka emikadde .Leero , engatoze zirina sitoowa okwetoolola ensi okugeza mu mawanga nga [[Ethiopia]], [[:en:Singapore|Singapore]], [[:en:Switzerland|Switzerland]] and [[:en:Taiwan|Taiwan]].<ref>{{Cite web |url=https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |title=Archive copy |access-date=2022-09-24 |archive-date=2022-03-28 |archive-url=https://web.archive.org/web/20220328001025/https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |url-status=dead }}</ref>
Bethlehem yeenyumiriza mu busobozibwe okuba nga yasobola okukola erinnya mu nsi yonna erya soleRebels ne Garden of Coffee.
== EBYAFAAYO ==
Kkampuni yatandiika nga ekkolero etonotono ku ttaka eryali erya jjaja wa Bethlehem mu Zenebework.
SoleRebels etutumuse , n'abakozi abawera 300 mu Ethiopia,<ref>{{Cite web |url=https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |title=Archive copy |access-date=2022-09-24 |archive-date=2022-03-28 |archive-url=https://web.archive.org/web/20220328001025/https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |url-status=dead }}</ref> nga egabira ensi 30 ,era eguza market kingmakers Whole Foods, Urban Outfitters ne Amazon. Sitoowa z'obwanannyini ezitunda engatoze zaali ziteekebwateekebwa okuggulibwawo mu Austria, Switzerland, Taiwan, ne [[:en:United_Kingdom|UK]].<ref name="thenextwomen.com">{{Cite web |title=Bethlehem Tilahun Alemu, a Forbes 'World's 100 Most Powerful' Woman {{!}} The Next Women - Business Magazine |url=http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-url=https://web.archive.org/web/20140901145256/http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-date=2014-09-01 |access-date=2026-09-10 |website=www.thenextwomen.com |language=en}}</ref> Bethlehem yayagalanga nnyo okutondawo emirimu egikulakulanya talanta n'obukugu bw'abantu mu by'emikono n'obugagga obw'ensibo mu Ethiopia. Okulonda engato nga ekyamaguzi kya kkampuni kyajja luvannyuma . Bethlehem yeegombanga seleate oba barabasso, soole y'engatto ennansi ekolebwa mu mupiira omukadde ekoleddwa mu Ethopia era engato n'ezifuuka omulamwa kkampuni kweyasalawo okutambulira . .<ref name="thenextwomen.com" />
Mu 2016 kkampuni yatunda emigogo gy'engato 125,000 n'emirimu 1,200 jobs.<ref name=":0"/>
Mu 2014, Bethlehem yalangirira bizinensi empya , The Republic of Leather, ng'ayita ku mukutu gwa soleRebels . Bethlehem yazuula eby'amaguzi eby'ebbeeyi ebikoleddwa mu ddiba ebyali ku mutendera gwe gumu ne SoleRebels n'engato . The Republic of Leather etambulira ku musono omuguzi gwayagala nga ebitundu 5 % ku ssente ze basasula bigenda mu buyambi .
Mu 2017, "Garden of Coffee" yagattibwa ku zimu ku kampunize . Yatandiikika n'amaduuka mu Addis Ababa.
== Philosophy ==
Bethlehem yagenderera okusoomoza ebyogerwa ku [[:en:Africa|Afrika]] naddala , Ethiopia "ng'awakanya ebigereesebwa nti Afrika n'Abafrika tebamanyi kutondawo kkubo libatuusa ku ku nkulakulana."<ref name="TNW">Pitts, Beth; Alemu, Bethlehem Tilahun (February 21, 2013). "Bethlehem Tilahun Alemu, a Forbes 'World's 100 Most Powerful' Woman". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 1 September 2014. Retrieved 26 June 2014.</ref> Bethlehem akkiriza nti bannansi ba Ethiopia balina okugoberera endowooza zaabwe "abantu n'abayivu balina ebirubiirirwa mu kusoosowaza Ethiopia nga " eyeetaaga obuyambi" naddala okwagala "okuyamba" kye basobola okukola, nga Bethlehem bweyannyonnyola bwe yali abuuzibwa ebibuuzo ne ''The Next Woman''. Obuwanguzi bwa kkampuni mu nsi yonna nga soleRebels kiyamba okumalawo ebigereesebwa ekintu ekisobozesa bannansi ba Ethiopia okutereeza ekifaananyi kyeggwanga okwetoolola ensi.<ref name="TNW" />
== ENGULE N'EBIRABO BYAFUNYE ==
* Mu 2011 Bethlehem yalondebwa World Economic Forum nga omuwala omuto akulembedde mu nsi .<ref>Zopf, Yann. "World Economic Forum Announces Young Global Leaders 2011 (Africa)"</ref><ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Bethlehem yawandiikibwako mu katabo ka Forbes omu ku bakyala abato 20 abasinga amanyi mu Afrika mu 2011
* Mu 2012 Alemu yawandiikibwa ''Forbes'' 'Abantu 100 abasinga amaanyi ' n'awandiikibwako nga " Omukyala ow'okulabwa ."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2012 Bethlehem yawandiikibwako mu ''Business Insider'' ng'omu ku "Bakyala bannabizinensi 5 abasinga mu Afrika."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
** Mu 2012 Bethlehem yalongebwa Mayor Bloomberg mu NYC Venture Fellow by .<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2012 Bethlehem yalondebwa ''Arise'' Magazine's " Abakyala 100 ab'enkyukakyuka ," abatereeza Afrika.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yawandiikibwako nga #62 mu ''Fast Company'''s "Abantu 100 abasinga obuyiiya mu bizinensi 2013."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yali abudabuda emitima mu mwaka ogwo mu One Young World Summit.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yawandiikibwako mu ''Madame Figaro'''s "Abakyala 15 abafrika abasinga amaanyi."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yalondebwa okwegatta ku kakiiko aka Green Industry Platform, akategekeddwa United Nations Industrial Development Organization ne UN Environment Program.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yalondebwa abasomi ba ''The Guardian'' nga "Omukyala omufrika asinze okufuna mu bizinensi ye."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2014 Bethlehem yawandiikibwako ku CNN ng'omu ku bakyala bannabizinensi 12 abakyusizza engeri y'okukolamu bizinensi ."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
== EBIJULIZIDDWAMU ==
{{Reflist|30em}}
4q29qjmpq8og023tcpeibnqblqhnvpi
74679
74678
2026-09-10T20:20:52Z
Kisakye Jane
9195
Ntaddemu ebijuliziddwa.
74679
wikitext
text/x-wiki
{{Databox}}
'''Bethlehem Tilahun Alemu''' (yazaalibwa 1980) [[:en:Businesswoman|mukyala musuubuzi]] okuva mu ggwanga lya [[:en:Ethiopians|Ethiopia]] , ye nannyini wa soleRebels, kkampuni [[:en:Footwear|y'engatto]] ekulira ku musinde ogwa waggulu mu Afrika . Bethlehem afunye [[:en:Bethlehem_Tilahun_Alemu#Honors_and_accolades|engule]] [[:en:Bethlehem_Tilahun_Alemu#Honors_and_accolades|n'ebirabo]] olw'obusobozi bwe okukulakulanya kkampuni wamu n'okukyusa ebyogerwa ku [[:en:Africa|Afrika]] okuba enjavu okudda ku mwoyo gw'bantu abaagala okutandiika bizinensi , abantu abalina obusobozi obw'enjawulo n'okwesobola mu by'ensimbi.<ref>{{Cite web |url=http://www.solerebels.com/pages/bethlehem-tilahun-alemu |title=Archive copy |access-date=2022-09-24 |archive-date=2014-07-17 |archive-url=https://web.archive.org/web/20140717132531/http://www.solerebels.com/pages/bethlehem-tilahun-alemu |url-status=dead }}</ref> Bethlehem yatongoza "The Republic of Leather", nga ekola emisono gy'amaliba emigundiivu,<ref>Alemu, Bethlehem Tilahun (April 9, 2014). "Exclusive: Introducing Republic of Leather". ''www.solerebels.com''. Retrieved 24 June 2014.</ref> ne "ennimiro ya kkaawa" yassaawo amaduuka okutumbula emmwanyi mu Ethiopia.<ref name=":0">{{Cite web |title=Bethlehem Tilahun Alemu, a Forbes 'World's 100 Most Powerful' Woman {{!}} The Next Women - Business Magazine |url=http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-url=https://web.archive.org/web/20140901145256/http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-date=2014-09-01 |access-date=2026-09-10 |website=www.thenextwomen.com |language=en}}</ref>
[[Category:Articles with hCards]]
[[Category:Omupiira mu Uganda]]
== OBUTO BWE ==
Bethlehem yazaalibwa Zenebework mu [[:en:Addis_Ababa|Addis Ababa]]. Bazadde be baakolanga mu ddwaliro lya kyalo . Alemu yasomera mu masomero ga gavumenti ku mutendera gwa pulayimale ne siniya oluvannyuma nasoma eby'okubalirira ebitabo mu [[:en:Unity_University|Unity University]],era naatikkirwa mu 2004.<ref>{{Cite web |title=Ethiopian Women Unleashed {{!}} Profiles |url=http://www.ethiopianwomenunleashed.org/profile_detail.php?PId=54 |archive-url=https://web.archive.org/web/20140924115935/http://www.ethiopianwomenunleashed.org/profile_detail.php?PId=54 |archive-date=2014-09-24 |access-date=2026-09-10 |website=www.ethiopianwomenunleashed.org}}</ref>
Bethlehem ye munnabizinensi omukyala okuva mu Afrika eyasooka okusisinkana [[:en:Clinton_Global_Initiative|Clinton Global Initiative]] era yawangula okubeera omukyala Omufirika omusuubuzi asinze mu African Business Awards mu 2011.[https://en.wikipedia.org/wiki/Singapore]<ref name="Bethlehem Tilahun Alemu">{{Cite web |title=Bethlehem Tilahun Alemu |url=https://www.weforum.org/people/bethlehem-tilahun-alemu/ |archive-url=http://web.archive.org/web/20250319054915/https://www.weforum.org/people/bethlehem-tilahun-alemu/ |archive-date=2025-03-19 |access-date=2026-09-10 |website=World Economic Forum |language=en}}</ref>
== BIZINENSI Z'AKOZEEKO ==
Mu ntandiikwa ya 2005, Bethlehem yatandiika soleRebels okuwa abantu b'omukitundu kye emirimu egivaamu ensimbi wamu n'ebintu ebibalinanye . Okulaba nga abakugu mu mu by'emikono mu kitundu kya Zenebework abasinga tebaalinirako ddala mirimu ,yayagala ayolese obukugu bwabwe nga awa ab'omu kitundu kye emirimu.
Sole z'engato ze yazikolanga mu mipiira gya mmotoka emikadde .Leero , engatoze zirina sitoowa okwetoolola ensi okugeza mu mawanga nga [[Ethiopia]], [[:en:Singapore|Singapore]], [[:en:Switzerland|Switzerland]] and [[:en:Taiwan|Taiwan]].<ref>{{Cite web |url=https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |title=Archive copy |access-date=2022-09-24 |archive-date=2022-03-28 |archive-url=https://web.archive.org/web/20220328001025/https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |url-status=dead }}</ref>
Bethlehem yeenyumiriza mu busobozibwe okuba nga yasobola okukola erinnya mu nsi yonna erya soleRebels ne Garden of Coffee.
== EBYAFAAYO ==
Kkampuni yatandiika nga ekkolero etonotono ku ttaka eryali erya jjaja wa Bethlehem mu Zenebework.
SoleRebels etutumuse , n'abakozi abawera 300 mu Ethiopia,<ref>{{Cite web |url=https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |title=Archive copy |access-date=2022-09-24 |archive-date=2022-03-28 |archive-url=https://web.archive.org/web/20220328001025/https://www.howwemadeitinafrica.com/journey-far-bethlehem-tilahun-alemu-founder-solerebels/60760/ |url-status=dead }}</ref> nga egabira ensi 30 ,era eguza market kingmakers Whole Foods, Urban Outfitters ne Amazon. Sitoowa z'obwanannyini ezitunda engatoze zaali ziteekebwateekebwa okuggulibwawo mu Austria, Switzerland, Taiwan, ne [[:en:United_Kingdom|UK]].<ref name="thenextwomen.com">{{Cite web |title=Bethlehem Tilahun Alemu, a Forbes 'World's 100 Most Powerful' Woman {{!}} The Next Women - Business Magazine |url=http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-url=https://web.archive.org/web/20140901145256/http://www.thenextwomen.com/2013/02/21/bethlehem-tilahun-alemu-forbes-worlds-100-most-powerful-woman |archive-date=2014-09-01 |access-date=2026-09-10 |website=www.thenextwomen.com |language=en}}</ref> Bethlehem yayagalanga nnyo okutondawo emirimu egikulakulanya talanta n'obukugu bw'abantu mu by'emikono n'obugagga obw'ensibo mu Ethiopia. Okulonda engato nga ekyamaguzi kya kkampuni kyajja luvannyuma . Bethlehem yeegombanga seleate oba barabasso, soole y'engatto ennansi ekolebwa mu mupiira omukadde ekoleddwa mu Ethopia era engato n'ezifuuka omulamwa kkampuni kweyasalawo okutambulira.<ref name="thenextwomen.com" />
Mu 2016 kkampuni yatunda emigogo gy'engato 125,000 n'emirimu 1,200 jobs.<ref name=":0"/>
Mu 2014, Bethlehem yalangirira bizinensi empya , The Republic of Leather, ng'ayita ku mukutu gwa soleRebels . Bethlehem yazuula eby'amaguzi eby'ebbeeyi ebikoleddwa mu ddiba ebyali ku mutendera gwe gumu ne SoleRebels n'engato . The Republic of Leather etambulira ku musono omuguzi gwayagala nga ebitundu 5 % ku ssente ze basasula bigenda mu buyambi .
Mu 2017, "Garden of Coffee" yagattibwa ku zimu ku kampunize . Yatandiikika n'amaduuka mu Addis Ababa.
== Philosophy ==
Bethlehem yagenderera okusoomoza ebyogerwa ku [[:en:Africa|Afrika]] naddala , Ethiopia "ng'awakanya ebigereesebwa nti Afrika n'Abafrika tebamanyi kutondawo kkubo libatuusa ku ku nkulakulana."<ref name="TNW">Pitts, Beth; Alemu, Bethlehem Tilahun (February 21, 2013). "Bethlehem Tilahun Alemu, a Forbes 'World's 100 Most Powerful' Woman". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 1 September 2014. Retrieved 26 June 2014.</ref> Bethlehem akkiriza nti bannansi ba Ethiopia balina okugoberera endowooza zaabwe "abantu n'abayivu balina ebirubiirirwa mu kusoosowaza Ethiopia nga " eyeetaaga obuyambi" naddala okwagala "okuyamba" kye basobola okukola, nga Bethlehem bweyannyonnyola bwe yali abuuzibwa ebibuuzo ne ''The Next Woman''. Obuwanguzi bwa kkampuni mu nsi yonna nga soleRebels kiyamba okumalawo ebigereesebwa ekintu ekisobozesa bannansi ba Ethiopia okutereeza ekifaananyi kyeggwanga okwetoolola ensi.<ref name="TNW" />
== ENGULE N'EBIRABO BYAFUNYE ==
* Mu 2011 Bethlehem yalondebwa World Economic Forum nga omuwala omuto akulembedde mu nsi.<ref>Zopf, Yann. "World Economic Forum Announces Young Global Leaders 2011 (Africa)"</ref><ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Bethlehem yawandiikibwako mu katabo ka Forbes omu ku bakyala abato 20 abasinga amanyi mu Afrika mu 2011
* Mu 2012 Alemu yawandiikibwa ''Forbes'' 'Abantu 100 abasinga amaanyi ' n'awandiikibwako nga " Omukyala ow'okulabwa ."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2012 Bethlehem yawandiikibwako mu ''Business Insider'' ng'omu ku "Bakyala bannabizinensi 5 abasinga mu Afrika."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
** Mu 2012 Bethlehem yalongebwa Mayor Bloomberg mu NYC Venture Fellow by.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2012 Bethlehem yalondebwa ''Arise'' Magazine's " Abakyala 100 ab'enkyukakyuka ," abatereeza Afrika.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yawandiikibwako nga #62 mu ''Fast Company'''s "Abantu 100 abasinga obuyiiya mu 2013."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yali abudabuda emitima mu mwaka ogwo mu One Young World Summit.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yawandiikibwako mu ''Madame Figaro'''s "Abakyala 15 abafrika abasinga amaanyi."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yalondebwa okwegatta ku kakiiko aka Green Industry Platform, akategekeddwa United Nations Industrial Development Organization ne UN Environment Program.<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2013 Bethlehem yalondebwa abasomi ba ''The Guardian'' nga "Omukyala omufrika asinze okufuna mu bizinensi ye."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
* Mu 2014 Bethlehem yawandiikibwako ku CNN ng'omu ku bakyala bannabizinensi 12 abakyusizza engeri y'okukolamu bizinensi ."<ref>"Bethlehem Tilahun Alemu". ''www.thenextwoman.com''. The Next Woman. Archived from the original on 2 September 2014. Retrieved 25 June 2014.</ref>
== EBIJULIZIDDWAMU ==
{{Reflist|30em}}
bqii1rcb11sh1xp1cjgtllscka4sgkv
Module:Message box
828
9060
74437
35617
2025-01-03T22:26:40Z
Matrix
8894
add i18n
74437
Scribunto
text/plain
require('strict')
local getArgs
local yesno = require('Module:Yesno')
local err = require('Module:Error')
local TNT = require('Module:TNT')
local lang = mw.language.getContentLanguage()
local int_lang = mw.getCurrentFrame():preprocess('{{int:lang}}')
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'mbox', file = 'mbox', category = 'mbox', article = 'mbox', main = 'mbox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function errormsg(text)
-- create warning text
return err.error({tag="span", message=text})
end
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ambox
obj.cfg = cfg.mbox
end
elseif ns == 0 then
obj.cfg = cfg.mbox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.mbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.mbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.mbox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
self.typeImageNeedsLink = typeData.imageNeedsLink
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Set width
self.width = args.width
-- Set margin
self.margin = args.margin
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '45x45px'
self.imageLeft = string.format('[[File:%s|%s%s|alt=]]', self.typeImage
or 'Information icon4.svg', imageSize, self.typeImageNeedsLink and "" or "|link=" )
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
end
function MessageBox:setAllNamespaceCategories()
local cfg = self.cfg
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Message box parameter needs fixing', allSort)
end
-- Deprecate license type
if self.type == 'license' and cfg.deprecateLicense then
self:addCat('all', 'Licensing templates based on Mbox')
end
end
function MessageBox:setCategories()
if self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.width then
boxTable:cssText('width: ' .. self.width)
end
if self.margin then
boxTable:cssText('margin: 2px ' .. self.margin)
end
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(errormsg(TNT.formatInLanguage(int_lang, 'I18n/Message box', 'err-type', self.type or '')))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
c30e5jp4c5gz5h8tktwgw1wb2jywejl
74438
74220
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Module:Message_box]]: Importing the Support template
74219
Scribunto
text/plain
require('strict')
local getArgs
local yesno = require('Module:Yesno')
local lang = mw.language.getContentLanguage()
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
self.typeImageNeedsLink = typeData.imageNeedsLink
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Set the below row.
self.below = cfg.below and args.below
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
if self.below then
self:addClass('mbox-with-below')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Set image classes.
self.imageRightClass = args.imagerightclass or args.imageclass
self.imageLeftClass = args.imageleftclass or args.imageclass
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. (talk == '#' and '' or '#') .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s' .. (talk == '#' and '' or '#') .. '%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s%s|alt=]]', self.typeImage
or 'Information icon4.svg', imageSize, self.typeImageNeedsLink and "" or "|link=" )
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:exportDiv()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box.
local mbox = root:tag('div')
mbox:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
mbox:addClass(class or nil)
end
mbox
:cssText(self.style or nil)
if self.attrs then
mbox:attr(self.attrs)
end
local flex_container
if self.below then
-- we need to wrap the flex components (`image(right)` and `text`) in their
-- own container div to support the `below` parameter
flex_container = mw.html.create('div')
flex_container:addClass('mbox-flex')
else
-- the mbox itself is the parent, so we need no HTML flex_container
flex_container = mw.html.create()
end
-- Add the left-hand image.
if self.imageLeft then
local imageLeftCell = flex_container:tag('div'):addClass('mbox-image')
imageLeftCell
:addClass(self.imageLeftClass)
:wikitext(self.imageLeft or nil)
end
-- Add the text.
local textCell = flex_container:tag('div'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = flex_container:tag('div'):addClass('mbox-imageright')
imageRightCell
:addClass(self.imageRightClass)
:wikitext(self.imageRight or nil)
end
mbox:node(flex_container)
-- Add the below row.
if self.below then
mbox:tag('div')
:addClass('mbox-text mbox-below')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell
:addClass(self.imageLeftClass)
:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:addClass(self.imageRightClass)
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
-- DIV MIGRATION CONDITIONAL
if box.cfg.div_structure then
return box:exportDiv()
end
-- END DIV MIGRATION CONDITIONAL
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
ocboyo877qnpqum2b9fyiquh72vukqa
Module:Message box/configuration
828
9061
74443
35618
2024-12-18T20:50:14Z
Matrix
8894
Protected "[[Module:Message box/configuration]]": high risk ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74443
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css'
},
mbox = {
types = {
warning = {
class = 'mbox-warning',
image = 'Commons-emblem-late.svg'
},
speedy = {
class = 'mbox-speedy',
image = 'Commons-emblem-urgent.svg'
},
serious = {
class = 'mbox-serious',
image = 'Gnome-emblem-important.svg'
},
delete = {
class = 'mbox-delete',
image = 'Gnome-emblem-important.svg'
},
stop = {
class = 'mbox-stop',
image = 'Commons-emblem-hand.svg'
},
content = {
class = 'mbox-content',
image = 'Commons-emblem-issue.svg'
},
query = {
class = 'mbox-query',
image = 'Commons-emblem-query.svg'
},
issue = {
class = 'mbox-issue',
image = 'Commons-emblem-issue.svg'
},
style = {
class = 'mbox-style',
image = 'Gnome-edit-clear.svg'
},
move = {
class = 'mbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'mbox-protection',
image = 'Gnome-security-medium.svg'
},
license = {
class = 'mbox-license licensetpl',
image = 'Commons-emblem-copyright.svg'
},
legal = {
class = 'mbox-legal',
image = 'Commons-emblem-legal.svg'
},
honor = {
class = 'mbox-honor',
image = 'Gnome-help-about.svg'
},
growth = {
class = 'mbox-growth',
image = 'Dialog-apply.svg'
},
shit = {
class = 'mbox-shit',
image = 'OpenMoji-color 1F4A9.svg'
},
message = {
class = 'mbox-message',
image = 'Tango-style info icon.svg'
},
notice = {
class = 'mbox-notice',
image = 'Commons-emblem-notice.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'messagebox'},
allowSmall = true,
imageEmptyCell = true,
below = true,
deprecateLicense = true,
templateCategory = 'Main message boxes',
templatestyles = 'Module:Message box/mbox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
lr8hqsk3g1jt4lgc5h1hkuzw90vddob
74444
74222
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Module:Message_box/configuration]]: Importing the Support template
74221
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css',
div_structure = true,
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css',
div_structure = true,
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox-license.svg'
},
["license-related"] = {
class = 'imbox-license',
image = 'Imbox-license.svg'
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg',
imageNeedsLink = true
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css',
div_structure = true,
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
p36hrbxjy99m7clj64lhlint2en3bo0
Template:Hatnote
10
9066
74541
29384
2025-10-19T10:03:04Z
Tacsipacsi
2820
treat {{{lang}}} unambiguously as MediaWiki language code
74541
wikitext
text/x-wiki
<templatestyles src="Hatnote/styles.css" /><div role="note" class="hatnote {{#if: {{{class|}}} | {{{class|}}} }}" {{#if: {{{lang|}}} | lang="{{#bcp47:{{{lang|}}}}}" dir="{{#dir:{{{lang|}}}}}" }}>{{{1|}}}</div><noinclude>{{Documentation}}</noinclude>
hg4csq0ghs7k6lanz2vt1mpyjqfdflf
74542
74541
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Template:Hatnote]]: Importing the Support template
74541
wikitext
text/x-wiki
<templatestyles src="Hatnote/styles.css" /><div role="note" class="hatnote {{#if: {{{class|}}} | {{{class|}}} }}" {{#if: {{{lang|}}} | lang="{{#bcp47:{{{lang|}}}}}" dir="{{#dir:{{{lang|}}}}}" }}>{{{1|}}}</div><noinclude>{{Documentation}}</noinclude>
hg4csq0ghs7k6lanz2vt1mpyjqfdflf
Module:TNT
828
9100
74535
28312
2025-12-27T18:06:02Z
ExE Boss
6436
Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q28132212|master]] using [[mw:Synchronizer| #Synchronizer]]
74535
Scribunto
text/plain
--
-- INTRO: (!!! DO NOT RENAME THIS PAGE !!!)
-- This module allows any template or module to be copy/pasted between
-- wikis without any translation changes. All translation text is stored
-- in the global Data:*.tab pages on Commons, and used everywhere.
--
-- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules
--
-- ATTENTION:
-- Please do NOT rename this module - it has to be identical on all wikis.
-- This code is maintained at https://www.mediawiki.org/wiki/Module:TNT
-- Please do not modify it anywhere else, as it may get copied and override your changes.
-- Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT
--
-- DESCRIPTION:
-- The "msg" function uses a Commons dataset to translate a message
-- with a given key (e.g. source-table), plus optional arguments
-- to the wiki markup in the current content language.
-- Use lang=xx to set language. Example:
--
-- {{#invoke:TNT | msg
-- | I18n/Template:Graphs.tab <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab -->
-- | source-table <!-- uses a translation message with id = "source-table" -->
-- | param1 }} <!-- optional parameter -->
--
--
-- The "doc" function will generate the <templatedata> parameter documentation for templates.
-- This way all template parameters can be stored and localized in a single Commons dataset.
-- NOTE: "doc" assumes that all documentation is located in Data:Templatedata/* on Commons.
--
-- {{#invoke:TNT | doc | Graph:Lines }}
-- uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab
-- if the current page is Template:Graph:Lines/doc
--
local config = (function()
local ok, res = pcall(mw.loadData, "Module:TNT/config");
return ok and res or {};
end)();
local p = {}
local i18nDataset = 'I18n/Module:TNT.tab'
-- Forward declaration of the local functions
local sanitizeDataset, loadData, link, formatMessage
function p.msg(frame)
local dataset, id
local params = {}
local lang = nil
for k, v in pairs(frame.args) do
if k == 1 then
dataset = mw.text.trim(v)
elseif k == 2 then
id = mw.text.trim(v)
elseif type(k) == 'number' then
params[k - 2] = mw.text.trim(v)
elseif k == 'lang' and v ~= '_' then
lang = mw.text.trim(v)
end
end
return formatMessage(dataset, id, params, lang)
end
-- Identical to p.msg() above, but used from other lua modules
-- Parameters: name of dataset, message key, optional arguments
-- Example with 2 params: format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.format(dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('format', 1, dataset, 'string')
checkType('format', 2, key, 'string')
return formatMessage(dataset, key, {...})
end
-- Identical to p.msg() above, but used from other lua modules with the language param
-- Parameters: language code, name of dataset, message key, optional arguments
-- Example with 2 params: formatInLanguage('es', I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.formatInLanguage(lang, dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('formatInLanguage', 1, lang, 'string')
checkType('formatInLanguage', 2, dataset, 'string')
checkType('formatInLanguage', 3, key, 'string')
return formatMessage(dataset, key, {...}, lang)
end
-- Obsolete function that adds a 'c:' prefix to the first param.
-- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab'
function p.link(frame)
return link(frame.args[1])
end
local implGetTemplateData;
function p.doc(frame)
local dataset = sanitizeDataset(frame.args[1])
local json, dataPage, categories = implGetTemplateData(nil, dataset, frame.args)
return frame:extensionTag('templatedata', json) ..
formatMessage(i18nDataset, 'edit_doc', {link(dataPage)}) ..
(categories or "");
end
function p.getTemplateData(dataset)
local data = implGetTemplateData(true, dataset);
return data;
end
function p.getTemplateDataNew(...)
return implGetTemplateData(nil, ...);
end
function implGetTemplateData(legacy, dataset, args)
-- TODO: add '_' parameter once lua starts reindexing properly for "all" languages
local data, dataPage, categories = loadData(
dataset, nil, not legacy and 'TemplateData' or nil);
local names = {}
for _, field in ipairs(data.schema.fields) do
table.insert(names, field.name)
end
local numOnly = true
local params = {}
local paramOrder = {}
for _, row in ipairs(data.data) do
local newVal = {}
local name = nil
for pos, columnName in ipairs(names) do
if columnName == 'name' then
name = row[pos]
else
newVal[columnName] = row[pos]
end
end
if name then
if (
(type(name) ~= "number")
and (
(type(name) ~= "string")
or not string.match(name, "^%d+$")
)
) then
numOnly = false
end
params[name] = newVal
table.insert(paramOrder, name)
end
end
-- Work around json encoding treating {"1":{...}} as an [{...}]
if numOnly then
params['zzz123']=''
end
local json = mw.text.jsonEncode({
params=params,
paramOrder=paramOrder,
description=data.description,
-- TODO: Store this in a dataset:
format = (args and args.format or nil),
})
if numOnly then
json = string.gsub(json,'"zzz123":"",?', "")
end
return json, dataPage, categories;
end
-- Local functions
sanitizeDataset = function(dataset)
if not dataset then
return nil
end
dataset = mw.text.trim(dataset)
if dataset == '' then
return nil
elseif string.sub(dataset,-4) ~= '.tab' then
return dataset .. '.tab'
else
return dataset
end
end
loadData = function(dataset, lang, dataType)
dataset = sanitizeDataset(dataset)
if not dataset then
error(formatMessage(i18nDataset, 'error_no_dataset', {}))
end
-- 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
error(string.format([['''Missing JsonConfig extension, or not properly configured;
Cannot load https://commons.wikimedia.org/wiki/Data:%s.
See https://www.mediawiki.org/wiki/Extension:JsonConfig#Supporting_Wikimedia_templates''']], dataset))
end
local dataPage = dataset;
local data, categories;
if dataType == 'TemplateData' then
dataPage = 'TemplateData/' .. dataset;
data = mw.ext.data.get(dataPage, lang);
if data == false then
data = mw.ext.data.get('Templatedata/' .. dataset, lang);
if data ~= false then
local legacyTemplateDataCategoryName = config.legacyTemplateDataCategoryName;
if legacyTemplateDataCategoryName ~= false then
categories = string.format(
'[[Category:%s%s]]',
legacyTemplateDataCategoryName or "Templates using legacy global TemplateData table name",
config.translatableCategoryLink and mw.getCurrentFrame():callParserFunction("#translation:") or ""
);
end
dataPage = 'Templatedata/' .. dataset;
end
end
else
data = mw.ext.data.get(dataset, lang)
end
if data == false then
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Missing Commons dataset ' .. i18nDataset)
else
error(formatMessage(i18nDataset, 'error_bad_dataset', {link(dataPage)}))
end
end
return data, dataPage, categories;
end
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
link = function(dataset)
return 'c:Data:' .. mw.text.trim(dataset or '')
end
formatMessage = function(dataset, key, params, lang)
for _, row in pairs(loadData(dataset, lang).data) do
local id, msg = unpack(row)
if id == key then
local result = mw.message.newRawMessage(msg, unpack(params or {}))
return result:plain()
end
end
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Invalid message key "' .. key .. '"')
else
error(formatMessage(i18nDataset, 'error_bad_msgkey', {key, link(dataset)}))
end
end
return p
2ii65lh3z6ssbx7s7r8h0vsbnbhbiyl
74536
74535
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Module:TNT]]: Importing the Support template
74535
Scribunto
text/plain
--
-- INTRO: (!!! DO NOT RENAME THIS PAGE !!!)
-- This module allows any template or module to be copy/pasted between
-- wikis without any translation changes. All translation text is stored
-- in the global Data:*.tab pages on Commons, and used everywhere.
--
-- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules
--
-- ATTENTION:
-- Please do NOT rename this module - it has to be identical on all wikis.
-- This code is maintained at https://www.mediawiki.org/wiki/Module:TNT
-- Please do not modify it anywhere else, as it may get copied and override your changes.
-- Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT
--
-- DESCRIPTION:
-- The "msg" function uses a Commons dataset to translate a message
-- with a given key (e.g. source-table), plus optional arguments
-- to the wiki markup in the current content language.
-- Use lang=xx to set language. Example:
--
-- {{#invoke:TNT | msg
-- | I18n/Template:Graphs.tab <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab -->
-- | source-table <!-- uses a translation message with id = "source-table" -->
-- | param1 }} <!-- optional parameter -->
--
--
-- The "doc" function will generate the <templatedata> parameter documentation for templates.
-- This way all template parameters can be stored and localized in a single Commons dataset.
-- NOTE: "doc" assumes that all documentation is located in Data:Templatedata/* on Commons.
--
-- {{#invoke:TNT | doc | Graph:Lines }}
-- uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab
-- if the current page is Template:Graph:Lines/doc
--
local config = (function()
local ok, res = pcall(mw.loadData, "Module:TNT/config");
return ok and res or {};
end)();
local p = {}
local i18nDataset = 'I18n/Module:TNT.tab'
-- Forward declaration of the local functions
local sanitizeDataset, loadData, link, formatMessage
function p.msg(frame)
local dataset, id
local params = {}
local lang = nil
for k, v in pairs(frame.args) do
if k == 1 then
dataset = mw.text.trim(v)
elseif k == 2 then
id = mw.text.trim(v)
elseif type(k) == 'number' then
params[k - 2] = mw.text.trim(v)
elseif k == 'lang' and v ~= '_' then
lang = mw.text.trim(v)
end
end
return formatMessage(dataset, id, params, lang)
end
-- Identical to p.msg() above, but used from other lua modules
-- Parameters: name of dataset, message key, optional arguments
-- Example with 2 params: format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.format(dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('format', 1, dataset, 'string')
checkType('format', 2, key, 'string')
return formatMessage(dataset, key, {...})
end
-- Identical to p.msg() above, but used from other lua modules with the language param
-- Parameters: language code, name of dataset, message key, optional arguments
-- Example with 2 params: formatInLanguage('es', I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.formatInLanguage(lang, dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('formatInLanguage', 1, lang, 'string')
checkType('formatInLanguage', 2, dataset, 'string')
checkType('formatInLanguage', 3, key, 'string')
return formatMessage(dataset, key, {...}, lang)
end
-- Obsolete function that adds a 'c:' prefix to the first param.
-- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab'
function p.link(frame)
return link(frame.args[1])
end
local implGetTemplateData;
function p.doc(frame)
local dataset = sanitizeDataset(frame.args[1])
local json, dataPage, categories = implGetTemplateData(nil, dataset, frame.args)
return frame:extensionTag('templatedata', json) ..
formatMessage(i18nDataset, 'edit_doc', {link(dataPage)}) ..
(categories or "");
end
function p.getTemplateData(dataset)
local data = implGetTemplateData(true, dataset);
return data;
end
function p.getTemplateDataNew(...)
return implGetTemplateData(nil, ...);
end
function implGetTemplateData(legacy, dataset, args)
-- TODO: add '_' parameter once lua starts reindexing properly for "all" languages
local data, dataPage, categories = loadData(
dataset, nil, not legacy and 'TemplateData' or nil);
local names = {}
for _, field in ipairs(data.schema.fields) do
table.insert(names, field.name)
end
local numOnly = true
local params = {}
local paramOrder = {}
for _, row in ipairs(data.data) do
local newVal = {}
local name = nil
for pos, columnName in ipairs(names) do
if columnName == 'name' then
name = row[pos]
else
newVal[columnName] = row[pos]
end
end
if name then
if (
(type(name) ~= "number")
and (
(type(name) ~= "string")
or not string.match(name, "^%d+$")
)
) then
numOnly = false
end
params[name] = newVal
table.insert(paramOrder, name)
end
end
-- Work around json encoding treating {"1":{...}} as an [{...}]
if numOnly then
params['zzz123']=''
end
local json = mw.text.jsonEncode({
params=params,
paramOrder=paramOrder,
description=data.description,
-- TODO: Store this in a dataset:
format = (args and args.format or nil),
})
if numOnly then
json = string.gsub(json,'"zzz123":"",?', "")
end
return json, dataPage, categories;
end
-- Local functions
sanitizeDataset = function(dataset)
if not dataset then
return nil
end
dataset = mw.text.trim(dataset)
if dataset == '' then
return nil
elseif string.sub(dataset,-4) ~= '.tab' then
return dataset .. '.tab'
else
return dataset
end
end
loadData = function(dataset, lang, dataType)
dataset = sanitizeDataset(dataset)
if not dataset then
error(formatMessage(i18nDataset, 'error_no_dataset', {}))
end
-- 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
error(string.format([['''Missing JsonConfig extension, or not properly configured;
Cannot load https://commons.wikimedia.org/wiki/Data:%s.
See https://www.mediawiki.org/wiki/Extension:JsonConfig#Supporting_Wikimedia_templates''']], dataset))
end
local dataPage = dataset;
local data, categories;
if dataType == 'TemplateData' then
dataPage = 'TemplateData/' .. dataset;
data = mw.ext.data.get(dataPage, lang);
if data == false then
data = mw.ext.data.get('Templatedata/' .. dataset, lang);
if data ~= false then
local legacyTemplateDataCategoryName = config.legacyTemplateDataCategoryName;
if legacyTemplateDataCategoryName ~= false then
categories = string.format(
'[[Category:%s%s]]',
legacyTemplateDataCategoryName or "Templates using legacy global TemplateData table name",
config.translatableCategoryLink and mw.getCurrentFrame():callParserFunction("#translation:") or ""
);
end
dataPage = 'Templatedata/' .. dataset;
end
end
else
data = mw.ext.data.get(dataset, lang)
end
if data == false then
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Missing Commons dataset ' .. i18nDataset)
else
error(formatMessage(i18nDataset, 'error_bad_dataset', {link(dataPage)}))
end
end
return data, dataPage, categories;
end
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
link = function(dataset)
return 'c:Data:' .. mw.text.trim(dataset or '')
end
formatMessage = function(dataset, key, params, lang)
for _, row in pairs(loadData(dataset, lang).data) do
local id, msg = unpack(row)
if id == key then
local result = mw.message.newRawMessage(msg, unpack(params or {}))
return result:plain()
end
end
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Invalid message key "' .. key .. '"')
else
error(formatMessage(i18nDataset, 'error_bad_msgkey', {key, link(dataset)}))
end
end
return p
2ii65lh3z6ssbx7s7r8h0vsbnbhbiyl
Template:Documentation subpage
10
9136
74531
28404
2024-10-21T13:35:12Z
Matrix
8894
Restored revision 591762713 by [[Special:Contributions/ExE Boss|ExE Boss]] ([[User talk:ExE Boss|talk]])
74531
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{SUBPAGENAME}}|{{#ifeq:{{{1|}}}|override|{{SUBPAGENAME}}|doc}}|</includeonly><!-- show on doc pages only
-->{{#invoke:Autotranslate | autotranslate
|base = Documentation subpage
|lang = {{{lang|}}}
|page = {{#if:{{{page|}}}|{{{page|}}}|{{SUBJECTSPACE}}:{{BASEPAGENAME}}}}
}}<!--
--><includeonly>{{{category|[[Category:{{#switch:{{SUBJECTSPACE}}
| Template = Template
| Module = Module
| User = User
| #default = Template
}} documentation|{{PAGENAME}}]]__EXPECTED_UNCONNECTED_PAGE__}}}</includeonly><!--
--><includeonly>}}</includeonly><!-- show on doc pages only
--><noinclude>{{documentation}}</noinclude>
e1m6vc2tdw71dgnw3k58bhv9fdxxadi
74532
74286
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:Documentation_subpage]]: Importing the Support template
74285
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| <!--(this template has been transcluded on a /doc or /{{{override}}} page)-->
</includeonly><!--
-->{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=icon]]
| text =
{{strong|This is a [[Wikipedia:Template documentation|documentation subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}<br />It may contain usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}.
}}
}}<!--
-->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!--
--><includeonly>__EXPECTED_UNCONNECTED_PAGE__</includeonly><!--
-->{{#if:{{{nocat|}}}{{{inhibit|}}}|<!--(don't categorize)-->
|<includeonly><!--
-->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}<!--
--></includeonly>
}}<!--
(completing initial #ifeq: at start of template:)
--><includeonly>
| <!--(this template has not been transcluded on a /doc or /{{{override}}} page)-->
}}<!--
--></includeonly><noinclude>{{Documentation}}</noinclude>
iwz7dreef73y68fx96yxyj3ry6l1x58
Template:Tag
10
9149
74523
28434
2024-08-28T08:29:00Z
CptViraj
5275
Protected "[[Template:Tag]]": [[Special:MyLanguage/Commons:Protection policy|Widely used template]] ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74523
wikitext
text/x-wiki
{{#if:{{{plain|}}}|
|<code class="mw-highlight" style="{{#if:{{{wrap|}}}||white-space:nowrap}}">
}}{{#switch:{{{2|pair}}}
|c|close = <!--nothing-->
|s|single
|o|open
|p|pair = {{#tag:span|‎<|class="p"}}{{#tag:span|{{{1|tag}}}|class="nt"}}{{#if:{{{params|}}}| {{{params}}}}}
}}{{#switch:{{{2|pair}}}
|c|close = {{{content|}}}
|s|single =  {{#tag:span|/>|class="p"}}
|o|open = {{#tag:span|>|class="p"}}{{{content|}}}
|p|pair = {{#tag:span|>|class="p"}}{{{content|...}}}
}}{{#switch:{{{2|pair}}}
|s|single
|o|open = <!--nothing-->
|c|close
|p|pair = {{#tag:span|‎</|class="p"}}{{#tag:span|{{{1|tag}}}|class="nt"}}{{#tag:span|>|class="p"}}
}}{{#if:{{{plain|}}}|
|</code>
}}<noinclude>
{{Documentation}}
</noinclude>
fxkoeaewp3sxkblsyvrui5bt7264kv5
74524
74523
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:Tag]]: Importing the Support template
74523
wikitext
text/x-wiki
{{#if:{{{plain|}}}|
|<code class="mw-highlight" style="{{#if:{{{wrap|}}}||white-space:nowrap}}">
}}{{#switch:{{{2|pair}}}
|c|close = <!--nothing-->
|s|single
|o|open
|p|pair = {{#tag:span|‎<|class="p"}}{{#tag:span|{{{1|tag}}}|class="nt"}}{{#if:{{{params|}}}| {{{params}}}}}
}}{{#switch:{{{2|pair}}}
|c|close = {{{content|}}}
|s|single =  {{#tag:span|/>|class="p"}}
|o|open = {{#tag:span|>|class="p"}}{{{content|}}}
|p|pair = {{#tag:span|>|class="p"}}{{{content|...}}}
}}{{#switch:{{{2|pair}}}
|s|single
|o|open = <!--nothing-->
|c|close
|p|pair = {{#tag:span|‎</|class="p"}}{{#tag:span|{{{1|tag}}}|class="nt"}}{{#tag:span|>|class="p"}}
}}{{#if:{{{plain|}}}|
|</code>
}}<noinclude>
{{Documentation}}
</noinclude>
fxkoeaewp3sxkblsyvrui5bt7264kv5
Template:Tlf
10
9162
74501
2019-07-16T10:39:32Z
4nn1l2
4271
Changed protection level for "[[Template:Tlf]]": downgraded protection level per [[Special:Permalink/357548402|consensus]] ([Move=Allow only template editors and administrators] (indefinite) [Edit=Allow only template editors and administrators] (indefinite))
74501
wikitext
text/x-wiki
<span style="white-space:nowrap;">{{{{#if:{{{1|}}}|{{{1}}}| tlf|...}}<!--
-->{{#ifeq:{{{2|x}}}|{{{2|}}}| |{{{2}}} | }}<!--
-->{{#ifeq:{{{3|x}}}|{{{3|}}}| |{{{3}}} | }}<!--
-->{{#ifeq:{{{4|x}}}|{{{4|}}}| |{{{4}}} | }}<!--
-->{{#ifeq:{{{5|x}}}|{{{5|}}}| |{{{5}}} | }}<!--
-->{{#ifeq:{{{6|x}}}|{{{6|}}}| |{{{6}}} | }}<!--
-->{{#ifeq:{{{7|x}}}|{{{7|}}}| |{{{7}}} | }}<!--
-->{{#ifeq:{{{8|x}}}|{{{8|}}}| |{{{8}}} | }}<!--
-->{{#ifeq:{{{9|x}}}|{{{9|}}}| |{{{9}}} | }}<!--
-->}}</span><noinclude>
{{documentation}}
</noinclude>
szs1st0u3mutwf74am5cr29gflw966p
74502
28470
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Tlf]]: Importing the Support template
28469
wikitext
text/x-wiki
#REDIRECT [[Template:Template link with link off]]
{{Redirect category shell|
{{R from move}}
}}
9mrb4gzoa8i94zzxq5i6opzke6v5ntr
Template:Trim
10
9193
74431
2015-10-28T17:38:01Z
Steinsplitter
2263
Protected Template:Trim: used in widely used templates ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
74431
wikitext
text/x-wiki
{{#if:1|{{{1|}}}}}<noinclude>
{{documentation}}
[[Category:String manipulation templates]]
</noinclude>
9vpnwsb7oz3vf2cx26vtqtrsqjnbwbf
74432
28551
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Template:Trim]]: Importing the Support template
28550
wikitext
text/x-wiki
<includeonly>{{safesubst:#if:1|{{{1|}}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
757g7pokoq514f9oi2nwaddkdp2ohtn
Template:Resolved
10
9211
74493
28589
2025-05-31T17:13:53Z
Lucas Werkmeister
11746
fulfilling edit request by [[User:Saurmandal]] – add |hi=
74493
wikitext
text/x-wiki
<div class="resolved"><span style="border:1px solid #aaa; background:var(--background-color-neutral-subtle, #f8f9fa); color: inherit; padding:6px; margin-right:0.5em;">[[File:Yes check.svg|20px|link=]] '''{{LangSwitch|lang={{{lang|}}}
| ar = حُلَّت المُشكلة
| bn = মীমাংসিত
| cs = Vyřešeno
| de = Erledigt
| en = Resolved
| eo = Solvita
| es = Resuelto
| fa = حل شد
| fi = Ratkaistu
| gl = Resolto
| hi = हल हो गया
| hu = Megoldva
| it = Risolto
| ja = 解決済み
| ko = 해결됨
| mk = Разрешено
| ml = പരിഹരിച്ചു
| nl = Opgelost
| nn = Løyst
| pl = Załatwione
| prg= Papretta
| pt = Resolvido
| ru = Постановили
| ro = Rezolvat
| sco= Resolved
| sk = Vyriešené
| sl = Urejeno.
| sr = Решено
| sv = Löst
| th = เสร็จสิ้น <!-- ในตอนแรกตั้งใจจะแปลว่าเรียบร้อย แต่เห็นว่าการใช้งานคล้ายๆกันกับ Done จึงใช้ตัวนี้แทน -->
| tr = Çözüldü
| uk = Вирішено
|zh-hans=已解决
|zh-hant=已解決
|#default={{int:Feedback-close}}
}}'''</span>{{#if: {{{1|}}}|<small>{{{1}}}</small>}}</div><noinclude>
{{Documentation|Template:Polling template}}
</noinclude>
3fwsgq3fgoxehwdcrjg68ubqamb3pyw
74494
74493
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Resolved]]: Importing the Support template
74493
wikitext
text/x-wiki
<div class="resolved"><span style="border:1px solid #aaa; background:var(--background-color-neutral-subtle, #f8f9fa); color: inherit; padding:6px; margin-right:0.5em;">[[File:Yes check.svg|20px|link=]] '''{{LangSwitch|lang={{{lang|}}}
| ar = حُلَّت المُشكلة
| bn = মীমাংসিত
| cs = Vyřešeno
| de = Erledigt
| en = Resolved
| eo = Solvita
| es = Resuelto
| fa = حل شد
| fi = Ratkaistu
| gl = Resolto
| hi = हल हो गया
| hu = Megoldva
| it = Risolto
| ja = 解決済み
| ko = 해결됨
| mk = Разрешено
| ml = പരിഹരിച്ചു
| nl = Opgelost
| nn = Løyst
| pl = Załatwione
| prg= Papretta
| pt = Resolvido
| ru = Постановили
| ro = Rezolvat
| sco= Resolved
| sk = Vyriešené
| sl = Urejeno.
| sr = Решено
| sv = Löst
| th = เสร็จสิ้น <!-- ในตอนแรกตั้งใจจะแปลว่าเรียบร้อย แต่เห็นว่าการใช้งานคล้ายๆกันกับ Done จึงใช้ตัวนี้แทน -->
| tr = Çözüldü
| uk = Вирішено
|zh-hans=已解决
|zh-hant=已解決
|#default={{int:Feedback-close}}
}}'''</span>{{#if: {{{1|}}}|<small>{{{1}}}</small>}}</div><noinclude>
{{Documentation|Template:Polling template}}
</noinclude>
3fwsgq3fgoxehwdcrjg68ubqamb3pyw
Template:Str left
10
9576
74473
2016-05-02T13:27:20Z
Jarekt
11742
Fulfilling [[Template:Edit request|edit request]] by [[User:Riley Huntley|Riley Huntley]]. Thanks for helping!
74473
wikitext
text/x-wiki
<includeonly>{{ {{{|safesubst:}}}padleft:|{{{2|1}}}|{{{1}}}}}</includeonly><noinclude>
{{heavily used template}}
{{documentation}}
</noinclude>
tqfq8u3hctmwbhh4pvher9gkphm721b
74474
29018
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Template:Str_left]]: Importing the Support template
29017
wikitext
text/x-wiki
<includeonly>{{safesubst:padleft:|{{{2|1}}}|{{{1}}}}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
3rrdme1fpv80h1kdk9b7zwlkqd34dfk
Template:Mbox
10
9919
74447
29581
2024-12-18T20:47:42Z
Matrix
8894
did i only just realise I copy pasted the sandbox version
74447
wikitext
text/x-wiki
{{#invoke:Message box|mbox}}<noinclude>{{Documentation}}</noinclude>
tvrvu45gactjsm6e1hth3whyku1lcph
74448
74447
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Template:Mbox]]: Importing the Support template
74447
wikitext
text/x-wiki
{{#invoke:Message box|mbox}}<noinclude>{{Documentation}}</noinclude>
tvrvu45gactjsm6e1hth3whyku1lcph
Module:Namespace detect/data
828
9978
74565
2015-05-15T00:16:54Z
Krenair
1935
[[phabricator:T99157|scribunto content model]]
74565
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect data --
-- This module holds data for [[Module:Namespace detect]] to be loaded per --
-- page, rather than per #invoke, for performance reasons. --
--------------------------------------------------------------------------------
local cfg = require('Module:Namespace detect/config')
local function addKey(t, key, defaultKey)
if key ~= defaultKey then
t[#t + 1] = key
end
end
-- Get a table of parameters to query for each default parameter name.
-- This allows wikis to customise parameter names in the cfg table while
-- ensuring that default parameter names will always work. The cfg table
-- values can be added as a string, or as an array of strings.
local defaultKeys = {
'main',
'talk',
'other',
'subjectns',
'demospace',
'demopage'
}
local argKeys = {}
for i, defaultKey in ipairs(defaultKeys) do
argKeys[defaultKey] = {defaultKey}
end
for defaultKey, t in pairs(argKeys) do
local cfgValue = cfg[defaultKey]
local cfgValueType = type(cfgValue)
if cfgValueType == 'string' then
addKey(t, cfgValue, defaultKey)
elseif cfgValueType == 'table' then
for i, key in ipairs(cfgValue) do
addKey(t, key, defaultKey)
end
end
cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more.
end
local function getParamMappings()
--[[
-- Returns a table of how parameter names map to namespace names. The keys
-- are the actual namespace names, in lower case, and the values are the
-- possible parameter names for that namespace, also in lower case. The
-- table entries are structured like this:
-- {
-- [''] = {'main'},
-- ['wikipedia'] = {'wikipedia', 'project', 'wp'},
-- ...
-- }
--]]
local mappings = {}
local mainNsName = mw.site.subjectNamespaces[0].name
mainNsName = mw.ustring.lower(mainNsName)
mappings[mainNsName] = mw.clone(argKeys.main)
mappings['talk'] = mw.clone(argKeys.talk)
for nsid, ns in pairs(mw.site.subjectNamespaces) do
if nsid ~= 0 then -- Exclude main namespace.
local nsname = mw.ustring.lower(ns.name)
local canonicalName = mw.ustring.lower(ns.canonicalName)
mappings[nsname] = {nsname}
if canonicalName ~= nsname then
table.insert(mappings[nsname], canonicalName)
end
for _, alias in ipairs(ns.aliases) do
table.insert(mappings[nsname], mw.ustring.lower(alias))
end
end
end
return mappings
end
return {
argKeys = argKeys,
cfg = cfg,
mappings = getParamMappings()
}
ojp6d3pc8mql5nufaqdg576c9so3479
74566
29709
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Module:Namespace_detect/data]]: Importing the Support template
29708
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect data --
-- This module holds data for [[Module:Namespace detect]] to be loaded per --
-- page, rather than per #invoke, for performance reasons. --
--------------------------------------------------------------------------------
local cfg = require('Module:Namespace detect/config')
local function addKey(t, key, defaultKey)
if key ~= defaultKey then
t[#t + 1] = key
end
end
-- Get a table of parameters to query for each default parameter name.
-- This allows wikis to customise parameter names in the cfg table while
-- ensuring that default parameter names will always work. The cfg table
-- values can be added as a string, or as an array of strings.
local defaultKeys = {
'main',
'talk',
'other',
'subjectns',
'demospace',
'demopage'
}
local argKeys = {}
for i, defaultKey in ipairs(defaultKeys) do
argKeys[defaultKey] = {defaultKey}
end
for defaultKey, t in pairs(argKeys) do
local cfgValue = cfg[defaultKey]
local cfgValueType = type(cfgValue)
if cfgValueType == 'string' then
addKey(t, cfgValue, defaultKey)
elseif cfgValueType == 'table' then
for i, key in ipairs(cfgValue) do
addKey(t, key, defaultKey)
end
end
cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more.
end
local function getParamMappings()
--[[
-- Returns a table of how parameter names map to namespace names. The keys
-- are the actual namespace names, in lower case, and the values are the
-- possible parameter names for that namespace, also in lower case. The
-- table entries are structured like this:
-- {
-- [''] = {'main'},
-- ['wikipedia'] = {'wikipedia', 'project', 'wp'},
-- ...
-- }
--]]
local mappings = {}
local mainNsName = mw.site.subjectNamespaces[0].name
mainNsName = mw.ustring.lower(mainNsName)
mappings[mainNsName] = mw.clone(argKeys.main)
mappings['talk'] = mw.clone(argKeys.talk)
for nsid, ns in pairs(mw.site.subjectNamespaces) do
if nsid ~= 0 then -- Exclude main namespace.
local nsname = mw.ustring.lower(ns.name)
local canonicalName = mw.ustring.lower(ns.canonicalName)
mappings[nsname] = {nsname}
if canonicalName ~= nsname then
table.insert(mappings[nsname], canonicalName)
end
for _, alias in ipairs(ns.aliases) do
table.insert(mappings[nsname], mw.ustring.lower(alias))
end
end
end
return mappings
end
return {
argKeys = argKeys,
cfg = cfg,
mappings = getParamMappings()
}
ojp6d3pc8mql5nufaqdg576c9so3479
Module:Namespace detect/config
828
9979
74563
2015-05-15T00:16:54Z
Krenair
1935
[[phabricator:T99157|scribunto content model]]
74563
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect configuration data --
-- --
-- This module stores configuration data for Module:Namespace detect. Here --
-- you can localise the module to your wiki's language. --
-- --
-- To activate a configuration item, you need to uncomment it. This means --
-- that you need to remove the text "-- " at the start of the line. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. Values added --
-- here will work in addition to the default English parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- cfg.foo = 'parameter name' --
-- --
-- To add multiple names, you can use this format: --
-- --
-- cfg.foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'} --
--------------------------------------------------------------------------------
---- This parameter displays content for the main namespace:
-- cfg.main = 'main'
---- This parameter displays in talk namespaces:
-- cfg.talk = 'talk'
---- This parameter displays content for "other" namespaces (namespaces for which
---- parameters have not been specified):
-- cfg.other = 'other'
---- This parameter makes talk pages behave as though they are the corresponding
---- subject namespace. Note that this parameter is used with [[Module:Yesno]].
---- Edit that module to change the default values of "yes", "no", etc.
-- cfg.subjectns = 'subjectns'
---- This parameter sets a demonstration namespace:
-- cfg.demospace = 'demospace'
---- This parameter sets a specific page to compare:
cfg.demopage = 'page'
--------------------------------------------------------------------------------
-- Table configuration --
-- These configuration items allow customisation of the "table" function, --
-- used to generate a table of possible parameters in the module --
-- documentation. --
--------------------------------------------------------------------------------
---- The header for the namespace column in the wikitable containing the list of
---- possible subject-space parameters.
-- cfg.wikitableNamespaceHeader = 'Namespace'
---- The header for the wikitable containing the list of possible subject-space
---- parameters.
-- cfg.wikitableAliasesHeader = 'Aliases'
--------------------------------------------------------------------------------
-- End of configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
1o6ozz56i8q0xgyl6xa41n2v7kelhli
74564
29711
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Module:Namespace_detect/config]]: Importing the Support template
29710
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect configuration data --
-- --
-- This module stores configuration data for Module:Namespace detect. Here --
-- you can localise the module to your wiki's language. --
-- --
-- To activate a configuration item, you need to uncomment it. This means --
-- that you need to remove the text "-- " at the start of the line. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. Values added --
-- here will work in addition to the default English parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- cfg.foo = 'parameter name' --
-- --
-- To add multiple names, you can use this format: --
-- --
-- cfg.foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'} --
--------------------------------------------------------------------------------
---- This parameter displays content for the main namespace:
-- cfg.main = 'main'
---- This parameter displays in talk namespaces:
-- cfg.talk = 'talk'
---- This parameter displays content for "other" namespaces (namespaces for which
---- parameters have not been specified):
-- cfg.other = 'other'
---- This parameter makes talk pages behave as though they are the corresponding
---- subject namespace. Note that this parameter is used with [[Module:Yesno]].
---- Edit that module to change the default values of "yes", "no", etc.
-- cfg.subjectns = 'subjectns'
---- This parameter sets a demonstration namespace:
-- cfg.demospace = 'demospace'
---- This parameter sets a specific page to compare:
cfg.demopage = 'page'
--------------------------------------------------------------------------------
-- Table configuration --
-- These configuration items allow customisation of the "table" function, --
-- used to generate a table of possible parameters in the module --
-- documentation. --
--------------------------------------------------------------------------------
---- The header for the namespace column in the wikitable containing the list of
---- possible subject-space parameters.
-- cfg.wikitableNamespaceHeader = 'Namespace'
---- The header for the wikitable containing the list of possible subject-space
---- parameters.
-- cfg.wikitableAliasesHeader = 'Aliases'
--------------------------------------------------------------------------------
-- End of configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
1o6ozz56i8q0xgyl6xa41n2v7kelhli
Module:Category handler
828
9980
74459
2019-07-30T14:18:08Z
Steinsplitter
2263
Protected "[[Module:Category handler]]": [[Commons:Protection policy|High-risk Lua module]] ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74459
Scribunto
text/plain
--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Module:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key "%s"',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Module:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Module:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order "all" --> namespace params --> "other" as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam >= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret < 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Module:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Module:Category handler/data')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p
letwavu3yvlayfzew66uuwixmwebq5b
74460
29713
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Module:Category_handler]]: Importing the Support template
29712
Scribunto
text/plain
--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Module:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key "%s"',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Module:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Module:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order "all" --> namespace params --> "other" as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam >= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret < 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Module:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Module:Category handler/data')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p
letwavu3yvlayfzew66uuwixmwebq5b
Module:Category handler/data
828
9981
74559
2015-05-15T00:16:51Z
Krenair
1935
[[phabricator:T99157|scribunto content model]]
74559
Scribunto
text/plain
-- This module assembles data to be passed to [[Module:Category handler]] using
-- mw.loadData. This includes the configuration data and whether the current
-- page matches the title blacklist.
local data = require('Module:Category handler/config')
local mShared = require('Module:Category handler/shared')
local blacklist = require('Module:Category handler/blacklist')
local title = mw.title.getCurrentTitle()
data.currentTitleMatchesBlacklist = mShared.matchesBlacklist(
title.prefixedText,
blacklist
)
data.currentTitleNamespaceParameters = mShared.getNamespaceParameters(
title,
mShared.getParamMappings()
)
return data
k26mwixuaeijisfddb0sxkg82iux8v4
74560
29715
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Module:Category_handler/data]]: Importing the Support template
29714
Scribunto
text/plain
-- This module assembles data to be passed to [[Module:Category handler]] using
-- mw.loadData. This includes the configuration data and whether the current
-- page matches the title blacklist.
local data = require('Module:Category handler/config')
local mShared = require('Module:Category handler/shared')
local blacklist = require('Module:Category handler/blacklist')
local title = mw.title.getCurrentTitle()
data.currentTitleMatchesBlacklist = mShared.matchesBlacklist(
title.prefixedText,
blacklist
)
data.currentTitleNamespaceParameters = mShared.getNamespaceParameters(
title,
mShared.getParamMappings()
)
return data
k26mwixuaeijisfddb0sxkg82iux8v4
Module:Category handler/config
828
9982
74557
2015-05-15T00:16:51Z
Krenair
1935
[[phabricator:T99157|scribunto content model]]
74557
Scribunto
text/plain
--------------------------------------------------------------------------------
-- [[Module:Category handler]] configuration data --
-- Language-specific parameter names and values can be set here. --
-- For blacklist config, see [[Module:Category handler/blacklist]]. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Start configuration data --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- foo = 'parameter name', --
-- --
-- To add multiple names, you can use this format: --
-- --
-- foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'}, --
--------------------------------------------------------------------------------
cfg.parameters = {
-- The nocat and categories parameter suppress
-- categorisation. They are used with Module:Yesno, and work as follows:
--
-- cfg.nocat:
-- Result of yesno() Effect
-- true Categorisation is suppressed
-- false Categorisation is allowed, and
-- the blacklist check is skipped
-- nil Categorisation is allowed
--
-- cfg.categories:
-- Result of yesno() Effect
-- true Categorisation is allowed, and
-- the blacklist check is skipped
-- false Categorisation is suppressed
-- nil Categorisation is allowed
nocat = 'nocat',
categories = 'categories',
-- The parameter name for the legacy "category2" parameter. This skips the
-- blacklist if set to the cfg.category2Yes value, and suppresses
-- categorisation if present but equal to anything other than
-- cfg.category2Yes or cfg.category2Negative.
category2 = 'category2',
-- cfg.subpage is the parameter name to specify how to behave on subpages.
subpage = 'subpage',
-- The parameter for data to return in all namespaces.
all = 'all',
-- The parameter name for data to return if no data is specified for the
-- namespace that is detected.
other = 'other',
-- The parameter name used to specify a page other than the current page;
-- used for testing and demonstration.
demopage = 'page',
}
--------------------------------------------------------------------------------
-- Parameter values --
-- These are set values that can be used with certain parameters. Only one --
-- value can be specified, like this: --
-- --
-- cfg.foo = 'value name' -- --
--------------------------------------------------------------------------------
-- The following settings are used with the cfg.category2 parameter. Setting
-- cfg.category2 to cfg.category2Yes skips the blacklist, and if cfg.category2
-- is present but equal to anything other than cfg.category2Yes or
-- cfg.category2Negative then it supresses cateogrisation.
cfg.category2Yes = 'yes'
cfg.category2Negative = '¬'
-- The following settings are used with the cfg.subpage parameter.
-- cfg.subpageNo is the value to specify to not categorise on subpages;
-- cfg.subpageOnly is the value to specify to only categorise on subpages.
cfg.subpageNo = 'no'
cfg.subpageOnly = 'only'
--------------------------------------------------------------------------------
-- Default namespaces --
-- This is a table of namespaces to categorise by default. The keys are the --
-- namespace numbers. --
--------------------------------------------------------------------------------
cfg.defaultNamespaces = {
[ 0] = true, -- main
[ 6] = true, -- file
[ 12] = true, -- help
[ 14] = true, -- category
[100] = true, -- portal
[108] = true, -- book
}
--------------------------------------------------------------------------------
-- Wrappers --
-- This is a wrapper template or a list of wrapper templates to be passed to --
-- [[Module:Arguments]]. --
--------------------------------------------------------------------------------
cfg.wrappers = 'Template:Category handler'
--------------------------------------------------------------------------------
-- End configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
6ga9hbq2pdwalsvx68i53dmbr421rq5
74558
29717
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Module:Category_handler/config]]: Importing the Support template
29716
Scribunto
text/plain
--------------------------------------------------------------------------------
-- [[Module:Category handler]] configuration data --
-- Language-specific parameter names and values can be set here. --
-- For blacklist config, see [[Module:Category handler/blacklist]]. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Start configuration data --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- foo = 'parameter name', --
-- --
-- To add multiple names, you can use this format: --
-- --
-- foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'}, --
--------------------------------------------------------------------------------
cfg.parameters = {
-- The nocat and categories parameter suppress
-- categorisation. They are used with Module:Yesno, and work as follows:
--
-- cfg.nocat:
-- Result of yesno() Effect
-- true Categorisation is suppressed
-- false Categorisation is allowed, and
-- the blacklist check is skipped
-- nil Categorisation is allowed
--
-- cfg.categories:
-- Result of yesno() Effect
-- true Categorisation is allowed, and
-- the blacklist check is skipped
-- false Categorisation is suppressed
-- nil Categorisation is allowed
nocat = 'nocat',
categories = 'categories',
-- The parameter name for the legacy "category2" parameter. This skips the
-- blacklist if set to the cfg.category2Yes value, and suppresses
-- categorisation if present but equal to anything other than
-- cfg.category2Yes or cfg.category2Negative.
category2 = 'category2',
-- cfg.subpage is the parameter name to specify how to behave on subpages.
subpage = 'subpage',
-- The parameter for data to return in all namespaces.
all = 'all',
-- The parameter name for data to return if no data is specified for the
-- namespace that is detected.
other = 'other',
-- The parameter name used to specify a page other than the current page;
-- used for testing and demonstration.
demopage = 'page',
}
--------------------------------------------------------------------------------
-- Parameter values --
-- These are set values that can be used with certain parameters. Only one --
-- value can be specified, like this: --
-- --
-- cfg.foo = 'value name' -- --
--------------------------------------------------------------------------------
-- The following settings are used with the cfg.category2 parameter. Setting
-- cfg.category2 to cfg.category2Yes skips the blacklist, and if cfg.category2
-- is present but equal to anything other than cfg.category2Yes or
-- cfg.category2Negative then it supresses cateogrisation.
cfg.category2Yes = 'yes'
cfg.category2Negative = '¬'
-- The following settings are used with the cfg.subpage parameter.
-- cfg.subpageNo is the value to specify to not categorise on subpages;
-- cfg.subpageOnly is the value to specify to only categorise on subpages.
cfg.subpageNo = 'no'
cfg.subpageOnly = 'only'
--------------------------------------------------------------------------------
-- Default namespaces --
-- This is a table of namespaces to categorise by default. The keys are the --
-- namespace numbers. --
--------------------------------------------------------------------------------
cfg.defaultNamespaces = {
[ 0] = true, -- main
[ 6] = true, -- file
[ 12] = true, -- help
[ 14] = true, -- category
[100] = true, -- portal
[108] = true, -- book
}
--------------------------------------------------------------------------------
-- Wrappers --
-- This is a wrapper template or a list of wrapper templates to be passed to --
-- [[Module:Arguments]]. --
--------------------------------------------------------------------------------
cfg.wrappers = 'Template:Category handler'
--------------------------------------------------------------------------------
-- End configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
6ga9hbq2pdwalsvx68i53dmbr421rq5
Module:Category handler/shared
828
9983
74561
2015-05-15T00:16:52Z
Krenair
1935
[[phabricator:T99157|scribunto content model]]
74561
Scribunto
text/plain
-- This module contains shared functions used by [[Module:Category handler]]
-- and its submodules.
local p = {}
function p.matchesBlacklist(page, blacklist)
for i, pattern in ipairs(blacklist) do
local match = mw.ustring.match(page, pattern)
if match then
return true
end
end
return false
end
function p.getParamMappings(useLoadData)
local dataPage = 'Module:Namespace detect/data'
if useLoadData then
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end
function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
local mappingsKey
if titleObj.isTalkPage then
mappingsKey = 'talk'
else
mappingsKey = mw.site.namespaces[titleObj.namespace].name
end
mappingsKey = mw.ustring.lower(mappingsKey)
return mappings[mappingsKey] or {}
end
return p
omlsnhudxz6juptvtxz7ns97jutbzc5
74562
29719
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Module:Category_handler/shared]]: Importing the Support template
29718
Scribunto
text/plain
-- This module contains shared functions used by [[Module:Category handler]]
-- and its submodules.
local p = {}
function p.matchesBlacklist(page, blacklist)
for i, pattern in ipairs(blacklist) do
local match = mw.ustring.match(page, pattern)
if match then
return true
end
end
return false
end
function p.getParamMappings(useLoadData)
local dataPage = 'Module:Namespace detect/data'
if useLoadData then
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end
function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
local mappingsKey
if titleObj.isTalkPage then
mappingsKey = 'talk'
else
mappingsKey = mw.site.namespaces[titleObj.namespace].name
end
mappingsKey = mw.ustring.lower(mappingsKey)
return mappings[mappingsKey] or {}
end
return p
omlsnhudxz6juptvtxz7ns97jutbzc5
Module:Category handler/blacklist
828
9984
74555
2015-05-15T00:16:51Z
Krenair
1935
[[phabricator:T99157|scribunto content model]]
74555
Scribunto
text/plain
-- This module contains the blacklist used by [[Module:Category handler]].
-- Pages that match Lua patterns in this list will not be categorised unless
-- categorisation is explicitly requested.
return {
'^Main Page$', -- don't categorise the main page.
-- Don't categorise the following pages or their subpages.
-- "%f[/\0]" matches if the next character is "/" or the end of the string.
'^Wikipedia:Cascade%-protected items%f[/\0]',
'^User:UBX%f[/\0]', -- The userbox "template" space.
'^User talk:UBX%f[/\0]',
-- Don't categorise subpages of these pages, but allow
-- categorisation of the base page.
'^Wikipedia:Template messages/.*$',
'/[aA]rchive' -- Don't categorise archives.
}
ne8sdldor304iu81gnqa05p401j3exc
74556
29721
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Module:Category_handler/blacklist]]: Importing the Support template
29720
Scribunto
text/plain
-- This module contains the blacklist used by [[Module:Category handler]].
-- Pages that match Lua patterns in this list will not be categorised unless
-- categorisation is explicitly requested.
return {
'^Main Page$', -- don't categorise the main page.
-- Don't categorise the following pages or their subpages.
-- "%f[/\0]" matches if the next character is "/" or the end of the string.
'^Wikipedia:Cascade%-protected items%f[/\0]',
'^User:UBX%f[/\0]', -- The userbox "template" space.
'^User talk:UBX%f[/\0]',
-- Don't categorise subpages of these pages, but allow
-- categorisation of the base page.
'^Wikipedia:Template index/.*$',
-- Don't categorise archives.
'/[aA]rchive',
"^Wikipedia:Administrators' noticeboard/IncidentArchive%d+$",
}
fsv1drcay6t25e91hzhqxtyp7pckbpx
Template:Suppress categories
10
10079
74615
29906
2024-08-28T17:27:08Z
CptViraj
5275
Protected "[[Template:Suppress categories]]": [[Special:MyLanguage/Commons:Protection policy|Widely used template]] ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74615
wikitext
text/x-wiki
<includeonly>{{</includeonly><includeonly>safesubst:</includeonly><includeonly>#invoke:Suppress categories|main}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
s55edmh1i64zjrwefm54pqc0xrgt289
74616
74615
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:Suppress_categories]]: Importing the Support template
74615
wikitext
text/x-wiki
<includeonly>{{</includeonly><includeonly>safesubst:</includeonly><includeonly>#invoke:Suppress categories|main}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
s55edmh1i64zjrwefm54pqc0xrgt289
Module:Suppress categories
828
10080
74617
29908
2024-08-28T17:28:51Z
CptViraj
5275
Protected "[[Module:Suppress categories]]": [[Special:MyLanguage/Protection policy|Widely used Lua-module]] ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
29907
Scribunto
text/plain
-- This is a simple module to strip categories from wikitext. It does
-- not support nested links or magic words like __TOC__, etc. Even so,
-- it should still handle most categories.
local p = {}
-- Detects if a category link is valid or not. If it is valid,
-- the function returns the blank string. If not, the input
-- is returned with no changes.
local function processCategory( all, submatch )
local beforePipe = mw.ustring.match( submatch, '^(.-)[%s_]*|[%s_]*.-$' )
beforePipe = beforePipe or submatch
if mw.ustring.match( beforePipe, '[%[%]<>{}%c\n]' ) then
return all
else
return ''
end
end
-- Preprocess the content if we aren't being called from #invoke,
-- and pass it to gsub to remove valid category links.
local function suppress( content, isPreprocessed )
if not isPreprocessed then
content = mw.getCurrentFrame():preprocess( content )
end
content = mw.ustring.gsub(
content,
'(%[%[[%s_]*[cC][aA][tT][eE][gG][oO][rR][yY][%s_]*:[%s_]*(.-)[%s_]*%]%])',
processCategory
)
return content
end
-- Get the content to suppress categories from, and find
-- whether the content has already been preprocessed. (If the
-- module is called from #invoke, it has been preprocessed already.)
function p.main( frame )
local content, isPreprocessed
if frame == mw.getCurrentFrame() then
content = frame:getParent().args[1]
if frame.args[1] then
content = frame.args[1]
end
isPreprocessed = true
else
content = frame
isPreprocessed = false
end
return suppress( content, isPreprocessed )
end
return p
1q32hr238py5zckhzhojzbjzsdqguig
74618
74617
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Module:Suppress_categories]]: Importing the Support template
29907
Scribunto
text/plain
-- This is a simple module to strip categories from wikitext. It does
-- not support nested links or magic words like __TOC__, etc. Even so,
-- it should still handle most categories.
local p = {}
-- Detects if a category link is valid or not. If it is valid,
-- the function returns the blank string. If not, the input
-- is returned with no changes.
local function processCategory( all, submatch )
local beforePipe = mw.ustring.match( submatch, '^(.-)[%s_]*|[%s_]*.-$' )
beforePipe = beforePipe or submatch
if mw.ustring.match( beforePipe, '[%[%]<>{}%c\n]' ) then
return all
else
return ''
end
end
-- Preprocess the content if we aren't being called from #invoke,
-- and pass it to gsub to remove valid category links.
local function suppress( content, isPreprocessed )
if not isPreprocessed then
content = mw.getCurrentFrame():preprocess( content )
end
content = mw.ustring.gsub(
content,
'(%[%[[%s_]*[cC][aA][tT][eE][gG][oO][rR][yY][%s_]*:[%s_]*(.-)[%s_]*%]%])',
processCategory
)
return content
end
-- Get the content to suppress categories from, and find
-- whether the content has already been preprocessed. (If the
-- module is called from #invoke, it has been preprocessed already.)
function p.main( frame )
local content, isPreprocessed
if frame == mw.getCurrentFrame() then
content = frame:getParent().args[1]
if frame.args[1] then
content = frame.args[1]
end
isPreprocessed = true
else
content = frame
isPreprocessed = false
end
return suppress( content, isPreprocessed )
end
return p
1q32hr238py5zckhzhojzbjzsdqguig
Jack Odur Lutanywa
0
12286
74681
43158
2026-09-10T20:32:10Z
Kisakye Jane
9195
Ntaddemu ebijuliziddwa.
74681
wikitext
text/x-wiki
'''Jack Odur Lutanywa''' [[:en:Uganda|Munnayuganda]] munnabyabufuzi eyaweereza ng'Omubaka wa palamenti owa Kibanda South County mu [[:en:Kiryandongo_District|Disitulikiti y'e Kiryangong]] mu [[:en:Parliament_of_Uganda|palamenti ya Uganda]] ey'omulundi ogw'ekkumi.<ref>{{Cite web |title=Jack Odur Lutanywa |url=https://theyworkforyou.github.io/uganda-parliament-watch/mp/d8ec18bb-0f17-42fe-8d1e-3df38f87725d/ |access-date=2026-09-10 |website=theyworkforyou.github.io}}</ref> Yawangulwa [[:en:Karubanga_Jacob|Karubanga Jacob Atenyi]] mu [[:en:2021_Ugandan_general_election|kulonda kw'ababaka ba Palamenti okwa 2021]] mu kitundu kya Kibanda South.<ref>{{Cite web |title=Lutanywa Jack Odur - 2021 General Election - Visible Polls |url=https://visiblepolls.org/ug/2021-general-election/candidates/lutanywa-jack-odur-7750/ |access-date=2026-09-10 |website=visiblepolls.org |language=en}}</ref>
Mu mwaka gwa 2020 Jack Odur Lutanywa yaleeta mu Palamenti ebbago ly'etteeka erikyusa Ssemateeka nga lyali lyasaba okukkiriza ekika kyaba [[:en:Maragoli|Maragoli]] ng'ekimu ku bika enzaalwa mu [[:en:Uganda|Uganda]].<ref>{{Cite web |title=Jack Odur Lutanywa Archives |url=https://www.independent.co.ug/tag/jack-odur-lutanywa/ |access-date=2026-09-10 |website=The Independent Uganda: |language=en-US}}</ref>
== Ebiwandiiko ebikozesebwa ==
7m8y0u4xd0hr846ftjv4fudh3vc6mqn
74682
74681
2026-09-10T20:33:48Z
Kisakye Jane
9195
Nterezeezamu mu mpadiika.
74682
wikitext
text/x-wiki
'''Jack Odur Lutanywa''' [[:en:Uganda|Munnayuganda]] munnabyabufuzi eyaweereza ng'Omubaka wa palamenti owa Kibanda South County mu [[:en:Kiryandongo_District|Disitulikiti y'e Kiryangong]] mu [[:en:Parliament_of_Uganda|palamenti ya Uganda]] ey'omulundi ogw'ekkumi.<ref>{{Cite web |title=Jack Odur Lutanywa |url=https://theyworkforyou.github.io/uganda-parliament-watch/mp/d8ec18bb-0f17-42fe-8d1e-3df38f87725d/ |access-date=2026-09-10 |website=theyworkforyou.github.io}}</ref> Yawangulwa [[:en:Karubanga_Jacob|Karubanga Jacob Atenyi]] mu [[:en:2021_Ugandan_general_election|kulonda kw'ababaka ba Palamenti okwa 2021]] mu kitundu kya Kibanda South.<ref>{{Cite web |title=Lutanywa Jack Odur - 2021 General Election - Visible Polls |url=https://visiblepolls.org/ug/2021-general-election/candidates/lutanywa-jack-odur-7750/ |access-date=2026-09-10 |website=visiblepolls.org |language=en}}</ref>
Mu 2020 Jack Odur Lutanywa yaleeta mu Palamenti ebbago ly'etteeka erikyusa Ssemateeka nga lyali lyasaba okukkiriza ekika kyaba [[:en:Maragoli|Maragoli]] ng'ekimu ku bika enzaalwa mu [[:en:Uganda|Uganda]].<ref>{{Cite web |title=Jack Odur Lutanywa Archives |url=https://www.independent.co.ug/tag/jack-odur-lutanywa/ |access-date=2026-09-10 |website=The Independent Uganda: |language=en-US}}</ref>
== Ebiwandiiko ebikozesebwa ==
5lha2ocuo50u6vqnzjq3ms3ayin23ml
74683
74682
2026-09-10T20:35:31Z
Kisakye Jane
9195
Ntaddemu ettuluba
74683
wikitext
text/x-wiki
'''Jack Odur Lutanywa''' [[:en:Uganda|Munnayuganda]] munnabyabufuzi eyaweereza ng'Omubaka wa palamenti owa Kibanda South County mu [[:en:Kiryandongo_District|Disitulikiti y'e Kiryangong]] mu [[:en:Parliament_of_Uganda|palamenti ya Uganda]] ey'omulundi ogw'ekkumi.<ref>{{Cite web |title=Jack Odur Lutanywa |url=https://theyworkforyou.github.io/uganda-parliament-watch/mp/d8ec18bb-0f17-42fe-8d1e-3df38f87725d/ |access-date=2026-09-10 |website=theyworkforyou.github.io}}</ref> Yawangulwa [[:en:Karubanga_Jacob|Karubanga Jacob Atenyi]] mu [[:en:2021_Ugandan_general_election|kulonda kw'ababaka ba Palamenti okwa 2021]] mu kitundu kya Kibanda South.<ref>{{Cite web |title=Lutanywa Jack Odur - 2021 General Election - Visible Polls |url=https://visiblepolls.org/ug/2021-general-election/candidates/lutanywa-jack-odur-7750/ |access-date=2026-09-10 |website=visiblepolls.org |language=en}}</ref>
Mu 2020 Jack Odur Lutanywa yaleeta mu Palamenti ebbago ly'etteeka erikyusa Ssemateeka nga lyali lyasaba okukkiriza ekika kyaba [[:en:Maragoli|Maragoli]] ng'ekimu ku bika enzaalwa mu [[:en:Uganda|Uganda]].<ref>{{Cite web |title=Jack Odur Lutanywa Archives |url=https://www.independent.co.ug/tag/jack-odur-lutanywa/ |access-date=2026-09-10 |website=The Independent Uganda: |language=en-US}}</ref>
== Ebiwandiiko ebikozesebwa ==
<references />
[[Category:Bannayuganda bannabyabufuzi abasajja.]]
rzchtz42hjqa3xqtzxl4akc3m3hkgi2
Ekika ky'eMpindi
0
12556
74680
71780
2026-09-10T20:25:13Z
Kisakye Jane
9195
Nterezeeza mu ndabika y′ekiwandiiko.
74680
wikitext
text/x-wiki
[[File:Mpindi.jpg|alt=A picture of Vigna unguiculalta also known as mpindi in Luganda.|thumb|Ekimera ky'Empindi]]
'''Mpindi''' kye kimu ku bika 56 eby'[[:en:Buganda_Kingdom|Obwakabaka bwa Buganda]] ekimu ku lubu lw'ebika ebinene mu [[:en:Uganda|Uganda]] . Omukulu w’ekika ky’e Mpindi (omutaka) bamuyita Mazige ate entebe y’ekika (obutaka) eri Muyenje mu Ssaza ly'e Busiro County mu Uganda.<ref>{{Cite book |last=Nuwagaba |first=Taga F. |date=2014 |title=Totems of Uganda: culture embracing nature |url=https://en.wikipedia.org/wiki/Special:BookSources/9789970443000 |last2=Kiwere |first2=Nathan |publisher=Taga Nuwagaba and Nathan Kiwere |isbn=978-9970-443-00-0 |location=Kampala |oclc=999673832}}</ref> Ekika ky’Abempindi kirina ''mpindi,'' ekigambo ky[[:en:Luganda|’Oluganda]] ekitegeeza [[:en:Cowpea|kawo]] ( ''Vigna unguiculalta'' ) oba Kiyindiru mu Luganda, nga omuziro gw'akyo.
== Ensibuko (Obutaka) . ==
Okusinziira ku mukuza, Mbogga omutandiisi w'ekika kino yajja ne Ssekabaka (Kabaka) Kintu okutandikawo Obwakabaka bwa Buganda ku lubalama lw’ennyanja [[:en:Nnalubaale|Nalubaale]] (Victoria) mu Bukiikakkonobwobuggwanjuba bwa Uganda mu kyasa eky’ekkumi n’ettaano. Mu buwangwa, omulimu gwa Mbogga mu [[:en:Palace|lubiri]] gwali gwa kulabirira nte ya kabaka, "Mbulidde", omulimu kati ogukolebwa ab'ekika kino mu bwakabaka.
Ekika ky’eMpindi ky'ayawulwamu ebitundu bibiri; ekimu kivunanyibwa Mbogga ng’ekitebe kyakyo kiri ku lusozi Nsumba mu Mawokota (mu kaseera kano y'e [[:en:Mpigi_District|Disitulikiti y’e Mpigi]] ) ate ekirala kivunaanyizibwa Mugalu e Kyaggwe (kati [[:en:Mukono_District|Disitulikiti y’e Mukono]] ).
== Omubala gw'Ekika ky'eMpindi. ==
Samba eggotto. Samba egotto. Ggwe Mazige, Muggalu ne Kawenyera x 3
== Oluyimba lw'ekika. ==
Oluyimba lw'ekika ky'e Mpindi olutongole
Ekiddibwamu ([[:en:Chorus|kolaasi]]) Ka tuyimbe ffenna n'essanyu lingi Olw'ekika kyaffe ekyokubwabajjajjaffe Tuwere mu maaso ga jjajjaffe Mazige Nti ffe ab'Empindi tunywedde
Mu bika ebiri m luse olw'okubiri Ekika ky'empindi mwanattu kivuga, Tuwera obutaswaza jajjaffe Mazige, Kaakano ab'empindi tuwera, ekiddibwamu (Kolaasi)
Tukola emirimu ewa ewa bbaffe, Ffe tukuuma Mbulidde eyo ente y'embuga, Tuli bawulize bbaffe bwaba atutumye Wetuli tetujja kweganya Ekiddibwamu (Kolaasi)
Tukole ekika kigaggawale Ka tuzaale empindi eyole Tukuume ebyabangwawo bajjajjaffe Naffe tusseewo ebipya
Emirembe n'emirembe tetujja kwetya Tuwera okukuuma Mazige [[:en:Buganda|Buganda]] yattu ebya Buganda byonna Awangaale nnyinimu wangaala
== Okutuuma abaana amannya. ==
Olw’okuba mu kika mulimu ennyiriri ssatu, buli emu erina amannya ag’enjawulo ag’abasajja n’abakazi.
== Amanya agatuumibwa abaana abalenzi ==
Bwabye, Kabanda, Kadoma, Kamyuuka, Kasenge, Katantazi, Kawenyera, Kikambi, Kitenda, Kyaluula, Kyembe, Kyeswa, Lukowe, Lutimba, Lyazi, Majeegwa, Matutu, Mbere, Mbogga, Mbogo, Mboowa, Mugalu, Mugenyi, Mukuuma, Muluuta, Muwoone, Muwube, Muyimbwa, Muyobyo, Nalikka, Nnankyama, Nsumba, Ntabaazi, Ntulume, Sebadduka, Ssalambwa, Ssekaluvu, Ssendegeya, Ssensawo, Sserubende, Ssewambwa, Wakibugu.<ref name=":0">{{Cite book |last=Nuwagaba |first=Taga F. |date=2014 |title=Totems of Uganda: culture embracing nature |url=https://en.wikipedia.org/wiki/Special:BookSources/9789970443000 |last2=Kiwere |first2=Nathan |publisher=Taga Nuwagaba and Nathan Kiwere |isbn=978-9970-443-00-0 |edition=Buganda edition |location=Kampala}}</ref>
== Amanya agatuumibwa abaana abawala ==
Bulyaba, Najjuko, Nakabanda, Nakafu, Nalube, Nalule, Namboowa, Namuganyi, Namugenyi, Namuswe, Namuyimbwa, Nannozi, Nansumba, Nawambwa.<ref>{{Cite book |last=Nuwagaba |first=Taga F. |date=2014 |title=Totems of Uganda: culture embracing nature |url=https://en.wikipedia.org/wiki/Special:BookSources/9789970443000 |last2=Kiwere |first2=Nathan |publisher=Taga Nuwagaba and Nathan Kiwere |isbn=978-9970-443-00-0 |location=Kampala |oclc=999673832}}</ref>
== Laba ne bino ==
* [[:en:Njaza_Clan|Ekika ky'e Njaza]]
* [[:en:Lugave_Clan|Ekika ky'e Lugave]]
== Ebijuliziddwamu ==
{{Reflist}}
== Ekika ky'e Mpindi ==
* Omukutu gw'Obwakabaka bwa Buganda Omutongole
* Buganda.com
* 101afirika.com
{{DEFAULTSORT:Mpindi Clan (Buganda)}}
[[Category:Pages with unreviewed translations]]
[[Category:Ebika by'Abaganda]]
[[Category:Buganda]]
a5lsbnhpv961zs9ync5p5r26pf8yy4k
Arinda Daisy Kankiriho
0
12844
74674
53787
2026-09-10T20:05:01Z
Kisakye Jane
9195
Nterezeezamu mu mpadiika.
74674
wikitext
text/x-wiki
{{Databox}}
'''Arinda Daisy Kankiriho''' (yazaalibwa 2000) Munnayuganda asoma [[:en:Mbarara_University|yinginiya mu by'okuzimba]] mu [[Ssetendekero y’e Mbarara|yunivasite y'e Mbarara eya Sayansi ne Tekinologiya]] (MUST). Yali pulezidenti wa yunivasite omukyala owookusatu,<ref>{{Cite web |date=2024-07-16 |title=Special Reports Prime: Arinda Daisy Kankiriho giving her speech after swearing in as the Mbarara University of Science and Technology 36th Guild President in early May |url=https://www.monitor.co.ug/uganda/special-reports/4691866-4691866 |access-date=2025-04-08 |website=Monitor |language=en}}</ref><ref>{{Cite web |date=2024-05-05 |title=Mbarara University welcomes its third female guild president |url=https://www.ntv.co.ug/ug/news/national/-mbarara-university-welcomes-its-third-female-guild-president--4614108 |access-date=2025-04-08 |website=NTV Uganda |language=en}}</ref> oluvannyuma lwa [[Sheila Nduhukire]] ne Mariam Iculet Arikosi, era pulezidenti w’ekibiina eyasooka okuva ku ttendekero lya Kihumuro, emu ku kampasi za MUST.<ref>{{Cite web |last=Atukunda |date=2024-05-04 |title=Daisy Arinda Makes History as Mbarara University's 3rd Female Guild President |url=https://campusbee.ug/elections/daisy-arinda-makes-history-as-mbarara-universitys-3rd-female-guild-president/ |access-date=2025-04-08 |website=Campus Bee |language=en-US}}</ref>
== Ensibuko n’obuyigirize ==
Kankiriho yazaalibwa mu 2000 mu [[Kiruhura (disitulikit)|Disitulikiti y’e Kiruhura]] mu bazadde b’omugenzi Brig. Gen. [[Patrick Kankiriho]] ne Deborah Kyokunda Kankiriho nga baana baabwe owookusatu.
Pulayimale yasomera mu Greenhill Academy, Kibuli ne Kampala Parents School. Yeegatta ku [[King's College, Budo|King’s College, Budo]] okusoma ku ddaala erya bulijjo, oluvannyuma n’agenda mu [[:en:Vienna_College_Namugongo|Vienna College Namugongo]] okusoma ku ddaala ery’oku ntikko. Oluvannyuma yeewandiisa mu MUST, gy’akola diguli ya bbasale mu by’okuzimba. <ref name=":0">{{Cite web |date=2024-07-16 |title=Leadership is about serving others – new MUST guild president |url=https://www.monitor.co.ug/uganda/special-reports/leadership-is-about-serving-others-must-guild-president-4691856 |access-date=2025-04-08 |website=Monitor |language=en}}</ref>
== Olugendo lw'ebyobufuzi ==
Kankiriho ebyobufuzi yabitandikira mu ssomero lya Kampla Prents School gye yali nga [[:en:Head_girl_and_head_boy|omuwala omukulu]] . Mu kusoma kwe mu siniya, yaliko pulezidenti wa kiraabu nnyingi omuli ne club ya kansa. Yali mumyuka wa mukulembeze wa Aviation Club, era nga mwogezi mu Junior Debaters’ Club. <ref name=":0">{{Cite web |date=2024-07-16 |title=Leadership is about serving others – new MUST guild president |url=https://www.monitor.co.ug/uganda/special-reports/leadership-is-about-serving-others-must-guild-president-4691856 |access-date=2025-04-08 |website=Monitor |language=en}}</ref>
Mu 2024, Kankiriho yeesimbawo ku bwa pulezidenti bwa guild mu Mbarara University mu kolegi ya Science ne Technology, ng’avuganya ku bwapulezidenti, ng’avuganya n’abavuganya abalala babiri (Wilson Mugazhu, eyeesimbyewo [[National Unity Platform|ku NUP]], ne Kisitu Joseph, eyeesimbyewo mu Uganda Young Democrats). Yavuddeyo ng’omuwanguzi n’obululu 1499; Wilson yafunye obululu 1199 ate Kisitu n’afuna obululu 755. <ref>{{Cite web |title=New Vision - Latest News |url=https://www.newvision.co.ug/category/politics/brig-kankirihos-daughter-wins-must-guild-pres-NV_187245 |access-date=2025-04-08 |website=www.newvision.co.ug}}</ref><ref>{{Cite web |date=2024-05-04 |title=Arinda wins Mbarara University's guild presidential race |url=https://www.monitor.co.ug/uganda/news/national/arinda-wins-mbarara-university-s-guild-presidential-race-4613212 |access-date=2025-04-08 |website=Monitor |language=en}}</ref>
== Ebijuliziddwa ==
sfakhtt1ls9buaeciwf2y2rx59u03gm
74675
74674
2026-09-10T20:08:29Z
Kisakye Jane
9195
Nterezeeza mu ndabika y′ekiwandiiko.
74675
wikitext
text/x-wiki
{{Databox}}
'''Arinda Daisy Kankiriho''' (yazaalibwa 2000) Munnayuganda asoma [[:en:Mbarara_University|yinginiya mu by'okuzimba]] mu [[Ssetendekero y’e Mbarara|yunivasite y'e Mbarara eya Sayansi ne Tekinologiya]] (MUST). Yali pulezidenti wa yunivasite omukyala owookusatu,<ref>{{Cite web |date=2024-07-16 |title=Special Reports Prime: Arinda Daisy Kankiriho giving her speech after swearing in as the Mbarara University of Science and Technology 36th Guild President in early May |url=https://www.monitor.co.ug/uganda/special-reports/4691866-4691866 |access-date=2025-04-08 |website=Monitor |language=en}}</ref><ref>{{Cite web |date=2024-05-05 |title=Mbarara University welcomes its third female guild president |url=https://www.ntv.co.ug/ug/news/national/-mbarara-university-welcomes-its-third-female-guild-president--4614108 |access-date=2025-04-08 |website=NTV Uganda |language=en}}</ref> oluvannyuma lwa [[Sheila Nduhukire]] ne Mariam Iculet Arikosi, era pulezidenti w’ekibiina eyasooka okuva ku ttendekero lya Kihumuro, emu ku kampasi za MUST.<ref>{{Cite web |last=Atukunda |date=2024-05-04 |title=Daisy Arinda Makes History as Mbarara University's 3rd Female Guild President |url=https://campusbee.ug/elections/daisy-arinda-makes-history-as-mbarara-universitys-3rd-female-guild-president/ |access-date=2025-04-08 |website=Campus Bee |language=en-US}}</ref>
== Ensibuko n’obuyigirize ==
Kankiriho yazaalibwa mu 2000 mu [[Kiruhura (disitulikit)|Disitulikiti y’e Kiruhura]] mu bazadde b’omugenzi Brig. Gen. [[Patrick Kankiriho]] ne Deborah Kyokunda Kankiriho nga baana baabwe owookusatu.
Pulayimale yasomera mu Greenhill Academy, Kibuli ne Kampala Parents School. Yeegatta ku [[King's College, Budo|King’s College, Budo]] okusoma ku ddaala erya bulijjo, oluvannyuma n’agenda mu [[:en:Vienna_College_Namugongo|Vienna College Namugongo]] okusoma ku ddaala ery’oku ntikko. Oluvannyuma yeewandiisa mu MUST, gy’akola diguli ya bbasale mu by’okuzimba.<ref name=":0">{{Cite web |date=2024-07-16 |title=Leadership is about serving others – new MUST guild president |url=https://www.monitor.co.ug/uganda/special-reports/leadership-is-about-serving-others-must-guild-president-4691856 |access-date=2025-04-08 |website=Monitor |language=en}}</ref>
== Olugendo lw'ebyobufuzi ==
Kankiriho ebyobufuzi yabitandikira mu ssomero lya Kampla Prents School gye yali nga [[:en:Head_girl_and_head_boy|omuwala omukulu]] . Mu kusoma kwe mu siniya, yaliko pulezidenti wa kiraabu nnyingi omuli ne club ya kansa. Yali mumyuka wa mukulembeze wa Aviation Club, era nga mwogezi mu Junior Debaters’ Club.<ref name=":0">{{Cite web |date=2024-07-16 |title=Leadership is about serving others – new MUST guild president |url=https://www.monitor.co.ug/uganda/special-reports/leadership-is-about-serving-others-must-guild-president-4691856 |access-date=2025-04-08 |website=Monitor |language=en}}</ref>
Mu 2024, Kankiriho yeesimbawo ku bwa pulezidenti bwa guild mu Mbarara University mu kolegi ya Science ne Technology, ng’avuganya ku bwapulezidenti, ng’avuganya n’abavuganya abalala babiri (Wilson Mugazhu, eyeesimbyewo [[National Unity Platform|ku NUP]], ne Kisitu Joseph, eyeesimbyewo mu Uganda Young Democrats). Yavuddeyo ng’omuwanguzi n’obululu 1499; Wilson yafunye obululu 1199 ate Kisitu n’afuna obululu 755.<ref>{{Cite web |title=New Vision - Latest News |url=https://www.newvision.co.ug/category/politics/brig-kankirihos-daughter-wins-must-guild-pres-NV_187245 |access-date=2025-04-08 |website=www.newvision.co.ug}}</ref><ref>{{Cite web |date=2024-05-04 |title=Arinda wins Mbarara University's guild presidential race |url=https://www.monitor.co.ug/uganda/news/national/arinda-wins-mbarara-university-s-guild-presidential-race-4613212 |access-date=2025-04-08 |website=Monitor |language=en}}</ref>
== Ebijuliziddwa ==
n3ei2t6719qkue9sdr8f3aoneyi9qbn
74676
74675
2026-09-10T20:09:58Z
Kisakye Jane
9195
Ntaddemu ettuluba.
74676
wikitext
text/x-wiki
{{Databox}}
'''Arinda Daisy Kankiriho''' (yazaalibwa 2000) Munnayuganda asoma [[:en:Mbarara_University|yinginiya mu by'okuzimba]] mu [[Ssetendekero y’e Mbarara|yunivasite y'e Mbarara eya Sayansi ne Tekinologiya]] (MUST). Yali pulezidenti wa yunivasite omukyala owookusatu,<ref>{{Cite web |date=2024-07-16 |title=Special Reports Prime: Arinda Daisy Kankiriho giving her speech after swearing in as the Mbarara University of Science and Technology 36th Guild President in early May |url=https://www.monitor.co.ug/uganda/special-reports/4691866-4691866 |access-date=2025-04-08 |website=Monitor |language=en}}</ref><ref>{{Cite web |date=2024-05-05 |title=Mbarara University welcomes its third female guild president |url=https://www.ntv.co.ug/ug/news/national/-mbarara-university-welcomes-its-third-female-guild-president--4614108 |access-date=2025-04-08 |website=NTV Uganda |language=en}}</ref> oluvannyuma lwa [[Sheila Nduhukire]] ne Mariam Iculet Arikosi, era pulezidenti w’ekibiina eyasooka okuva ku ttendekero lya Kihumuro, emu ku kampasi za MUST.<ref>{{Cite web |last=Atukunda |date=2024-05-04 |title=Daisy Arinda Makes History as Mbarara University's 3rd Female Guild President |url=https://campusbee.ug/elections/daisy-arinda-makes-history-as-mbarara-universitys-3rd-female-guild-president/ |access-date=2025-04-08 |website=Campus Bee |language=en-US}}</ref>
== Ensibuko n’obuyigirize ==
Kankiriho yazaalibwa mu 2000 mu [[Kiruhura (disitulikit)|Disitulikiti y’e Kiruhura]] mu bazadde b’omugenzi Brig. Gen. [[Patrick Kankiriho]] ne Deborah Kyokunda Kankiriho nga baana baabwe owookusatu.
Pulayimale yasomera mu Greenhill Academy, Kibuli ne Kampala Parents School. Yeegatta ku [[King's College, Budo|King’s College, Budo]] okusoma ku ddaala erya bulijjo, oluvannyuma n’agenda mu [[:en:Vienna_College_Namugongo|Vienna College Namugongo]] okusoma ku ddaala ery’oku ntikko. Oluvannyuma yeewandiisa mu MUST, gy’akola diguli ya bbasale mu by’okuzimba.<ref name=":0">{{Cite web |date=2024-07-16 |title=Leadership is about serving others – new MUST guild president |url=https://www.monitor.co.ug/uganda/special-reports/leadership-is-about-serving-others-must-guild-president-4691856 |access-date=2025-04-08 |website=Monitor |language=en}}</ref>
== Olugendo lw'ebyobufuzi ==
Kankiriho ebyobufuzi yabitandikira mu ssomero lya Kampla Prents School gye yali nga [[:en:Head_girl_and_head_boy|omuwala omukulu]] . Mu kusoma kwe mu siniya, yaliko pulezidenti wa kiraabu nnyingi omuli ne club ya kansa. Yali mumyuka wa mukulembeze wa Aviation Club, era nga mwogezi mu Junior Debaters’ Club.<ref name=":0">{{Cite web |date=2024-07-16 |title=Leadership is about serving others – new MUST guild president |url=https://www.monitor.co.ug/uganda/special-reports/leadership-is-about-serving-others-must-guild-president-4691856 |access-date=2025-04-08 |website=Monitor |language=en}}</ref>
Mu 2024, Kankiriho yeesimbawo ku bwa pulezidenti bwa guild mu Mbarara University mu kolegi ya Science ne Technology, ng’avuganya ku bwapulezidenti, ng’avuganya n’abavuganya abalala babiri (Wilson Mugazhu, eyeesimbyewo [[National Unity Platform|ku NUP]], ne Kisitu Joseph, eyeesimbyewo mu Uganda Young Democrats). Yavuddeyo ng’omuwanguzi n’obululu 1499; Wilson yafunye obululu 1199 ate Kisitu n’afuna obululu 755.<ref>{{Cite web |title=New Vision - Latest News |url=https://www.newvision.co.ug/category/politics/brig-kankirihos-daughter-wins-must-guild-pres-NV_187245 |access-date=2025-04-08 |website=www.newvision.co.ug}}</ref><ref>{{Cite web |date=2024-05-04 |title=Arinda wins Mbarara University's guild presidential race |url=https://www.monitor.co.ug/uganda/news/national/arinda-wins-mbarara-university-s-guild-presidential-race-4613212 |access-date=2025-04-08 |website=Monitor |language=en}}</ref>
== Ebijuliziddwa ==
<references />
[[Category:Bannayuganda abayivu abakyala]]
iwr09lq8835h0gwt9ubtrw485jjov0o
Template:Distinguish
10
13370
74539
50423
2026-08-09T19:44:01Z
Verdy p
2558
use PAGENAME to avoid regenerating a duplicate namespace in the link, if it's given in the value of numbered parameters and the template is used in a category (where the target namespace of the link is implied); ensures links are valid
74539
wikitext
text/x-wiki
{{Hatnote |class = navigation-not-searchable
|lang = {{#if: {{{lang|}}} | {{{lang|}}} | {{Int:Lang}} }}
|1 = {{LangSwitch |lang = {{{lang|}}}
|af = Moenie verwar word nie 
|am = ከዚህ ጋር መምታታት የለበትም፦ 
|ar = لا ينبغي الخلط مع<!--x--> 
|be = Не блытаць с 
|be-tarask = Ня блытаць з 
|bg = Не се бъркайте 
|bn = এটি সাথে বিভ্রান্ত হবেন না 
|bs = Da se ne zbunjujem sa 
|ca = No confondre amb 
|ceb = Dili malibog 
|cs = Nezaměňujte s{{Colon|lang = cs}}
|da = Ikke forveksles med 
|de = Nicht zu verwechseln mit 
|el = Να μην συγχέεται με 
|en = Not to be confused with 
|eo = Ne konfuzu kun 
|es = No confundir con 
|et = Ärge segage 
|eu = Ez nahastu behar 
|fa = اشتباه نشود با<!--x--> 
|fi = Eri kuin 
|fr = Ne pas confondre avec 
|gl = Non se debe confundir con 
|he = אין לבלבל עם<!--x--> 
|hi = इससे भ्रमित न करें{{Colon|lang = hi}}
|hr = Razlikovati od pojma 
|hu = Nem tévesztendő össze{{Colon|lang = hu}}
|hy = Չի շփոթված 
|id = Jangan dikelirukan 
|it = Da non confondere con 
|ja = 下記とは異なります{{Colon|lang = ja}}
|ka = არ იყოს დაბნეული 
|kk = Шатастыруға болмайды 
|ko = 혼동하지 말 것{{colon|lang = ko}}
|ky = менен чаташтырбоо керек 
|la = Non confundendae sunt 
|lb = Net ze verwiessele mat 
|lt = Negalima painioti su 
|lv = Nevajadzētu sajaukt ar 
|mg = Tsy tokony hifangaro amin'ny 
|mk = Да не се меша со 
|ml = ഇതുമായി ആശയക്കുഴപ്പമുണ്ടാകരുത്{{Colon|lang = ml}}
|mwl = Nun cunfundir cun 
|nds = Nich to verwesseln mit 
|nl = Niet te verwarren met 
|no = Ikke forveksles med 
|pl = Nie należy mylić z 
|pt = Não confundir com 
|ro = Nu trebuie confundat cu 
|ru = Не следует путать с 
|sd = ان سان پريشان نه ٿيو{{Colon|lang = sd}}
|sk = Nesmie sa zamieňať 
|sl = Ne zamenjajte s/z 
|sq = Nuk duhet të ngatërrohet 
|sr = Да се не збуњују 
|sv = Ej att förväxla med 
|ta = குழப்பமடையக்கூடாது 
|tg = Бо хашмгин нашавед 
|th = ระวังสับสนกับ 
|tr = Şununla karıştırılmamalı{{Colon|lang = tr}}
|uk = Не варто плутати з 
|ur = اس کے ساتھ الجھن میں نہ پڑیں{{Colon|lang = ur}}
|uz = U bilan aralashmaslik kerak 
|vi = Không được nhầm lẫn với 
|zh-hans = 本页面或章节的主题不是
|zh-hant = 本頁面或章節的主題不是
|default = Not to be confused with 
}}{{Conj |type = or
|1 = {{#if: {{{1|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{1|}}}}}
| {{FULLPAGENAME:{{{1|}}}}}
}}|{{PAGENAME:{{{1|}}}}}]]</bdi>
| ...[<noinclude>‌</noinclude>[Category:Pages containing omitted template arguments]]
}}
|2 = {{#if: {{{2|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{2|}}}}}
| {{FULLPAGENAME:{{{2|}}}}}
}}|{{PAGENAME:{{{2|}}}}}]]</bdi>
}}
|3 = {{#if: {{{3|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{3|}}}}}
| {{FULLPAGENAME:{{{3|}}}}}
}}|{{PAGENAME:{{{3|}}}}}]]</bdi>
}}
|4 = {{#if: {{{4|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{4|}}}}}
| {{FULLPAGENAME:{{{4|}}}}}
}}|{{PAGENAME:{{{4|}}}}}]]</bdi>
}}
|5 = {{#if: {{{5|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{5|}}}}}
| {{FULLPAGENAME:{{{5|}}}}}
}}|{{PAGENAME:{{{5|}}}}}]]</bdi>
}}
|6 = {{#if: {{{6|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{6|}}}}}
| {{FULLPAGENAME:{{{6|}}}}}
}}|{{PAGENAME:{{{6|}}}}}]]</bdi>
}}
|7 = {{#if: {{{7|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{7|}}}}}
| {{FULLPAGENAME:{{{7|}}}}}
}}|{{PAGENAME:{{{7|}}}}}]]</bdi>
}}
|8 = {{#if: {{{8|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{8|}}}}}
| {{FULLPAGENAME:{{{8|}}}}}
}}|{{PAGENAME:{{{8|}}}}}]]</bdi>
}}
|9 = {{#if: {{{9|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{9|}}}}}
| {{FULLPAGENAME:{{{9|}}}}}}
}}|{{PAGENAME:{{{9|}}}}}]]</bdi>
}}
|10 = {{#if: {{{10|}}}
| ...[<noinclude>‌</noinclude>[Category:Pages containing omitted template arguments]]
}}
}}{{#if: {{{text|}}}
| {{#switch:{{padleft:|1|{{{text|}}}}}
|, = {{Comma |lang = {{int:Lang}}}}<bdi>{{Str right|{{{text|}}}|1}}</bdi>
|; = {{Semicolon |lang = {{int:Lang}}}}<bdi>{{Str right|{{{text|}}}|1}}</bdi>
|: = {{Colon |lang = {{int:Lang}}}}<bdi>{{Str right|{{{text|}}}|1}}</bdi>
|. = {{Full stop |lang = {{int:Lang}}}}<bdi>{{Str right|{{{text|}}}|1}}</bdi>
|-|–|— =  – <bdi>{{Str right|{{{text|}}}|1}}</bdi>
|#default =  <bdi>{{{text|}}}</bdi>
}}
}}{{Full stop |lang = {{int:Lang}}}}
}}<noinclude>{{Documentation}}</noinclude>
hkmq49w2bhtl0v3d4sc0jop8zcvu2l4
74540
74539
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Template:Distinguish]]: Importing the Support template
74539
wikitext
text/x-wiki
{{Hatnote |class = navigation-not-searchable
|lang = {{#if: {{{lang|}}} | {{{lang|}}} | {{Int:Lang}} }}
|1 = {{LangSwitch |lang = {{{lang|}}}
|af = Moenie verwar word nie 
|am = ከዚህ ጋር መምታታት የለበትም፦ 
|ar = لا ينبغي الخلط مع<!--x--> 
|be = Не блытаць с 
|be-tarask = Ня блытаць з 
|bg = Не се бъркайте 
|bn = এটি সাথে বিভ্রান্ত হবেন না 
|bs = Da se ne zbunjujem sa 
|ca = No confondre amb 
|ceb = Dili malibog 
|cs = Nezaměňujte s{{Colon|lang = cs}}
|da = Ikke forveksles med 
|de = Nicht zu verwechseln mit 
|el = Να μην συγχέεται με 
|en = Not to be confused with 
|eo = Ne konfuzu kun 
|es = No confundir con 
|et = Ärge segage 
|eu = Ez nahastu behar 
|fa = اشتباه نشود با<!--x--> 
|fi = Eri kuin 
|fr = Ne pas confondre avec 
|gl = Non se debe confundir con 
|he = אין לבלבל עם<!--x--> 
|hi = इससे भ्रमित न करें{{Colon|lang = hi}}
|hr = Razlikovati od pojma 
|hu = Nem tévesztendő össze{{Colon|lang = hu}}
|hy = Չի շփոթված 
|id = Jangan dikelirukan 
|it = Da non confondere con 
|ja = 下記とは異なります{{Colon|lang = ja}}
|ka = არ იყოს დაბნეული 
|kk = Шатастыруға болмайды 
|ko = 혼동하지 말 것{{colon|lang = ko}}
|ky = менен чаташтырбоо керек 
|la = Non confundendae sunt 
|lb = Net ze verwiessele mat 
|lt = Negalima painioti su 
|lv = Nevajadzētu sajaukt ar 
|mg = Tsy tokony hifangaro amin'ny 
|mk = Да не се меша со 
|ml = ഇതുമായി ആശയക്കുഴപ്പമുണ്ടാകരുത്{{Colon|lang = ml}}
|mwl = Nun cunfundir cun 
|nds = Nich to verwesseln mit 
|nl = Niet te verwarren met 
|no = Ikke forveksles med 
|pl = Nie należy mylić z 
|pt = Não confundir com 
|ro = Nu trebuie confundat cu 
|ru = Не следует путать с 
|sd = ان سان پريشان نه ٿيو{{Colon|lang = sd}}
|sk = Nesmie sa zamieňať 
|sl = Ne zamenjajte s/z 
|sq = Nuk duhet të ngatërrohet 
|sr = Да се не збуњују 
|sv = Ej att förväxla med 
|ta = குழப்பமடையக்கூடாது 
|tg = Бо хашмгин нашавед 
|th = ระวังสับสนกับ 
|tr = Şununla karıştırılmamalı{{Colon|lang = tr}}
|uk = Не варто плутати з 
|ur = اس کے ساتھ الجھن میں نہ پڑیں{{Colon|lang = ur}}
|uz = U bilan aralashmaslik kerak 
|vi = Không được nhầm lẫn với 
|zh-hans = 本页面或章节的主题不是
|zh-hant = 本頁面或章節的主題不是
|default = Not to be confused with 
}}{{Conj |type = or
|1 = {{#if: {{{1|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{1|}}}}}
| {{FULLPAGENAME:{{{1|}}}}}
}}|{{PAGENAME:{{{1|}}}}}]]</bdi>
| ...[<noinclude>‌</noinclude>[Category:Pages containing omitted template arguments]]
}}
|2 = {{#if: {{{2|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{2|}}}}}
| {{FULLPAGENAME:{{{2|}}}}}
}}|{{PAGENAME:{{{2|}}}}}]]</bdi>
}}
|3 = {{#if: {{{3|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{3|}}}}}
| {{FULLPAGENAME:{{{3|}}}}}
}}|{{PAGENAME:{{{3|}}}}}]]</bdi>
}}
|4 = {{#if: {{{4|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{4|}}}}}
| {{FULLPAGENAME:{{{4|}}}}}
}}|{{PAGENAME:{{{4|}}}}}]]</bdi>
}}
|5 = {{#if: {{{5|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{5|}}}}}
| {{FULLPAGENAME:{{{5|}}}}}
}}|{{PAGENAME:{{{5|}}}}}]]</bdi>
}}
|6 = {{#if: {{{6|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{6|}}}}}
| {{FULLPAGENAME:{{{6|}}}}}
}}|{{PAGENAME:{{{6|}}}}}]]</bdi>
}}
|7 = {{#if: {{{7|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{7|}}}}}
| {{FULLPAGENAME:{{{7|}}}}}
}}|{{PAGENAME:{{{7|}}}}}]]</bdi>
}}
|8 = {{#if: {{{8|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{8|}}}}}
| {{FULLPAGENAME:{{{8|}}}}}
}}|{{PAGENAME:{{{8|}}}}}]]</bdi>
}}
|9 = {{#if: {{{9|}}}
| <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category
| Category:{{PAGENAME:{{{9|}}}}}
| {{FULLPAGENAME:{{{9|}}}}}}
}}|{{PAGENAME:{{{9|}}}}}]]</bdi>
}}
|10 = {{#if: {{{10|}}}
| ...[<noinclude>‌</noinclude>[Category:Pages containing omitted template arguments]]
}}
}}{{#if: {{{text|}}}
| {{#switch:{{padleft:|1|{{{text|}}}}}
|, = {{Comma |lang = {{int:Lang}}}}<bdi>{{Str right|{{{text|}}}|1}}</bdi>
|; = {{Semicolon |lang = {{int:Lang}}}}<bdi>{{Str right|{{{text|}}}|1}}</bdi>
|: = {{Colon |lang = {{int:Lang}}}}<bdi>{{Str right|{{{text|}}}|1}}</bdi>
|. = {{Full stop |lang = {{int:Lang}}}}<bdi>{{Str right|{{{text|}}}|1}}</bdi>
|-|–|— =  – <bdi>{{Str right|{{{text|}}}|1}}</bdi>
|#default =  <bdi>{{{text|}}}</bdi>
}}
}}{{Full stop |lang = {{int:Lang}}}}
}}<noinclude>{{Documentation}}</noinclude>
hkmq49w2bhtl0v3d4sc0jop8zcvu2l4
Template:Clickable button
10
13424
74465
2017-12-25T12:09:09Z
Zhuyifei1999
2763
- extra linebreak
74465
wikitext
text/x-wiki
<onlyinclude>{{#if:{{{3|{{{external|}}}}}}
| <span class="plainlinks" {{#if:{{{id|}}}|id="{{{id}}}"}}>[{{{1|{{{target|//parameter_target_is_empty.de}}}}}} <span class="submit ui-button ui-widget ui-state-default ui-corner-all {{Clickable button/iconclass
|{{{4|{{{iconPrimary|}}}}}}
|{{{5|{{{iconSecondary|}}}}}}
|{{{2|{{{text|<noinclude>x</noinclude>}}}}}}
}} {{{class|}}}" role="button" aria-disabled="false"><!-- // -->{{#if:{{{4|{{{iconPrimary|}}}}}}
|<span class="ui-button-icon-primary ui-icon {{{4|{{{iconPrimary}}}}}}"> </span>
}}<span class="ui-button-text">{{{2|{{{text|Parameter '''text''' is empty}}}}}}</span>{{#if:{{{5|{{{iconSecondary|}}}}}}
|<span class="ui-button-icon-secondary ui-icon {{{5|{{{iconSecondary|}}}}}}"> </span>
}}</span>]</span><!--
-->
| [[{{{1|{{{target|Parameter target is empty!}}}}}}|<span class="submit ui-button ui-widget ui-state-default ui-corner-all {{Clickable button/iconclass
|{{{4|{{{iconPrimary|}}}}}}
|{{{5|{{{iconSecondary|}}}}}}
|{{{2|{{{text|<noinclude>x</noinclude>}}}}}}
}} {{{class|}}}" role="button" aria-disabled="false" {{#if:{{{id|}}}|id="{{{id}}}"}}><!-- // -->{{#if:{{{4|{{{iconPrimary|}}}}}}
|<span class="ui-button-icon-primary ui-icon {{{4|{{{iconPrimary}}}}}}"> </span>
}}<span class="ui-button-text">{{{2|{{{text|Parameter '''text''' is empty}}}}}}</span>{{#if:{{{5|{{{iconSecondary|}}}}}}
|<span class="ui-button-icon-secondary ui-icon {{{5|{{{iconSecondary|}}}}}}"> </span>
}}</span>]]
}}<!--
--></onlyinclude>
{{documentation}}
<!-- Add categories and interwikis to Template:Clickable button/doc subpage, not here! -->
3ivm5ze15yjn0qltf3rr8x93yd042c0
74466
50481
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Template:Clickable_button]]: Importing the Support template
50481
wikitext
text/x-wiki
{{#invoke:Clickable button|main}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
p9tti49lmjq7ifp2faksbrk6uifwc4d
Template:Cl
10
13589
74553
2014-02-06T10:27:42Z
Whym
11754
moved to [[Template:Cl/doc|doc]]
74553
wikitext
text/x-wiki
[[:Category:{{ucfirst:{{{1}}}}}]]<noinclude>
{{documentation}}
[[Category:Internal link templates|{{PAGENAME}}]]
</noinclude>
3qr2xusffwc3ne0jkyvo2e2iw7fq0ha
74554
50863
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Template:Cl]]: Importing the Support template
50863
wikitext
text/x-wiki
#REDIRECT [[Template:Category link]]
{{R from move}}
sxb6uqb5pxx7i9ck11lxcop05gxni7w
Module:Error
828
13604
74479
2025-12-05T08:26:52Z
Achim55
5003
[[Commons:Rollback|Reverted]] edits by [[Special:Contributions/~2025-38542-98|~2025-38542-98]] ([[User talk:~2025-38542-98|talk]]) to last revision by Achim55
74479
Scribunto
text/plain
-- This module implements {{error}}.
local p = {}
local function _error(args)
local tag = mw.ustring.lower(tostring(args.tag))
-- Work out what html tag we should use.
if not (tag == 'p' or tag == 'span' or tag == 'div') then
tag = 'strong'
end
-- Generate the html.
return tostring(mw.html.create(tag)
:addClass('error')
:wikitext(tostring(args.message or args[1] or error('no message specified', 2)))
)
end
function p.error(frame)
local args
if type(frame.args) == 'table' then
-- We're being called via #invoke. The args are passed through to the module
-- from the template page, so use the args that were passed into the template.
args = frame.args
else
-- We're being called from another module or from the debug console, so assume
-- the args are passed in directly.
args = frame
end
-- If the message parameter is present but blank, change it to nil so that Lua will
-- consider it false.
if args.message == "" then
args.message = nil
end
return _error(args)
end
return p
75bhqz94c9juppi0uajeqaixt1565oq
74480
50878
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Module:Error]]: Importing the Support template
50878
Scribunto
text/plain
-- This module implements {{error}}.
local p = {}
function p._error(args)
local tag = mw.ustring.lower(tostring(args.tag))
-- Work out what html tag we should use.
if not (tag == 'p' or tag == 'span' or tag == 'div') then
tag = 'strong'
end
-- Generate the html.
return tostring(mw.html.create(tag)
:addClass('error')
:cssText(args.style)
:wikitext(tostring(args.message or args[1] or error('no message specified', 2)))
)
end
function p.error(frame)
local args
if type(frame.args) == 'table' then
-- We're being called via #invoke. The args are passed through to the module
-- from the template page, so use the args that were passed into the template.
args = frame.args
else
-- We're being called from another module or from the debug console, so assume
-- the args are passed in directly.
args = frame
end
-- if the message parameter is present but blank, change it to nil so that Lua will
-- consider it false.
if args.message == "" then
args.message = nil
end
return p._error(args)
end
return p
p2nz3ttxcounymhrrhzzv162xd74myk
Geofrey Arinaitwe
0
15554
74673
70702
2026-09-10T19:49:28Z
Kisakye Jane
9195
Ntaddemu ettuluba
74673
wikitext
text/x-wiki
{{Databox}}
'''Geofrey Arinaitwe''' era amanyiddwa nga Arinaitwe Geoffrey [[Munnayuganda]] munoonyereza ku by’obulimi ne tekinologiya w’ebiramu era Dayirekita w’okunoonyereza mu kitongole kya National Coffee Research Institute (NaCORI), wansi w’ekitongole ekinoonyereza ku by’obulimi mu ggwanga ekya NARO.<ref name=":02">{{Cite web |date=2021-01-06 |title=From a scientist to agro-entrepreneur |url=https://www.monitor.co.ug/uganda/magazines/farming/from-a-scientist-to-agro-entrepreneur-1659608 |access-date=2026-08-20 |website=Monitor |language=en}}</ref><ref name=":12">{{Cite web |last=Nsubuga |first=Umar |date=2025-12-09 |title=Agric. & Environment: Inside Uganda's scientific race to develop drought-proof coffee |url=https://www.newvision.co.ug/category/agriculture/inside-ugandas-scientific-race-to-develop-dro-NV_224154_082026 |access-date=2026-08-20 |website=New Vision}}</ref><ref name=":22">{{Cite web |last=Nandudu |first=Prossy |date=2025-02-25 |title=Agric. & Environment: MPs want partnership to promote new agro technologies |url=https://www.newvision.co.ug/category/agriculture/mps-want-partnership-to-promote-new-agro-tech-NV_205735_082026 |access-date=2026-08-20 |website=New Vision}}</ref><ref>{{Cite web |title=NaCORI – National Coffee Resources Research Institute – National Agricultural Research Organisation (NARO) |url=https://naro.go.ug/naris/nacori/ |access-date=2026-08-20 |language=en-US}}</ref>
== Ebyenjigiriza bye ==
Arinaitwe alina diguli mu by'obulimi ne diguli eyookubiri mu by'obutonde okuva ku [[Makerere University, Uganda|yunivasite y'e Makerere]]. Era alina diguli eyookubiri mu bya sayaansi okuva ku Katholieke Universiteit Leuven (KU Leuven), Belgium.<ref name=":02" /><ref>{{Cite web |title=Doctoraatsverdediging |url=https://www.kuleuven.be/doctoraatsverdediging/overzicht/F_50000547_archief_2007.html |access-date=2026-08-20 |website=www.kuleuven.be}}</ref>
== Emirimu gye ==
Arinaitwe yatandika emirimu gye mu kunoonyereza ku by’obulimi ku National Agricultural Research Laboratories (NARL), [[Kawanda]], gye yakolera nga munnassaayansi omukulu mu by’obutonde. Era yaweereza nga munnassaayansi omukulu era nga omukulemebeze wa ttiimu mu pulojekiti ya NARO eya Banana Biofortification Project.<ref>{{Cite web |date=2021-01-06 |title=Progress made in banana research but slowed by lack of biotech law |url=https://www.monitor.co.ug/uganda/magazines/farming/progress-made-in-banana-research-but-slowed-by-lack-of-biotech-law-1600790 |access-date=2026-08-20 |website=Monitor |language=en}}</ref><ref>{{Cite web |date=2021-01-06 |title=Progress made in banana research but slowed by lack of biotech law |url=https://www.monitor.co.ug/uganda/magazines/farming/progress-made-in-banana-research-but-slowed-by-lack-of-biotech-law-1600790 |access-date=2026-08-20 |website=Monitor |language=en}}</ref><ref>{{Cite web |date=2021-01-06 |title=Vitamin A and iron-enriched bananas show promising signs |url=https://www.monitor.co.ug/uganda/magazines/farming/vitamin-a-and-iron-enriched-bananas-show-promising-signs-1486284 |access-date=2026-08-20 |website=Monitor |language=en}}</ref>
Oluvannyuma yaweereza nga akulira pulogulaamu owa National Biotechnology and Biodiversity Programme. Mu 2019, Arinaitwe yalondebwa okuweereza nga Dayirekita w’okunoonyereza mu kkampuni ya NaCORI.<ref>{{Cite web |date=2023-11-04 |title=Farmers savour coffee experience |url=https://www.monitor.co.ug/uganda/magazines/farming/farmers-savour-coffee-experience-4423294 |access-date=2026-08-20 |website=Monitor |language=en}}</ref><ref name=":12" /><ref name=":22" /><ref>{{Cite web |last=Independent |first=The |date=2022-04-12 |title=NaCORI to introduce new Arabica coffee varieties after 30 years of research |url=https://www.independent.co.ug/nacori-to-introduce-new-arabica-coffee-varieties-after-30-years-of-research/ |access-date=2026-08-20 |website=The Independent Uganda |language=en-US}}</ref>
Ng’oggyeeko ekyo, Arinaitwe y’omu ku baatandikawo kkampuni ya BioCrops Uganda Limited, ekola ku by’obutonde eyenyigira mu kukola ebintu ebikakasibwa okusimba.<ref name=":02" /><ref>{{Cite web |date=2014-03-04 |title=Ugandan Biotechnology Challenge Wins LINK IV Competition |url=https://globalknowledgeinitiative.org/2014/03/04/ugandan-biotechnology-challenge-wins-link-iv-competition/ |access-date=2026-08-20 |website=Global Knowledge Initiative |language=en-US}}</ref><ref>{{Cite web |last=Reporter |first=Vision |title=Biotechnology a business in waiting |url=https://www.newvision.co.ugnull/ |access-date=2026-08-20 |website=New Vision}}</ref>
== Ebituukiddwaako ==
Geofrey Arinaitwe ne ttiimu ye eya BioCrops Uganda ng'omuwanguzi wa lawundi eyokuna mu nteekateeka ya LINK (Learning and Innovation Network for Knowledge and Solutions). <ref>{{Cite web |date=2015-09-09 |title=Building a Biotechnology Network to Fight Malnutrition and Food Insecurity in Uganda |url=https://globalknowledgeinitiative.org/2015/09/09/building-a-biotechnology-network-to-fight-malnutrition-and-food-insecurity-in-uganda/ |access-date=2026-08-20 |website=Global Knowledge Initiative |language=en-US}}</ref>
== Laba ne ==
* [[Tress Bucyanayandi]]
* [[Zerubabel Nyiira]]
* [[Frank Tumwebaze]]
* Minisitule y’ebyobulimi, amakolero g’ebisolo n’obuvubi
== Ebijuliziddwa ==
{{Reflist}}
[[Category:Abantu Abalamu]]
[[Category:Bannayuganda abayivu abasajja]]
fxcqve7gcqjkl92pwf3vycrodsvlbf6
Ekisaawe ky'ennyonyi eky'Entebbe
0
15756
74407
74363
2026-09-10T12:05:47Z
NKINZIK MARIE
7432
Created by translating the page "[[:en:Special:Redirect/revision/1369509896|Entebbe International Airport]]"
74407
wikitext
text/x-wiki
'''Ekisaawe ky'ennyonyi eky'Entebbe''' ( kye kisaawe ky'ennyonyi kyokka eky'ensi yonna mu [[Uganda]]. Kisangibwa kiromita 6 ( mayiro 3.7 ) mu bukiikaddyo bw’obugwanjuba bw’ekibuga [[Entebbe]], ku bukiikakkono bw'olubalama [[Nnalubaale|lw’ennyanja Victoria]]. Kino kiweza kiromita 40 (25 mi) ku luguudo oluva mu bukiikaddyo bw’amaserengeta g’ekitundu ky’ebyobusuubuzi wakati mu [[Kampala]], ekibuga ekikulu ekya Uganda.
Ekitebe ky’ekitongole ky’ennyonyi ekya Civil Aviation Authority of Uganda ekikulu kikyusiddwa ne kitwalibwa mu kifo ekipya okuva ku luguudo olukulu olw’ekisaawe ky’ennyonyi ( [[Entebbe–Kampala Expressway]] ne Tunnel Road), kyokka nga kiriraanye ebifo ebisimbye mu kisaawe ky’ennyonyi.
== Ebyafaayo byakyo ==
[[File:Uganda._Entebbe._Plane_landed_on_aerodrome_LOC_matpc.17429_(cropped).jpg|left|thumb| A Handley Olupapula HP42 olwa Imperial Airways e Entebbe, 1936]]
Ekisaawe kino kyaggulwawo abakulu b'amatwale ga Bungereza. Okusinziira ku mukutu gwa Uganda Civil Aviation Authority, olw’okubeera ekisaawe kino ku [[Nnalubaale|nnyanja Victoria]] n’ebifo ebiriwo, gavumenti y’amatwale yasalawo nti ekifo ekisinga okunyumira entambula y’ennyonyi kyali Entebbe.<ref>{{Cite web |title=About Entebbe International Airport |url=https://caa.go.ug/about-entebbe-international-airport/ |url-status=dead |archive-url=https://web.archive.org/web/20230601025935/https://caa.go.ug/about-entebbe-international-airport/ |archive-date=1 June 2023 |access-date=21 May 2023 |publisher=[[Uganda Civil Aviation Authority]]}}</ref>
Nga 10 Ogwekkuminoogumu 1951, ekisaawe kyaggulwawo mu butongole oluvannyuma lw’okugaziya ebifo byakyo. Runway oba ekkubo ennyonyi kwesinziira okusituka oba okukka 12/30 yali ffuuti 9,900 (mayiro 3,000), nga beetegekera obuweereza obukolebwa de Havilland Comet.<ref>{{Cite web |last=Movietone |date=10 December 1951 |title=Africa's Largest Airport |url=http://www.movietone.com/N_search.cfm?ActionFlag=back2ResultsView&start=1&pageStart=1&totalRecords=1&V_DateType=3&V_DECADE=1929&V_FromYear=1928&V_QualifySubject=&V_storyNumber=&V_TermsToOmit=&V_ToYear=1980&V_searchType=1&V_MainSubject=Entebbe&V_Year=1951&V_resultsPerPage=30 |url-status=live |archive-url=https://web.archive.org/web/20151123035304/http://www.movietone.com/N_search.cfm?ActionFlag=back2ResultsView&start=1&pageStart=1&totalRecords=1&V_DateType=3&V_DECADE=1929&V_FromYear=1928&V_QualifySubject=&V_storyNumber=&V_TermsToOmit=&V_ToYear=1980&V_searchType=1&V_MainSubject=Entebbe&V_Year=1951&V_resultsPerPage=30 |archive-date=23 November 2015 |access-date=10 June 2018 |publisher=Movietone.com |format=Archived from the Original}}</ref> Ekizimbe ekipya ekikulu eky’ekisaawe kino kyakolebwa omukubi w’ebifaananyi Omuyugoslav Montenegro Aleksandar Keković era ne kizimbibwa kkampuni ya Energoprojekt holding mu kiseera kya 1972-1973.
Ekisaawe ky'ennyonyi ekikadde Entebbe kikozesebwa amagye ga Uganda. Kye kyali kifo awaali ekikwekweto ky'okutaasa abawambe ekyakolebwa Omuyisirayiri Sayeret Matkal, ekyatuumibwa Operation Entebbe, mu 1976 oluvannyuma lw'Abawalabu n'Abagirimaani okuwamba ennyonyi ya Air France Flight 139 oluvannyuma lw'okuyimirira mu kibuga Athens ekya [[Buyonaani|Greece]] ng'egenda e Paris okuva e Tel Aviv. Ekifo we baadduukirira abantu kyali kifo ekikadde awaali wasimba abasaabaze, ekibadde kimenyeddwa, okuggyako akanaala kwe balondoolera ennyonyi n’ekisenge ky’ekisaawe ky’ennyonyi. Okusinziira ku alipoota eyafulumizibwa mu 2006, enteekateeka zaakolebwa okuzimba ekifo awasimba abasaabaze mu ggwanga mu kifo ekisaawe ky’ennyonyi ekikadde we kyali.<ref>{{Cite web |date=22 September 2006 |title=Mayor of Entebbe: Old Terminal will not be demolished |url=http://www.israeltoday.co.il/NewsItem/tabid/178/nid/9596/Default.aspx |url-status=live |archive-url=https://web.archive.org/web/20160224204926/http://www.israeltoday.co.il/NewsItem/tabid/178/nid/9596/Default.aspx |archive-date=24 February 2016 |access-date=17 February 2016}}</ref> Ekisaawe kino kyasaanawo ekitundu mu Gwokuna 1979 bwe kyawambibwa amagye ga Tanzania mu [[Olutalo lwa Uganda ne Tanzania|lutalo lwa Uganda ne Tanzania]] . <ref>{{Cite news |last=Honey |first=Martha |date=11 April 1979 |title=Entebbe: Tranquility Amid Destruction |url=https://www.washingtonpost.com/archive/politics/1979/04/11/entebbe-tranquility-amid-destruction/222b27f1-efc2-40d5-ada0-cc2fa2d00ccb/ |url-status=live |archive-url=https://web.archive.org/web/20190405084321/https://www.washingtonpost.com/archive/politics/1979/04/11/entebbe-tranquility-amid-destruction/222b27f1-efc2-40d5-ada0-cc2fa2d00ccb/ |archive-date=5 April 2019 |access-date=20 December 2018 |work=The Washington Post}}</ref>
[[Category:Entebbe]]
34r7774xl9kqrw3ijflalvb8buyuchi
Template:Orphan/sandbox
10
15765
74408
2026-09-10T15:12:42Z
B722N
6898
created template
74408
wikitext
text/x-wiki
{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B={{draft other||{{Ambox
| name = Orphan
| type = style<!--Style issues, such as {{cleanup}} and {{underlinked}}-->
| class = ambox-Orphan
| style = {{#switch: {{{date|}}} | {{Monthyear}} = | {{Monthyear-1}} = | display: none}}<!--Optional CSS value, specifies the style used by the entire message box table-->
| image = [[File:Wiki letter w.svg|50x40px]]
| all = All orphaned articles
| sect = article
| plainlinks = no
| text = '''is an [[Wikipedia:Orphan|orphan]], as no other articles <span class="plainlinks">[{{fullurl:Special:WhatLinksHere|target={{PAGENAMEE}}&namespace=0}} link to it]</span>'''. Please [[Help:Link|introduce links]] to this page from <span class="plainlinks">[https://en.wikipedia.org/w/index.php?title=Special%3ASearch&redirs=1&search={{PAGENAMEU}}&fulltext=Search&ns0=1&title=Special%3ASearch&advanced=1&fulltext={{PAGENAMEU}} related articles]</span>.
| cat = {{#if:{{{att|}}}|Attempted de-orphan|Orphaned articles}}
| date = {{#if:{{{att|}}}| {{{att}}} | {{{date|}}} }}
}}
}}
}}<noinclude>
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
{{documentation}}
</noinclude>
dbx2e1gakudu8ggb67fhmap49v9hv2j
Template:Orphan/testcases
10
15766
74409
2026-09-10T15:13:55Z
B722N
6898
created template
74409
wikitext
text/x-wiki
{{Testcases}}
* [[Template:Orphan|live]]
{{Orphan|date={{#time: F Y}}}}
* [[Template:Orphan|live]], with older date (should not be visible)
{{Orphan|date={{#time: F Y|-13 months}}}}
* [[Template:Orphan/sandbox|sandbox]]
{{Orphan/sandbox|date={{#time: F Y}}}}
* [[Template:Orphan|live]] inside {{Tl|Multiple issues}}
{{Multiple issues|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan|date={{#time: F Y}}}}
}}
* [[Template:Orphan|live]] inside {{Tl|Multiple issues}}, with older date
{{Multiple issues|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan|date={{#time: F Y|-13 months}}}}
}}
* [[Template:Orphan|live]] inside {{Tl|Multiple issues/sandbox}}
{{Multiple issues/sandbox|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan|date={{#time: F Y}}}}
}}
* [[Template:Orphan|live]] inside {{Tl|Multiple issues/sandbox}}, with older date
{{Multiple issues/sandbox|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan|date={{#time: F Y|-13 months}}}}
}}
* [[Template:Orphan/sandbox|sandbox]] inside {{Tl|Multiple issues}}
{{Multiple issues|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan/sandbox|date={{#time: F Y}}}}
}}
* [[Template:Orphan/sandbox|sandbox]] inside {{Tl|Multiple issues}}, with older date
{{Multiple issues|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan/sandbox|date={{#time: F Y|-13 months}}}}
}}
* [[Template:Orphan/sandbox|sandbox]] inside {{Tl|Multiple issues/sandbox}}
{{Multiple issues/sandbox|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan/sandbox|date={{#time: F Y}}}}
}}
* [[Template:Orphan/sandbox|sandbox]] inside {{Tl|Multiple issues/sandbox}}, with older date
{{Multiple issues/sandbox|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan/sandbox|date={{#time: F Y|-13 months}}}}
}}
=== Parameters ===
* [[Template:Orphan|live]], marked as "few"
{{Orphan|date={{#time: F Y}}|few={{#time: F Y}}}}
* [[Template:Orphan/sandbox|sandbox]], marked as "few"
{{Orphan/sandbox|date={{#time: F Y}}|few={{#time: F Y}}}}
* [[Template:Orphan|live]], marked as "att"
{{Orphan|date={{#time: F Y}}|att={{#time: F Y}}}}
* [[Template:Orphan/sandbox|sandbox]], marked as "att"
{{Orphan/sandbox|date={{#time: F Y}}|att={{#time: F Y}}}}
* [[Template:Orphan|live]], with older date (should not be visible) and marked as "few"
{{Orphan|date={{#time: F Y|-13 months}}|few={{#time: F Y}}}}
* [[Template:Orphan/sandbox|sandbox]], with older date (should not be visible) and marked as "few"
{{Orphan/sandbox|date={{#time: F Y|-13 months}}|few={{#time: F Y}}}}
* [[Template:Orphan|live]], with older date (should not be visible) and marked as "att"
{{Orphan|date={{#time: F Y|-13 months}}|att={{#time: F Y}}}}
* [[Template:Orphan/sandbox|sandbox]], with older date (should not be visible) and marked as "att"
{{Orphan/sandbox|date={{#time: F Y|-13 months}}|att={{#time: F Y}}}}
* [[Template:Orphan/sandbox|sandbox]] inside {{Tl|Multiple issues}}, with older date and marked as "few"
{{Multiple issues|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan/sandbox|date={{#time: F Y|-13 months}}|few={{#time: F Y}}}}
}}
* [[Template:Orphan/sandbox|sandbox]] inside {{Tl|Multiple issues}}, with older date and marked as "att"
{{Multiple issues|
{{Unreferenced|date={{#time: F Y}}}}
{{Orphan/sandbox|date={{#time: F Y|-13 months}}|att={{#time: F Y}}}}
}}
pca5ov2hdk3w31x5185773b7kyq2b5u
Template:Orphan file
10
15767
74410
2026-09-10T15:15:43Z
B722N
6898
created template
74410
wikitext
text/x-wiki
{{Imbox
|type=style
| text = This media file is either in the [[Public domain|public domain]] or published under a [[Free content|free license]], and contains '''no inbound file links'''. If this media file is useful, then it should be [[Wikipedia:Moving files to Commons|transferred]] to the [[Wikimedia Commons]]. If this media is ''not'' useful, then please [[Wikipedia:Proposed deletion|propose it for deletion]] or list it at [[Wikipedia:Files for discussion|files for discussion]].
}}{{{category|{{image other| [[Category:Wikipedia orphaned files]]}}}}}<noinclude>
{{Documentation}}
</noinclude>
051j3vrflxnpv2p61svltd4iuaeuiss
Template:Orphan file/doc
10
15768
74411
2026-09-10T15:16:40Z
B722N
6898
created template
74411
wikitext
text/x-wiki
{{Documentation subpage}}
{{High-use}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
This maintenance template tracks [[Free license|free]] and [[public domain]] files without inbound <code>[[mw:API:Fileusage|fileusage]]</code>. It automatically adds files to [[:Category:Wikipedia orphaned files]].
* {{A note}} This template is '''not''' for non-free use images, see {{Tl|Di-orphaned non-free use}}.
<includeonly>{{Sandbox other||
<!-- ADD CATEGORIES BELOW THIS LINE -->
[[Category:File maintenance templates|{{PAGENAME}}]]
<!-- ADD INTERWIKIS BELOW THIS LINE -->
[[it:Template:Immagine orfana]]
[[mk:Шаблон:Слика сираче]]
}}</includeonly>
pkrwpjhwemosgr0eg365gurkhlxnxjz
Template:A note
10
15769
74412
2026-09-10T15:17:49Z
B722N
6898
created template
74412
wikitext
text/x-wiki
{{Respond|info|{{{1|Note:}}}|alt=Information}}<!--template:A note--><noinclude>
{{documentation}}</noinclude>
45dvn0d8brwiwxy39a99wcvfppfwb2m
Template:A note/doc
10
15770
74413
2026-09-10T15:18:16Z
B722N
6898
created template
74413
wikitext
text/x-wiki
{{Documentation subpage}}
{{High-use}}
{{Improve documentation|reason=explanation is more confusing than the actual function. Example suggests the template produces the comment text, which it doesn't.}}
<!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE -->
{{distinguish|Template:Anote}}
== Usage ==
A demonstration of default output, for an actual note about this template:
:{{a note}} The "A" in the name of this template doesn't stand for anything, it's the [[A and an|English article "a"]]. Specifically, it does not stand for "administrator", as in {{tl|anote}} (without the space between the "a" and the "note"). {{tl|note}} already existed as part of the old way of doing citations.
Pass an argument to replace the message.
{{tlx|A note|Important note:}} produces:
:{{A note|Important note:}}
{{tlx|A note|Custom text:}} produces:
:{{A note|Custom text:}}
== See also ==
{{done/See also}}
<includeonly>{{Sandbox other||
<!--Categories below this line, please; interwikis at Wikidata-->
[[Category:Image with comment templates]]
}}</includeonly>
p4iu3cnyr28voazenlnx8ix1oy0g4o6
Wikipedia:Template documentation
4
15771
74414
2026-09-10T15:19:49Z
B722N
6898
created template
74414
wikitext
text/x-wiki
{{short description|Wikimedia page about template documentation}}
{{Wikipedia how to|WP:TDOC|WP:DOC}}
[[Help:Template|Templates]] are a very powerful feature of [[MediaWiki]], but can be confusing to new users, and even experienced users can have difficulty making sense of the more complex ones. Templates should therefore be accompanied by [[documentation]] to improve usability.
'''Template documentation''' should explain what a template does and how to use it. It should be simple enough that a user without complete knowledge of the intricacies of template syntax can use it correctly, including many experienced contributors who focus their attention elsewhere. This is especially true in the case of very widely used templates.
Editors should defer to official [[WP:POLICIES |policies or guidelines]] when template documentation pages are inconsistent with established community standards and principles. Editors should also avoid "quoting" template documentation pages as though they are policy—including this [[WP:INFOPAGES|how-to guide]]. Template documentation pages can be written without much—if any—debate, as opposed to Wikipedia policies that have been [[WP:PROPOSAL|thoroughly vetted by the community]] (see [[WP:Local consensus]] for details).
== What to include ==
Template documentation should cover:
* The '''basic purpose''' of the template: what it does and if it is not immediately obvious, why it needs to be done. If there are other templates with similar names or purposes, it's a good idea to mention those, in order to reduce the chance of the wrong one being used. Include important '''limitations''', such as the lack of {{tl|Navbox visibility}} on the Mobile web site, if a template should only be used for certain countries or time periods, or other things that editors need to know before choosing to use the template.
* The '''[[Help:Template#Parameters|parameters]]''' of the template: whether they are numbered, named or optional, and if so, what the default values are and what effect they have. If a parameter can take only a limited set of values or is constrained in any way, for example, if it can only use "yes", "no", or a number, this should be clearly explained.
* '''Usage examples''': specify the exact [[WP:wikitext|wikitext]] that should be used and the result that it produces. The wikitext can be wrapped in {{tag|code}} tags to make it clear and <code>easy to copy, like this</code>. If the template can be used in several ways, with or without optional parameters, for example, provide a range of examples. A good way to do so is to transclude the template itself into the documentation a few times (i.e., use live examples), with different parameters each time and list the parameters used in each case. Wrap your example template calls in {{tag|code|content={{tag|nowiki}}}} tags to present them as plain text. Alternatively, templates such as {{tl|demo}} or {{tl|demo inline}} are available for this exact purpose, and avoids having to put the template call twice in the wikitext.
* '''TemplateData''' tags: See [[Wikipedia:TemplateData/Tutorial]].
* '''Related templates''': if the template is one of a series of templates, include links to these – in particular, ensure that every template in the series is linked from each of the others, as this makes navigation easier. (A separate navigation template may be useful for this purpose, e.g., {{tl|Protection templates}}).
* '''[[Wikipedia:Categorization|Categories]]''' where applicable ([[Help:Interwikimedia links|InterWikimedia links]] should be listed at [[d:|Wikidata]] – more information at [[Wikipedia:Wikidata]]). Like the documentation, categories must be listed within a {{tag|noinclude}} container on a template, or within {{tag|includeonly|p|content={{((}}Sandbox other{{!!}}...{{))}}}} tags if placed on a documentation page. Many template categories are available, see: [[:Category:Wikipedia templates]] to browse through them.
The English Wikipedia is a source of templates for hundreds of other Wikipedias and [[WP:Wikimedia sister projects|sister projects]]. Often, templates are fully self-contained, so the process is easy: The contents are simply copied to a new template page at the other wiki, and everything works. However, on more complex templates, the template may invoke a [[WP:module|module]], transclude other templates, only work if paired with a separate template, or need particular [[WP:CSS|CSS]] or JavaScript code to work. In these cases, it is helpful to include a brief list of templates or other code that this one requires, at the end of the documentation.
== Where to place it ==
When viewing the rendered template page itself (as opposed to its wikicode), what is usually visible right under the title is the rendered template itself, followed by a separate section to display the template's rendered documentation, followed by the categories to which the template belongs. Categories and documentation of any sort on a template page (including [[Wikipedia:TemplateData|TemplateData]]) should always be enclosed by [[WP:PARTRANS|noinclude tags]], so that they do not show up when the template is used on another page.
The editable [[Wikipedia:Wikicode|wikicode]] for the template's documentation is often placed on a separate [[Wikipedia:Subpages|subpage]] of the template itself, which is then [[Wikipedia:Transclusion|transcluded]] at the end of the template page. This separates the often complex template code from the documentation, making the documentation easier to edit and reducing the number of accidental editing errors in the template code. It also allows templates to be [[Wikipedia:Protection policy|protected]] where necessary, limiting editing access to important templates' code while allowing anyone to edit those templates' documentation. This method is sometimes referred to as the "template-doc page pattern".
== How to create a documentation subpage ==
===<span class="anchor" id="Use Template:Documentation"></span>Put documentation in the template===
You must put {{tlx|documentation}} when creating (publishing) a template. Then you have a choice: either create a documentation subpage (<code>/doc</code>), which is then automatically displayed, complete with <kbd>[view] [edit] [history] [purge]</kbd> links (meaning editors can view and edit the template documentation clicking in this pane <kbd>[view]</kbd> or <kbd>[edit]</kbd> link, respectively).
Alternatively, use the {{para|content}} parameter and supply the help documentation right there, inside the {{tlx|documentation}} template (presumably still on the template's main page). This also suppresses the links. The remainder of this section concerns itself with the default option: to create a subpage.
Template documentation subpages using {{tlx|documentation}} are named and formatted using the following general pattern, for consistency.
Suppose your template is named <code>Template:X</code>. Edit the template and append the following at the end of the template code, or use {{tlxs|doc-code}}:
{{Colors|black|#CCC|{{var|[--last line of your template code--]}}}}{{#tag:nowiki|{{doc-code}}}}
This will transclude {{tl|documentation}} at the bottom of the template page.
{{strong|Important}}: Make sure the opening {{tag|noinclude|o}} begins immediately after the last character of the template code or text and {{em|not}} on a new line, nor with any intervening spaces. Otherwise, extra space may be inserted below the template when it is used, which is usually not wanted.
Putting {{tlx|documentation}} on a new line after the {{tag|noinclude|o}} tag is a standard practice that, in some cases, avoids [[Wikipedia:Linter|Linter]] syntax errors on template pages.
If the template is already protected, ask an [[Wikipedia:Administrators|administrator]] to do this or request an edit by using an {{tl2|edit protected}} on the template's talk page. If documentation and categories already exist in a section, enclosed within a {{tag|noinclude}} container, move them into the documentation subpage (where they should be enclosed in {{tag|includeonly}}), as it is best not to have documentation split across two separate pages.
=== Automatic creation ===
Use the <kbd>[create]</kbd> link at the bottom of the empty documentation box to automatically create a [[Wikipedia:Preload|preloaded]] documentation subpage. Insert the documentation after the top line and categories under the appropriate comment line – leaving the comment in place, so that the layout is preserved when the page is edited in future. Related templates, policy page, projects, etc. can be linked to by adding a "See also" section. Save the subpage.
=== Manual creation ===
To create the documentation subpage manually, create a subpage with the name <code>Template:X/doc</code>. See the details at {{tl|Documentation subpage}} or start the page by copy-pasting the following standard wikitext:
<!---------------------------------------------------------------------------------------
Note: The following code block is copy-pasted from [[Template:Documentation/preload]];
check it periodically for updates and copy it here again if necessary, amending its
"<include<includeonly></includeonly>only>" accordingly.
The following substitution code may be helpful (as long as
[[Template:Documentation/preload]] does not use "subst:" in its source code):
{{subst:#tag:syntaxhighlight|
{{subst:Documentation/preload}}
|lang="wikitext"|style="overflow:auto;"}}
---------------------------------------------------------------------------------------->
<syntaxhighlight lang="wikitext" style="overflow:auto;">
{{Documentation subpage}}
== Usage ==
<includeonly>{{Sandbox other||
<!-- Categories below this line -->
}}</includeonly>
</syntaxhighlight>
The top line will display a message explaining the current page and a link to the template page. Save the subpage and follow instructions in {{section link||Use Template:Documentation}}.
'''Note:''' Hatnotes should be placed {{em|after}} {{tl|documentation subpage}} so that hatnotes that refer to the documented template page, like {{tl|redirect}}, are given context.
=== With TemplateData ===
Instead of manually writing a lead graf and a usage table, the {{tl|Format TemplateData}} template can do most of the job. Simply write your TemplateData in the table interface, and then wrap it into a template call like <code><nowiki>{{Format TemplateData|1=<templatedata>...</templatedata>}}</nowiki></code> at the top of the page.
=== Notes ===
You may wish to redirect the talk page of the /doc subpage to the talk page of the template itself. Then all talk relating to the template and its documentation will end up on the same talkpage. For example, redirect <code>Template talk:X/doc</code> to <code>Template talk:X</code>.
A documentation page can also be redirected to the /doc subpage of another template, if that covers the usage for both templates. In this case, clicking the links to view or edit the documentation will directly open the target of the redirect. If it is necessary to access the redirect itself (e.g. to remove the redirect and create a separate doc page), go to the template URL by clicking in the location bar at the top of your browser, and add /doc at the end.
== Blank ==
To generate a blank template, which may then be copied from the documentation and pasted into another page, use:
:<syntaxhighlight lang="wikitext">{{subst:#tag:pre|{{subst:Parameters|code|base={{subst:BASEPAGENAME}}}}|style=overflow: auto;}}</syntaxhighlight>
== Examples ==
To generate an instance of the template, populated with its own property names, use:
:<syntaxhighlight lang="wikitext">{{subst:Parameters|demo|base={{subst:BASEPAGENAME}}|_base=}}</syntaxhighlight>
== Categories and interwiki links ==
* '''To place the template itself into a category''', add the <code><nowiki>[[Category:Category name]]</nowiki></code> code inside an {{tag|includeonly}} section on the ''doc'' subpage. See {{Section link|Wikipedia:Categorization|Templates}} for guidelines.
* '''To create an interwiki link for the template itself''', go to [[Wikipedia:Wikidata|Wikidata]] and follow the instructions for adding links to pages.
* '''To place the ''doc'' subpage into a category''', add the <code><nowiki>[[Category:Category name]]</nowiki></code> code inside a {{tag|noinclude}} section on the ''doc'' subpage.
* '''To make the template place an article into a category''' (when the article includes the template), add the <code><nowiki>[[Category:Category name]]</nowiki></code> code inside an {{tag|includeonly}} section on the template page. Exact placement within the template code may affect how the category code is executed. See {{Section link|Wikipedia:Categorization|Categorization using templates}} for guidelines.
<!-- -->
<!-- ==Example==
See the heavily-used [[Template:cite web]] for an example of detailed template documentation. Note that the template itself is protected, but the documentation subpage, [[Template:cite web/doc]] is unprotected and can still be edited.
--><!-- The preceding section appears out dated at this time. I left it here so as to hold a place for an updated example. Template:cite web now uses lua. Lua is a programming language now available via the Scribunto MediaWiki extension. -->
== /sandbox and /testcases ==
Before doing changes to a template it can be good to first copy the template code to a sandbox and run some testcases, since the template might be visible on thousands or even millions of pages. If you create subpages named exactly "'''/sandbox'''" and "'''/testcases'''" to a template then the green {{tlc|documentation}} box on the template auto-detects this and will show links to those pages in its footer. See [[Wikipedia:Template sandbox and test cases]] for more information.
== Several templates, one documentation page ==
When several templates work together or are very similar then it is often clearer and easier to maintain one single documentation page that documents them together. The simplest way to do this is to make a full documentation page at one of the templates, and then make "soft redirects" from the other templates. See, for instance: {{tl|wrap}}.
==Directly on a template page==
When a documentation subpage has not been created, and the {{tlx|documentation}} template is being used with a {{para|content}} parameter on the actual template page, then to place the template itself into a category, add {{elc|Category:Category name}} inside the documentation template, after the content. For example, for placement on the actual template page:
<syntaxhighlight lang="wikitext" style="overflow:auto;">
<!--Last line of your template code--><noinclude>
{{Documentation
| content =
<!-- template documentation -->
[[Category:Category name]]
[[Category:Category name2]]
}}</noinclude>
</syntaxhighlight>
== {{Anchor|When no documentation needed}} When no documentation is needed ==
<!-- This Anchor tag serves to provide a permanent target for incoming section links. Please do not move it out of the section heading, even though it disrupts edit summary generation (you can manually fix the edit summary before you save your changes). Please do not modify it, even if you modify the section title. It is always best to anchor an old section header that has been changed so that links to it won't be broken. See [[Template:Anchor]] for details. (This text: [[Template:Anchor comment]]) -->
When a template as displayed will link to a page that can serve as the documentation, then separate documentation is superfluous and does not need to be created. For instance, a stub template, using the {{tl|asbox}} template as a base, will already display pre-loaded common documentation for all stub templates using that template, and will not need additional documentation.
== When no documentation is to be found ==
If you can, do help out by writing helpful documentation.
If this isn't an option, place the {{tl|No documentation}} template, telling other editors that the documentation for this template is needed.
== Tips and tricks ==
Here are some tips to facilitate writing documentations:
* Links to templates like {{tlp|Japanese year|1800}} can be inserted by writing {{tlp|tlp|Japanese year|1800}}. See {{tl|tlp}} for similar templates.
* HTML tags like {{tag|ref|attribs=group{{=}}"note"}} can be easily inserted with {{tl|tag}}. This example is written as {{tlp|tag|ref|attribs{{=}}group{{=}}"note"}}
* Equals sign '''=''' can be inserted with {{tn|{{=}}}}. For example, {{tlp|Citation needed|date{{=}}1900-02-29}} is made by {{tlp|tlp|Citation needed|date{{<nowiki />=}}1900-02-29}}. Avoid the equivalent notation &#61; which is not easy to read for other editors.
* Don't forget the single {{tag|nowiki|s}} tag:
** <code><nowiki>[[<nowiki />example]]</nowiki></code> becomes [[<nowiki />example]],
**and <code><nowiki>[<nowiki />http://en.wikipedia.org no link]</nowiki></code> is [<nowiki />http://en.wikipedia.org no link]. See [[WP:NOWIKI]] for the details.
* For a link to a category, use {{tl|cat}}. For example, <code><nowiki>{{cat|Templates with incorrect parameter syntax}}</nowiki></code> becomes {{cat|Templates with incorrect parameter syntax}}.
* Use utility templates to quickly build-up documentation , e.g. {{t|Collapsible option}}. See [[:Category:Documentation shared content templates|Category:Documentation shared content templates]].
* To suppress categorization of the /sandbox and /testcases pages of the template (if they exist), use this code at the bottom of the documentation subpage: <syntaxhighlight lang="wikitext" style="overflow:auto;"><includeonly>{{sandbox other||{{testcases other||
<!-- Categories below this line, please; interwikis at Wikidata -->
}}}}</includeonly>
</syntaxhighlight>
* When the template is a {{em|child infobox}}, documentation appears broken. Prevent this by adding the <includeonly> tag: <syntaxhighlight lang="wikitext">
{{Some infobox (child) template
| child = <includeonly>yes</includeonly>
| label1 = Hello
| data1 = World
}}<noinclude>{{documentation}}</noinclude>
</syntaxhighlight>
== See also ==
* {{tl|Documentation}} – Transcludes the documentation on the template page, and provides documentation view, edit and history links
* {{tl|Documentation subpage}} – Explains that what follows is documentation, and links to the documented page
* [[m:Help:Template#Noinclude, includeonly, and onlyinclude|{{tag|noinclude|o}} and {{tag|includeonly|o}}]]
* {{tl|Improve documentation}}
* {{tl|Tag}} – global use
* {{tl|Template reference list}}
* {{tl|WPBannerDoc}} – for WikiProject templates
* [[Wikipedia:High-risk templates]]
* [[Wikipedia:Template sandbox and test cases]]
* [[:Category:Documentation assistance templates]]
{{Help navigation}}
{{Wikipedia technical help|collapsed}}
[[Category:Template documentation| ]]
[[Category:Wikipedia template help]]
qxxphxu2m0x7f1c66gdt0h60oun1vv4
Template:Image other
10
15772
74415
2026-09-10T15:20:31Z
B722N
6898
created template
74415
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:6}}
| file
| other
}}
}}
| file
| image = {{{1|}}}
| other
| #default = {{{2|}}}
}}<!--End switch--><noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
19tqbvmuftf9lvu4r4wqwlcotcme99a
74417
74415
2026-09-10T15:22:53Z
B722N
6898
created template
74417
wikitext
text/x-wiki
#REDIRECT[[Template:File other]]
7uhhbit2d6oxmfdcdd4wy3qqqny3l9w
Template:File other
10
15773
74416
2026-09-10T15:22:08Z
B722N
6898
created template
74416
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:6}}
| file
| other
}}
}}
| file
| image = {{{1|}}}
| other
| #default = {{{2|}}}
}}<!--End switch--><noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
19tqbvmuftf9lvu4r4wqwlcotcme99a
Template:File other/doc
10
15774
74418
2026-09-10T15:23:23Z
B722N
6898
created template
74418
wikitext
text/x-wiki
{{Documentation subpage}}
{{Template shortcut|ns6}}
{{Used in system}}
{{cascade-protected template}}
<!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE -->
This is the {{tl|file other}} meta-template.
This template helps other templates detect if they are on a "File:" page or some "other" type of page.
This template was previously named {{tl|image other}}. That name redirects here so it still works, but using the old name is now deprecated.
=== Usage ===
This template usually takes two parameters, like this:
<syntaxhighlight lang="wikitext">
{{file other | File page text | Other pages text }}
</syntaxhighlight>
If the template is on a file (image) page, it will return this:
:{{file other | demospace=file | File page text | Other pages text }}
If the template is on any other page, it will return this:
:{{file other | File page text | Other pages text }}
A typical usage case could be to make it so that a template only adds a category when on file pages. Thus not adding other pages that just show the template. Like this:
<syntaxhighlight lang="wikitext">
{{file other | [[Category:Some file maintenance category]] }}
</syntaxhighlight>
Or to warn that a template should not be used on other pages:
<syntaxhighlight lang="wikitext">
{{file other | | This template should only be used on file (image) pages. }}
</syntaxhighlight>
Note that in the first case above the "other" parameter was not used, and in the second example the "file" parameter was left empty.
=== Demospace ===
For testing and demonstration purposes this template can take a parameter named '''demospace'''.
* If it has the value '''file''' it returns the file page text.
* It if has the value '''other''' or any other value such as the name of some other namespace it returns the other pages text.
* If the parameter is empty or undefined, the actual page type determines the result.
Like this:
<syntaxhighlight lang="wikitext">
{{file other
| File page text
| Other pages text
| demospace = file
}}
</syntaxhighlight>
No matter on what kind of page the code above is used it will return this:
:{{file other
| File page text
| Other pages text
| demospace = file
}}
You can make it so your template also understands the '''demospace''' parameter. That means you can demonstrate the different appearances of your template in the documentation for your template. Then do like this:
<syntaxhighlight lang="wikitext">
{{file other
| File page text
| Other pages text
| demospace = {{{demospace|}}}
}}
</syntaxhighlight>
=== Technical details ===
This template detects "File talk:" pages as type '''other'''.
Namespace "Image" was renamed to "File" on 11 December 2008. This template was updated to understand both names well before that, thus it still works fine.
This template works like {{tl|main talk other}}, for more examples and technical details see full documentation there.
{{Namespace and pagename-detecting templates}}
<includeonly>{{Sandbox other||<!-- CATEGORIES BELOW THIS LINE, PLEASE: -->
[[Category:If-namespace-then-else templates]]
[[Category:File namespace templates]]
}}</includeonly>
a5opjsjlhxbxcdrv9cxl6sq1j4twmgh
Template:Support
10
15775
74421
2025-09-19T18:31:51Z
Ch
11741
74421
wikitext
text/x-wiki
[[File:Symbol support vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|an = Á fabor
|ar = مع
|az = Lehinə
|be = Падтрымліваю
|bg = За
|bn = সমর্থন
|br = A-du
|bs = Za
|cs = Pro
|de = Pro
|el = Υπέρ
|en = Support
|eo = Subteno
|es = A favor
|eu = Alde
|fa = موافق
|fi = Kannatan
|fr = Pour
|fy = Foar
|ga = Ar son
|gl = Concordo
|gu = સમર્થન
|he = בעד
|hi = समर्थन
|hr = Za
|hu = Támogatom
|hy = Կողմ
|is = Samþykkt
|it = Favorevole
|ja = 賛成
|ka = მომხრე
|kk = Қолдаймын
|ko = 찬성
|ky = Колдойм
|lzh = 可也
|mk = За
|ml = പിന്തുണയ്ക്കുന്നു
|ms = Sokong
|my = ထောက်ခံ
|nan = Chàn-sêng
|nb = For
|nl = Voor
|nn = For
|no = For
|pl = Za
|prg = Enlāika
|pt = Concordo
|ro = Pentru
|ru = За
|sco= Support
|sl = Za.
|sq = Për
|sr = За
|sv = Stödjer
|th = เห็นด้วย
|tl = Suportado
|tr = Destek
|uk = За
|vi = Ủng hộ
|zh = 支持
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
f7yg7jjqzz337o4ha1wah1kanbcac1n
74422
74421
2026-09-10T15:29:57Z
B722N
6898
1 revision imported from [[:commons:Template:Support]]: Importing the Support template
74421
wikitext
text/x-wiki
[[File:Symbol support vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|an = Á fabor
|ar = مع
|az = Lehinə
|be = Падтрымліваю
|bg = За
|bn = সমর্থন
|br = A-du
|bs = Za
|cs = Pro
|de = Pro
|el = Υπέρ
|en = Support
|eo = Subteno
|es = A favor
|eu = Alde
|fa = موافق
|fi = Kannatan
|fr = Pour
|fy = Foar
|ga = Ar son
|gl = Concordo
|gu = સમર્થન
|he = בעד
|hi = समर्थन
|hr = Za
|hu = Támogatom
|hy = Կողմ
|is = Samþykkt
|it = Favorevole
|ja = 賛成
|ka = მომხრე
|kk = Қолдаймын
|ko = 찬성
|ky = Колдойм
|lzh = 可也
|mk = За
|ml = പിന്തുണയ്ക്കുന്നു
|ms = Sokong
|my = ထောက်ခံ
|nan = Chàn-sêng
|nb = For
|nl = Voor
|nn = For
|no = For
|pl = Za
|prg = Enlāika
|pt = Concordo
|ro = Pentru
|ru = За
|sco= Support
|sl = Za.
|sq = Për
|sr = За
|sv = Stödjer
|th = เห็นด้วย
|tl = Suportado
|tr = Destek
|uk = За
|vi = Ủng hộ
|zh = 支持
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
f7yg7jjqzz337o4ha1wah1kanbcac1n
Module:Autotranslate
828
15776
74423
2024-04-18T13:29:34Z
Jarekt
11742
rewrite proposed by [[User:Tacsipacsi]] using more efficient test for existence of language subtemplate
74423
Scribunto
text/plain
--[[
__ __ _ _ _ _ _ _ _
| \/ | ___ __| |_ _| | ___ _ / \ _ _| |_ ___ | |_ _ __ __ _ _ __ ___| | __ _| |_ ___
| |\/| |/ _ \ / _` | | | | |/ _ (_) / _ \| | | | __/ _ \| __| '__/ _` | '_ \/ __| |/ _` | __/ _ \
| | | | (_) | (_| | |_| | | __/_ / ___ \ |_| | || (_) | |_| | | (_| | | | \__ \ | (_| | || __/
|_| |_|\___/ \__,_|\__,_|_|\___(_)_/ \_\__,_|\__\___/ \__|_| \__,_|_| |_|___/_|\__,_|\__\___|
Authors and maintainers:
* User:Zolo - original version
* User:Jarekt
]]
-- local function to help normalize input arguments
local function normalize_input_args(input_args, output_args)
for name, value in pairs( input_args ) do
if value ~= '' then -- nuke empty strings
if type(name)=='string' then name=string.lower(name) end -- convert to lower case
output_args[name] = value
end
end
return output_args
end
-- initialize object to be returned
local p = {}
--[[
autotranslate
This function is the core part of the Autotranslate template.
Usage from a template:
{{#invoke:autotranslate|autotranslate|base=|lang= }}
Parameters:
frame.args.base - base page name
frame.args.lang - desired language (often user's native language)
Error Handling:
]]
function p.autotranslate(frame)
-- switch to lowercase parameters to make them case independent
local args = {}
args = normalize_input_args(frame:getParent().args, args)
args = normalize_input_args(frame.args, args)
-- get language fallback list
if not args.lang or not mw.language.isSupportedLanguage(args.lang) then
args.lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
local langList = mw.language.getFallbacksFor(args.lang)
table.insert(langList,1,args.lang) -- user's language will be the first one to check
-- find base page
local base = args.base
args.base = nil -- blank it so it is not passed to language sub-templates
assert(base and #base>0, 'Base page not provided for autotranslate' )
-- Local function for expanding a template that can be pcall()ed: call the template
-- with the same template arguments as the ones passed to {{autotranslate}} template.
local function expandTemplate(title)
return frame:expandTemplate{ title = title, args = args }
end
-- find base template language subpage
local success, res
for _, language in ipairs(langList) do
success, res = pcall(expandTemplate, base .. '/' .. language)
if success then
break
end
end
local err_msg = 'No fallback page found for autotranslate (base=[[:%s]], lang=%s)'
if (not success) then
assert(args.default, string.format(err_msg, base, args.lang))
success, res = pcall(expandTemplate, args.default)
assert(success, string.format(err_msg, base, args.default))
end
-- If this if the base page being translateda
if (mw.title.getCurrentTitle().fullText==base) then
-- English language is the last fallback language for most languages, if
-- nothing else there should be at least an english subpage
local en_exist = mw.title.new(base .. '/en').exists
assert(en_exist, string.format(err_msg, base, 'en'))
if (mw.site.siteName=='Wikimedia Commons') then
res = res .. '\n[[Category:Autotranslated templates|' .. base .. ']]'
end
end
return res
end
return p
qmsw5ejudkg5q9vfj4h9vr37ae36450
74424
74423
2026-09-10T15:29:57Z
B722N
6898
1 revision imported from [[:commons:Module:Autotranslate]]: Importing the Support template
74423
Scribunto
text/plain
--[[
__ __ _ _ _ _ _ _ _
| \/ | ___ __| |_ _| | ___ _ / \ _ _| |_ ___ | |_ _ __ __ _ _ __ ___| | __ _| |_ ___
| |\/| |/ _ \ / _` | | | | |/ _ (_) / _ \| | | | __/ _ \| __| '__/ _` | '_ \/ __| |/ _` | __/ _ \
| | | | (_) | (_| | |_| | | __/_ / ___ \ |_| | || (_) | |_| | | (_| | | | \__ \ | (_| | || __/
|_| |_|\___/ \__,_|\__,_|_|\___(_)_/ \_\__,_|\__\___/ \__|_| \__,_|_| |_|___/_|\__,_|\__\___|
Authors and maintainers:
* User:Zolo - original version
* User:Jarekt
]]
-- local function to help normalize input arguments
local function normalize_input_args(input_args, output_args)
for name, value in pairs( input_args ) do
if value ~= '' then -- nuke empty strings
if type(name)=='string' then name=string.lower(name) end -- convert to lower case
output_args[name] = value
end
end
return output_args
end
-- initialize object to be returned
local p = {}
--[[
autotranslate
This function is the core part of the Autotranslate template.
Usage from a template:
{{#invoke:autotranslate|autotranslate|base=|lang= }}
Parameters:
frame.args.base - base page name
frame.args.lang - desired language (often user's native language)
Error Handling:
]]
function p.autotranslate(frame)
-- switch to lowercase parameters to make them case independent
local args = {}
args = normalize_input_args(frame:getParent().args, args)
args = normalize_input_args(frame.args, args)
-- get language fallback list
if not args.lang or not mw.language.isSupportedLanguage(args.lang) then
args.lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
local langList = mw.language.getFallbacksFor(args.lang)
table.insert(langList,1,args.lang) -- user's language will be the first one to check
-- find base page
local base = args.base
args.base = nil -- blank it so it is not passed to language sub-templates
assert(base and #base>0, 'Base page not provided for autotranslate' )
-- Local function for expanding a template that can be pcall()ed: call the template
-- with the same template arguments as the ones passed to {{autotranslate}} template.
local function expandTemplate(title)
return frame:expandTemplate{ title = title, args = args }
end
-- find base template language subpage
local success, res
for _, language in ipairs(langList) do
success, res = pcall(expandTemplate, base .. '/' .. language)
if success then
break
end
end
local err_msg = 'No fallback page found for autotranslate (base=[[:%s]], lang=%s)'
if (not success) then
assert(args.default, string.format(err_msg, base, args.lang))
success, res = pcall(expandTemplate, args.default)
assert(success, string.format(err_msg, base, args.default))
end
-- If this if the base page being translateda
if (mw.title.getCurrentTitle().fullText==base) then
-- English language is the last fallback language for most languages, if
-- nothing else there should be at least an english subpage
local en_exist = mw.title.new(base .. '/en').exists
assert(en_exist, string.format(err_msg, base, 'en'))
if (mw.site.siteName=='Wikimedia Commons') then
res = res .. '\n[[Category:Autotranslated templates|' .. base .. ']]'
end
end
return res
end
return p
qmsw5ejudkg5q9vfj4h9vr37ae36450
Template:LangSwitch
10
15777
74425
2018-06-04T12:13:39Z
Jarekt
11742
Switch to [[Module:LangSwitch]]; allow multiple languages to map to a single value
74425
wikitext
text/x-wiki
<includeonly>{{#invoke:LangSwitch|langSwitch}}</includeonly><noinclude>
{{heavily used template}}
{{Documentation}}
</noinclude>
7wgvi7d3m9ku5n15qjrkwqgxnln0j1p
74426
74425
2026-09-10T15:29:57Z
B722N
6898
1 revision imported from [[:commons:Template:LangSwitch]]: Importing the Support template
74425
wikitext
text/x-wiki
<includeonly>{{#invoke:LangSwitch|langSwitch}}</includeonly><noinclude>
{{heavily used template}}
{{Documentation}}
</noinclude>
7wgvi7d3m9ku5n15qjrkwqgxnln0j1p
Module:Linguistic
828
15778
74427
2022-10-26T04:48:14Z
Jonesey95
11743
require strict per TPER
74427
Scribunto
text/plain
--[[
__ __ _ _ _ _ _ _ _
| \/ | ___ __| |_ _| | ___ _| | (_)_ __ __ _ _ _(_)___| |_(_) ___
| |\/| |/ _ \ / _` | | | | |/ _ (_) | | | '_ \ / _` | | | | / __| __| |/ __|
| | | | (_) | (_| | |_| | | __/_| |___| | | | | (_| | |_| | \__ \ |_| | (__
|_| |_|\___/ \__,_|\__,_|_|\___(_)_____|_|_| |_|\__, |\__,_|_|___/\__|_|\___|
|___/
Simple internationalization functions that can be called by other modules.
This Module was copied from Wikimedia Commons, so please request changes there.
Maintainers:
* Zolo - original version
* Jarekt
Dependencies:
- Module uses c:data:I18n/Or.tab
]]
require('strict')
-- ==================================================
-- === Internal functions ===========================
-- ==================================================
local function langSwitch(list,lang)
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList,1,lang)
for i,language in ipairs(langList) do
if list[language] then
return list[language]
end
end
return nil
end
------------------------------------------------------------------------------
-- read Commons Data:SOMENAME.tab dataset and look for message identified by a
-- "key" in a language "lang". See editAtWikidata as an example.
local function formatMessage(dataset, key, lang)
for _, row in pairs(mw.ext.data.get(dataset, lang).data) do
local id, msg = unpack(row)
if id == key then
return mw.message.newRawMessage(msg):plain()
end
end
error('Invalid message key "' .. key .. '"')
end
------------------------------------------------------------------------------
local function nowiki(str) -- remove all the links
if not str then
return str
end
str = mw.ustring.gsub(str, "<[^>]*>", "") -- remove all html tags from str
str = mw.ustring.gsub(str, "'''", "") -- remove bold
str = mw.ustring.gsub(str, "''", "") -- remove italics
str = mw.ustring.gsub(str, "%[%[[Ff]ile:[^%]]+%]%]", "") -- remove file icons
str = mw.ustring.gsub(str, "%[%[[^|]*|", "") -- remove piped links, like "[[:en:test|"
str = mw.ustring.gsub(str, "%[[^ ]+ ", "") -- remove URL links, like "[https://www.wikidata.org/wiki/Q2706250 "
str = mw.ustring.gsub(str, "%[%[", "" ) -- remove piped links, like "[["
str = mw.ustring.gsub(str, "%]", "" ) -- remove piped links, like "]" or "]]"
return str
end
------------------------------------------------------------------------------
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to Module:Yesno
local function yesno(val, default)
if type(val) == 'boolean' then
return val
elseif type(val) == 'number' then
if val==1 then
return true
elseif val==0 then
return false
end
elseif type(val) == 'string' then
val = mw.ustring.lower(val) -- put in lower case
if val == 'no' or val == 'n' or val == 'false' or val == '0' then
return false
elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then
return true
end
end
return default
end
-- ==================================================
-- === External functions ===========================
-- ==================================================
local p = {}
-- ===========================================================================
-- === Version of the function to be called from other LUA codes
-- ===========================================================================
------------------------------------------------------------------------------------------
function p.vowelfirst (str)
if str then
local vowels = 'aeiouyąăẵằẳặȃắâẫấầẩậãäǟāáàȁǎảẚåǻḁạǡæǣǽĕȇêễếềểệḙẽḛëēḕéḗèȅěẻẹęȩḝǝĭȋîĩḭï'..
'ḯīíìȉǐỉịįıŏȏôỗốồổộõṏṍöōṑóṓòȍǒỏọǫǭơỡớờởợøǿŭȗûṷũṻṹṵüǖǘǜǚṳūúùȕǔủůụųưữứừửựŷỹÿȳýỳỷẙỵ'
str = mw.ustring.lower(mw.ustring.sub(str,1,1))
return mw.ustring.find(vowels, str, 1, true )
end
end
------------------------------------------------------------------------------------------
function p.inparentheses(str)
if (not str) or (str == "") then
return nil
end
local str2 = mw.message.new('parentheses', str):inLanguage(lang):plain()
return (str2~=nil and str2) or ('('..str..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set
end
------------------------------------------------------------------------------------------
function p.of(word, lang, raw, gender, number, determiner) -- rough translation of "of" in various languages
-- note that the cases when on "of" is employed varies a lot among languages, so it is more prudent to call this from lang specific function only
if not raw or mw.text.trim(raw) == "" then
raw = mw.ustring.lower(nowiki(word))
end
-- raw is the string without the Wikiformatting so that it correctly analyses the string that is [[:fr:Italie|Italie]] -> 'italie'
-- any way to automate this ?
if lang == 'fr' then
determiner = yesno(determiner,false)
if determiner then
if string.sub(number or '',1,1)=='p' then -- number == 'plural'
return 'des ' .. word
elseif p.vowelfirst(raw) then
return 'de l’' .. word
elseif string.sub(gender or '',1,1)=='f' then -- gender == 'feminine'
return 'de la ' .. word
else
return 'du ' .. word
end
else
if p.vowelfirst(raw) then
return 'd’' .. word
else
return 'de ' .. word
end
end
elseif lang == 'ca' then
-- implement [[Template:Of/ca]] or https://ca.wikipedia.org/wiki/Plantilla:Deod%27/base for case where "{{{context}}}" is "en" (default on Commons)
if ( p.vowelfirst(raw) and not mw.ustring.find( 'ia|ià|ie|io|iu|ua|ue|ui|uí|uï|uo|ya|ye|yi|yo|yu|', mw.ustring.sub(raw,1,2) .. '|')) then
return 'd\'' .. word
else
return 'de ' .. word
end
end
end
------------------------------------------------------------------------------------------
function p.noungroup(noun, adj, lang)
if not noun or noun == '' then
return nil -- not '' so that it is not counted as a string by mw.listToText
end
if not adj or adj == ''
then return noun
end
local wordsep = mw.message.new( "Word-separator" ):inLanguage(lang):plain()
-- Assign order of words per language: 1 means adjective before the noun and 2 means adjective after the noun
-- original source for many: language subpages of [[Template:Technique]]
-- corrections to that using https://wals.info/feature/87A, still different:
-- * vi: WALS says 2
-- * gl isn't consistent in [[Template:Technique/gl]], but seems to be 2
local LUT = {ar=2, ca=2, cs=1, da=1, de=1, el=1, en=1, es=2, et=1, fi=1, fr=2,
gl=2, he=2, hu=1, it=2, ja=1, la=2, mk=1, nds=1, nb=1, nl=1, no=1, pl=1, pt=2,
ro=2, ru=1, scn=2, sk=1, sl=1, sr=1, sv=1, sw=1, tr=1, vec=1, vi=1, zh=1}
local primaryLangSubtag = mw.text.split(lang, '-', true)[1]
local case = LUT[lang] or LUT[primaryLangSubtag]
if case==1 then -- adjective before the noun
return adj .. wordsep .. noun
elseif case==2 then -- adjective after the noun
return noun .. wordsep .. adj
else -- order unknown
return noun .. ' (' .. adj .. ')'
end
end
------------------------------------------------------------------------------------------
function p.conj(args, lang, conjtype)
local comma = mw.message.new( "comma-separator"):inLanguage(lang):plain()
local wordsep = mw.message.new( "Word-separator" ):inLanguage(lang):plain()
local andtable = { ar=' و', he=' ו', ja='および', pl=' i '} -- languages with a problem with the MediaWiki:And
local sep1, sep2 = comma, nil
if conjtype == 'comma' then
sep2 = comma
elseif conjtype == 'or' or conjtype == 'explicit or' then
local wordor = formatMessage('I18n/Or.tab', 'or', lang) -- get translated "or"
sep2 = wordsep .. wordor .. wordsep -- pad it with spaces (if needed)
sep1 = (conjtype == 'explicit or' and sep2) or comma -- adds "or" betwen all words when the context can be confusing
elseif conjtype and conjtype ~= 'and' and conjtype ~= '' then
sep1, sep2 = conjtype, conjtype
elseif andtable[lang] then
sep2 = andtable[lang]
else
sep2 = mw.message.new( "and" ):inLanguage(lang):plain() .. wordsep
end
return mw.text.listToText(args, sep1, sep2)
end
-- ===========================================================================
-- === Version of the functions to be called from template namespace
-- ===========================================================================
------------------------------------------------------------------------------------------
function p.offromwiki(frame)
local args = frame.args
return p.of(args.word, args.lang, args.raw, args.gender, args.number, args.determiner)
end
------------------------------------------------------------------------------------------
function p.conjfromWiki(frame)
local args = frame.args
if not args or not args[1] then
args = frame:getParent().args
end
local lang = args.lang
if not lang or mw.text.trim(lang) == '' then
lang = frame:callParserFunction( "int", "lang" )
end
local newargs = {} -- transform args metatable into a table so it can be concetenated
for i, j in pairs(args) do
if type(i) == 'number' then
j = mw.text.trim(j)
if j ~= '' then
table.insert(newargs, j)
end
else
if i ~= 'type' and i ~= 'lang' then
return 'error: bad parameter in template:Conj: ' .. i .. '[[Category:Pages with incorrect template usage/Conj|A]]'
end
end
end
return p.conj(newargs, lang, args.type)
end
return p
ibgdthfbs6ucr2zs5ekihtxtvv7itcl
74428
74427
2026-09-10T15:29:57Z
B722N
6898
1 revision imported from [[:commons:Module:Linguistic]]: Importing the Support template
74427
Scribunto
text/plain
--[[
__ __ _ _ _ _ _ _ _
| \/ | ___ __| |_ _| | ___ _| | (_)_ __ __ _ _ _(_)___| |_(_) ___
| |\/| |/ _ \ / _` | | | | |/ _ (_) | | | '_ \ / _` | | | | / __| __| |/ __|
| | | | (_) | (_| | |_| | | __/_| |___| | | | | (_| | |_| | \__ \ |_| | (__
|_| |_|\___/ \__,_|\__,_|_|\___(_)_____|_|_| |_|\__, |\__,_|_|___/\__|_|\___|
|___/
Simple internationalization functions that can be called by other modules.
This Module was copied from Wikimedia Commons, so please request changes there.
Maintainers:
* Zolo - original version
* Jarekt
Dependencies:
- Module uses c:data:I18n/Or.tab
]]
require('strict')
-- ==================================================
-- === Internal functions ===========================
-- ==================================================
local function langSwitch(list,lang)
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList,1,lang)
for i,language in ipairs(langList) do
if list[language] then
return list[language]
end
end
return nil
end
------------------------------------------------------------------------------
-- read Commons Data:SOMENAME.tab dataset and look for message identified by a
-- "key" in a language "lang". See editAtWikidata as an example.
local function formatMessage(dataset, key, lang)
for _, row in pairs(mw.ext.data.get(dataset, lang).data) do
local id, msg = unpack(row)
if id == key then
return mw.message.newRawMessage(msg):plain()
end
end
error('Invalid message key "' .. key .. '"')
end
------------------------------------------------------------------------------
local function nowiki(str) -- remove all the links
if not str then
return str
end
str = mw.ustring.gsub(str, "<[^>]*>", "") -- remove all html tags from str
str = mw.ustring.gsub(str, "'''", "") -- remove bold
str = mw.ustring.gsub(str, "''", "") -- remove italics
str = mw.ustring.gsub(str, "%[%[[Ff]ile:[^%]]+%]%]", "") -- remove file icons
str = mw.ustring.gsub(str, "%[%[[^|]*|", "") -- remove piped links, like "[[:en:test|"
str = mw.ustring.gsub(str, "%[[^ ]+ ", "") -- remove URL links, like "[https://www.wikidata.org/wiki/Q2706250 "
str = mw.ustring.gsub(str, "%[%[", "" ) -- remove piped links, like "[["
str = mw.ustring.gsub(str, "%]", "" ) -- remove piped links, like "]" or "]]"
return str
end
------------------------------------------------------------------------------
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to Module:Yesno
local function yesno(val, default)
if type(val) == 'boolean' then
return val
elseif type(val) == 'number' then
if val==1 then
return true
elseif val==0 then
return false
end
elseif type(val) == 'string' then
val = mw.ustring.lower(val) -- put in lower case
if val == 'no' or val == 'n' or val == 'false' or val == '0' then
return false
elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then
return true
end
end
return default
end
-- ==================================================
-- === External functions ===========================
-- ==================================================
local p = {}
-- ===========================================================================
-- === Version of the function to be called from other LUA codes
-- ===========================================================================
------------------------------------------------------------------------------------------
function p.vowelfirst (str)
if str then
local vowels = 'aeiouyąăẵằẳặȃắâẫấầẩậãäǟāáàȁǎảẚåǻḁạǡæǣǽĕȇêễếềểệḙẽḛëēḕéḗèȅěẻẹęȩḝǝĭȋîĩḭï'..
'ḯīíìȉǐỉịįıŏȏôỗốồổộõṏṍöōṑóṓòȍǒỏọǫǭơỡớờởợøǿŭȗûṷũṻṹṵüǖǘǜǚṳūúùȕǔủůụųưữứừửựŷỹÿȳýỳỷẙỵ'
str = mw.ustring.lower(mw.ustring.sub(str,1,1))
return mw.ustring.find(vowels, str, 1, true )
end
end
------------------------------------------------------------------------------------------
function p.inparentheses(str)
if (not str) or (str == "") then
return nil
end
local str2 = mw.message.new('parentheses', str):inLanguage(lang):plain()
return (str2~=nil and str2) or ('('..str..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set
end
------------------------------------------------------------------------------------------
function p.of(word, lang, raw, gender, number, determiner) -- rough translation of "of" in various languages
-- note that the cases when on "of" is employed varies a lot among languages, so it is more prudent to call this from lang specific function only
if not raw or mw.text.trim(raw) == "" then
raw = mw.ustring.lower(nowiki(word))
end
-- raw is the string without the Wikiformatting so that it correctly analyses the string that is [[:fr:Italie|Italie]] -> 'italie'
-- any way to automate this ?
if lang == 'fr' then
determiner = yesno(determiner,false)
if determiner then
if string.sub(number or '',1,1)=='p' then -- number == 'plural'
return 'des ' .. word
elseif p.vowelfirst(raw) then
return 'de l’' .. word
elseif string.sub(gender or '',1,1)=='f' then -- gender == 'feminine'
return 'de la ' .. word
else
return 'du ' .. word
end
else
if p.vowelfirst(raw) then
return 'd’' .. word
else
return 'de ' .. word
end
end
elseif lang == 'ca' then
-- implement [[Template:Of/ca]] or https://ca.wikipedia.org/wiki/Plantilla:Deod%27/base for case where "{{{context}}}" is "en" (default on Commons)
if ( p.vowelfirst(raw) and not mw.ustring.find( 'ia|ià|ie|io|iu|ua|ue|ui|uí|uï|uo|ya|ye|yi|yo|yu|', mw.ustring.sub(raw,1,2) .. '|')) then
return 'd\'' .. word
else
return 'de ' .. word
end
end
end
------------------------------------------------------------------------------------------
function p.noungroup(noun, adj, lang)
if not noun or noun == '' then
return nil -- not '' so that it is not counted as a string by mw.listToText
end
if not adj or adj == ''
then return noun
end
local wordsep = mw.message.new( "Word-separator" ):inLanguage(lang):plain()
-- Assign order of words per language: 1 means adjective before the noun and 2 means adjective after the noun
-- original source for many: language subpages of [[Template:Technique]]
-- corrections to that using https://wals.info/feature/87A, still different:
-- * vi: WALS says 2
-- * gl isn't consistent in [[Template:Technique/gl]], but seems to be 2
local LUT = {ar=2, ca=2, cs=1, da=1, de=1, el=1, en=1, es=2, et=1, fi=1, fr=2,
gl=2, he=2, hu=1, it=2, ja=1, la=2, mk=1, nds=1, nb=1, nl=1, no=1, pl=1, pt=2,
ro=2, ru=1, scn=2, sk=1, sl=1, sr=1, sv=1, sw=1, tr=1, vec=1, vi=1, zh=1}
local primaryLangSubtag = mw.text.split(lang, '-', true)[1]
local case = LUT[lang] or LUT[primaryLangSubtag]
if case==1 then -- adjective before the noun
return adj .. wordsep .. noun
elseif case==2 then -- adjective after the noun
return noun .. wordsep .. adj
else -- order unknown
return noun .. ' (' .. adj .. ')'
end
end
------------------------------------------------------------------------------------------
function p.conj(args, lang, conjtype)
local comma = mw.message.new( "comma-separator"):inLanguage(lang):plain()
local wordsep = mw.message.new( "Word-separator" ):inLanguage(lang):plain()
local andtable = { ar=' و', he=' ו', ja='および', pl=' i '} -- languages with a problem with the MediaWiki:And
local sep1, sep2 = comma, nil
if conjtype == 'comma' then
sep2 = comma
elseif conjtype == 'or' or conjtype == 'explicit or' then
local wordor = formatMessage('I18n/Or.tab', 'or', lang) -- get translated "or"
sep2 = wordsep .. wordor .. wordsep -- pad it with spaces (if needed)
sep1 = (conjtype == 'explicit or' and sep2) or comma -- adds "or" betwen all words when the context can be confusing
elseif conjtype and conjtype ~= 'and' and conjtype ~= '' then
sep1, sep2 = conjtype, conjtype
elseif andtable[lang] then
sep2 = andtable[lang]
else
sep2 = mw.message.new( "and" ):inLanguage(lang):plain() .. wordsep
end
return mw.text.listToText(args, sep1, sep2)
end
-- ===========================================================================
-- === Version of the functions to be called from template namespace
-- ===========================================================================
------------------------------------------------------------------------------------------
function p.offromwiki(frame)
local args = frame.args
return p.of(args.word, args.lang, args.raw, args.gender, args.number, args.determiner)
end
------------------------------------------------------------------------------------------
function p.conjfromWiki(frame)
local args = frame.args
if not args or not args[1] then
args = frame:getParent().args
end
local lang = args.lang
if not lang or mw.text.trim(lang) == '' then
lang = frame:callParserFunction( "int", "lang" )
end
local newargs = {} -- transform args metatable into a table so it can be concetenated
for i, j in pairs(args) do
if type(i) == 'number' then
j = mw.text.trim(j)
if j ~= '' then
table.insert(newargs, j)
end
else
if i ~= 'type' and i ~= 'lang' then
return 'error: bad parameter in template:Conj: ' .. i .. '[[Category:Pages with incorrect template usage/Conj|A]]'
end
end
end
return p.conj(newargs, lang, args.type)
end
return p
ibgdthfbs6ucr2zs5ekihtxtvv7itcl
Module:LangSwitch
828
15779
74429
2022-10-29T17:41:02Z
Mdaniels5757
5830
per edit request
74429
Scribunto
text/plain
--[[
__ __ _ _ _ ____ _ _ _
| \/ | ___ __| |_ _| | ___ _| | __ _ _ __ __ _/ ___|_ _(_) |_ ___| |__
| |\/| |/ _ \ / _` | | | | |/ _ (_) | / _` | '_ \ / _` \___ \ \ /\ / / | __/ __| '_ \
| | | | (_) | (_| | |_| | | __/_| |__| (_| | | | | (_| |___) \ V V /| | || (__| | | |
|_| |_|\___/ \__,_|\__,_|_|\___(_)_____\__,_|_| |_|\__, |____/ \_/\_/ |_|\__\___|_| |_|
|___/
Authors and maintainers:
* User:Zolo - original version in Module:Fallback
* User:Jarekt
]]
-- add optional module
-- used for debugging purposes as it detects cases of unintended global variables
require('strict')
local p = {}
local function add_labels(args)
-- add invisible but machine readable labels to the files, which can be used to add titles to wikidata items
local createTag = require('Module:TagQS').createTag -- lazy loading of the module: only for the files that need it
local qsTable = {''}
-- add text of invisible tag brodcasted by the template which allows creation of QuickStatements command used to add this info to Wikidata
for lang, text in pairs( args ) do
if type(lang)=='string' and mw.language.isSupportedLanguage(lang) then -- lang has to be a valid language
table.insert( qsTable, createTag('label', 'L'..lang, '"' .. text .. '"') )
end
end
return table.concat( qsTable, '\n')
end
--[[
_langSwitch
This function is the core part of the LangSwitch template.
Example usage from Lua:
text = _langSwitch({en='text in english', pl='tekst po polsku'}, lang)
Parameters:
args - table with translations by language
lang - desired language (often user's native language)
Error Handling:
]]
function p._langSwitch(args, lang) -- args: table of translations
-- Return error if there is not default and no english version
if not args.en and not args.default then
local err = '<b class="error">LangSwitch Error: no default</b>'
if args.nocat == '1' then
return err
else
return err .. '[[Category:LangSwitch template without default version]]'
end
end
-- To improve performance try quick switch, and load fallback chain only if needed.
-- In the vast majority of cases fast switch is sufficient
local val = args[lang]
if val == '~' then
return ''
elseif val and val ~= '' then
return val
elseif args.quick then
return nil
end
-- get the list of accepetable language (lang + those in lang's fallback chain) and check their content
assert(lang, 'LangSwitch Error: no lang')
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList,1,lang)
table.insert(langList,math.max(#langList,2),'default')
for _, language in ipairs(langList) do
val = args[language]
if val == '~' then
return ''
elseif val and val ~= '' then
return val
end
end
end
--[[
langSwitch
This function is the core part of the LangSwitch template.
Example Usage from a template:
{{#invoke:fallback|langSwitch|en=text in english|pl=tekst po polsku|lang={{int:lang}} }}
Parameters:
frame.args - table with translations by language
frame.args.lang - desired language (often user's native language)
Error Handling:
]]
function p.langSwitch(frame) -- version to be used from wikitext
local args = frame.args
-- if no expected args provided than check parent template/module args
if args.en==nil and args.default==nil and args.nocat==nil then
args = mw.getCurrentFrame():getParent().args
end
local lang = args.lang
if not lang or not mw.language.isKnownLanguageTag(lang) then
lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
-- add text of invisible tag brodcasted by the template which allows creation of QuickStatements command used to add this info to Wikidata
local labels = ''
if args.add_labels then
labels = add_labels(args)
end
-- Try quick switch which checks the most likely option when fallback is not needed
args.quick = true;
local val = p._langSwitch(args, lang)
if val then
return val .. labels
end
-- Allow input in format: {{LangSwitch|de=Grün|es/it/pt=Verde|fr=Vert|en=Green |lang=en}}
-- with multiple languages mapping to a single value
local args1 = {}
for name, value in pairs( args ) do
if value ~= '' and type(name)=='string' then
for str in string.gmatch( name, "([^/]+)" ) do
args1[str] = value
end
end
end
return p._langSwitch(args1, lang) .. labels
end
return p
eio249psl03mn1ttbazreiyu21cxato
74430
74429
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Module:LangSwitch]]: Importing the Support template
74429
Scribunto
text/plain
--[[
__ __ _ _ _ ____ _ _ _
| \/ | ___ __| |_ _| | ___ _| | __ _ _ __ __ _/ ___|_ _(_) |_ ___| |__
| |\/| |/ _ \ / _` | | | | |/ _ (_) | / _` | '_ \ / _` \___ \ \ /\ / / | __/ __| '_ \
| | | | (_) | (_| | |_| | | __/_| |__| (_| | | | | (_| |___) \ V V /| | || (__| | | |
|_| |_|\___/ \__,_|\__,_|_|\___(_)_____\__,_|_| |_|\__, |____/ \_/\_/ |_|\__\___|_| |_|
|___/
Authors and maintainers:
* User:Zolo - original version in Module:Fallback
* User:Jarekt
]]
-- add optional module
-- used for debugging purposes as it detects cases of unintended global variables
require('strict')
local p = {}
local function add_labels(args)
-- add invisible but machine readable labels to the files, which can be used to add titles to wikidata items
local createTag = require('Module:TagQS').createTag -- lazy loading of the module: only for the files that need it
local qsTable = {''}
-- add text of invisible tag brodcasted by the template which allows creation of QuickStatements command used to add this info to Wikidata
for lang, text in pairs( args ) do
if type(lang)=='string' and mw.language.isSupportedLanguage(lang) then -- lang has to be a valid language
table.insert( qsTable, createTag('label', 'L'..lang, '"' .. text .. '"') )
end
end
return table.concat( qsTable, '\n')
end
--[[
_langSwitch
This function is the core part of the LangSwitch template.
Example usage from Lua:
text = _langSwitch({en='text in english', pl='tekst po polsku'}, lang)
Parameters:
args - table with translations by language
lang - desired language (often user's native language)
Error Handling:
]]
function p._langSwitch(args, lang) -- args: table of translations
-- Return error if there is not default and no english version
if not args.en and not args.default then
local err = '<b class="error">LangSwitch Error: no default</b>'
if args.nocat == '1' then
return err
else
return err .. '[[Category:LangSwitch template without default version]]'
end
end
-- To improve performance try quick switch, and load fallback chain only if needed.
-- In the vast majority of cases fast switch is sufficient
local val = args[lang]
if val == '~' then
return ''
elseif val and val ~= '' then
return val
elseif args.quick then
return nil
end
-- get the list of accepetable language (lang + those in lang's fallback chain) and check their content
assert(lang, 'LangSwitch Error: no lang')
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList,1,lang)
table.insert(langList,math.max(#langList,2),'default')
for _, language in ipairs(langList) do
val = args[language]
if val == '~' then
return ''
elseif val and val ~= '' then
return val
end
end
end
--[[
langSwitch
This function is the core part of the LangSwitch template.
Example Usage from a template:
{{#invoke:fallback|langSwitch|en=text in english|pl=tekst po polsku|lang={{int:lang}} }}
Parameters:
frame.args - table with translations by language
frame.args.lang - desired language (often user's native language)
Error Handling:
]]
function p.langSwitch(frame) -- version to be used from wikitext
local args = frame.args
-- if no expected args provided than check parent template/module args
if args.en==nil and args.default==nil and args.nocat==nil then
args = mw.getCurrentFrame():getParent().args
end
local lang = args.lang
if not lang or not mw.language.isKnownLanguageTag(lang) then
lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
-- add text of invisible tag brodcasted by the template which allows creation of QuickStatements command used to add this info to Wikidata
local labels = ''
if args.add_labels then
labels = add_labels(args)
end
-- Try quick switch which checks the most likely option when fallback is not needed
args.quick = true;
local val = p._langSwitch(args, lang)
if val then
return val .. labels
end
-- Allow input in format: {{LangSwitch|de=Grün|es/it/pt=Verde|fr=Vert|en=Green |lang=en}}
-- with multiple languages mapping to a single value
local args1 = {}
for name, value in pairs( args ) do
if value ~= '' and type(name)=='string' then
for str in string.gmatch( name, "([^/]+)" ) do
args1[str] = value
end
end
end
return p._langSwitch(args1, lang) .. labels
end
return p
eio249psl03mn1ttbazreiyu21cxato
Template:T/main
10
15780
74435
2022-10-29T18:04:16Z
Mdaniels5757
5830
Fulfilling [[Template:Edit request|edit request]] by [[User:Jonesey95|Jonesey95]]. Thanks for helping!
74435
wikitext
text/x-wiki
{{#ifeq:{{lc:{{{code}}}}}|tt|<code>}}<!-- code start
-->{{#switch:{{#switch:{{{link}}}|no|n|-=1|0}}{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=1|0}}{{#switch:-|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=1|0}}<!--
-->|000|010|011|100=|{{#switch:{{{case}}}|i|n={{i18n/namespace|t|link={{{case}}}o|lang={{{i18n|}}}}}|l=template|Template}}:}}<!--
-->{{#switch:{{{link}}}|no|n={{#switch:{{{incl|{{{i|}}}}}}|3=<span style="font-family:monospace;{{{style|}}}">}}<!-- link=no
-->{{#switch:{{{incl|{{{i|}}}}}}|0|1|2|3|4|5|6={{}}<!--
-->{{#switch:{{{2|}}}|+|-|={{#switch:{{{1|}}}|+|-|={{PAGENAME}}|{{PAGENAME:{{{1}}}}}}}|{{{2}}}}}<!-- when "link=no": just display
-->{{#if:{{{parm|}}}||{{{parm}}}}}<!-- optional parm display
-->{{#switch:{{{incl|{{{i|}}}}}}|0|1|2|3|4|5|6=}}}}<!--
-->{{#switch:{{{incl|{{{i|}}}}}}|3=</span>}}<!--
-->|{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=|{{#switch:{{{incl|{{{i|}}}}}}|0|4={{|1|5={}}}}<!-- when +: not outside
-->[[:{{#switch:{{{3|}}}|+|-|=|{{trim|{{{3}}}}}:}}<!-- language code (ISO 639-1) (and/or sisterproject prefix)
-->Template:{{#switch:{{{1|}}}|+|-|={{PAGENAME}}|{{PAGENAME:{{{1}}}}}}}|<!-- =link=
-->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{case}}}|i|n={{i18n/namespace|t|link=no|lang={{{i18n|}}}}}|l=template|Template}}:}}<!--
-->{{#switch:{{{incl|{{{i|}}}}}}|3=<span style="font-family:monospace,monospace;{{{style|}}}">}}<!--
-->{{#switch:{{{incl|{{{i|}}}}}}|2|3|6={{|1|5={}}<!--
-->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{incl|{{{i|}}}}}}|0|4={{|1|5={}}}}<!-- inside
-->{{#if:{{{code|}}}|<code>}}{{#switch:{{{incl|{{{i|}}}}}}|4|5|6|9=<kbd>}}<!-- code/typewrite start
-->{{#switch:{{{2|}}}|+|-|={{#switch:{{{1|}}}|+|-|={{PAGENAME}}|{{PAGENAME:{{{1}}}}}}}|{{{2}}}}}<!-- display name
-->{{#if:{{{parm|}}}|{{#switch:||{{padleft:|1|{{{parm}}}}}|{{padleft:|6|{{{parm}}}}}=||}}{{{parm}}}}}<!-- opt. parm
-->{{#switch:{{{incl|{{{i|}}}}}}|4|5|6|9=</kbd>}}{{#if:{{{code|}}}|</code>}}<!-- typewrite/code end
-->{{#switch:{{{incl|{{{i|}}}}}}|2|3|6=}}|1|5=}}}<!--
-->{{#switch:{{{incl|{{{i|}}}}}}|3=</span>}}<!--
-->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{incl|{{{i|}}}}}}|0|4=}}|1|5=}}}}}<!-- inside
-->]]{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=|{{#switch:{{{incl|{{{i|}}}}}}|0|4=}}|1|5=}}}}}}}<!-- not outside
-->{{#ifeq:{{lc:{{{code}}}}}|tt|</code>}}<!-- code end
-->{{#if:{{{full|{{#ifeq:{{{5}}}|full|1}}}}}|<span class="plainlinks"><!--
--> <kbd>(</kbd><small>[{{fullurl:Template:{{{1|{{PAGENAME}}}}}}} {{int:view}}]<!--
--> • [{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=edit}} {{int:edit}}]<!--
--> • [[:Template talk:{{{1|{{PAGENAME}}}}}|{{int:talk}}]]<!--
--> • [{{fullurl:Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|limit=500}} Links]<!-- {{int:links}} needs fix
--> • [{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=history}} History]</small><kbd>)</kbd><!--
--></span>}}<!--
--><noinclude>
{{documentation|Template:T/doc}}
</noinclude>
22tv9age8m1616dns22yrih6gn23jul
74436
74435
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Template:T/main]]: Importing the Support template
74435
wikitext
text/x-wiki
{{#ifeq:{{lc:{{{code}}}}}|tt|<code>}}<!-- code start
-->{{#switch:{{#switch:{{{link}}}|no|n|-=1|0}}{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=1|0}}{{#switch:-|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=1|0}}<!--
-->|000|010|011|100=|{{#switch:{{{case}}}|i|n={{i18n/namespace|t|link={{{case}}}o|lang={{{i18n|}}}}}|l=template|Template}}:}}<!--
-->{{#switch:{{{link}}}|no|n={{#switch:{{{incl|{{{i|}}}}}}|3=<span style="font-family:monospace;{{{style|}}}">}}<!-- link=no
-->{{#switch:{{{incl|{{{i|}}}}}}|0|1|2|3|4|5|6={{}}<!--
-->{{#switch:{{{2|}}}|+|-|={{#switch:{{{1|}}}|+|-|={{PAGENAME}}|{{PAGENAME:{{{1}}}}}}}|{{{2}}}}}<!-- when "link=no": just display
-->{{#if:{{{parm|}}}||{{{parm}}}}}<!-- optional parm display
-->{{#switch:{{{incl|{{{i|}}}}}}|0|1|2|3|4|5|6=}}}}<!--
-->{{#switch:{{{incl|{{{i|}}}}}}|3=</span>}}<!--
-->|{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=|{{#switch:{{{incl|{{{i|}}}}}}|0|4={{|1|5={}}}}<!-- when +: not outside
-->[[:{{#switch:{{{3|}}}|+|-|=|{{trim|{{{3}}}}}:}}<!-- language code (ISO 639-1) (and/or sisterproject prefix)
-->Template:{{#switch:{{{1|}}}|+|-|={{PAGENAME}}|{{PAGENAME:{{{1}}}}}}}|<!-- =link=
-->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{case}}}|i|n={{i18n/namespace|t|link=no|lang={{{i18n|}}}}}|l=template|Template}}:}}<!--
-->{{#switch:{{{incl|{{{i|}}}}}}|3=<span style="font-family:monospace,monospace;{{{style|}}}">}}<!--
-->{{#switch:{{{incl|{{{i|}}}}}}|2|3|6={{|1|5={}}<!--
-->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{incl|{{{i|}}}}}}|0|4={{|1|5={}}}}<!-- inside
-->{{#if:{{{code|}}}|<code>}}{{#switch:{{{incl|{{{i|}}}}}}|4|5|6|9=<kbd>}}<!-- code/typewrite start
-->{{#switch:{{{2|}}}|+|-|={{#switch:{{{1|}}}|+|-|={{PAGENAME}}|{{PAGENAME:{{{1}}}}}}}|{{{2}}}}}<!-- display name
-->{{#if:{{{parm|}}}|{{#switch:||{{padleft:|1|{{{parm}}}}}|{{padleft:|6|{{{parm}}}}}=||}}{{{parm}}}}}<!-- opt. parm
-->{{#switch:{{{incl|{{{i|}}}}}}|4|5|6|9=</kbd>}}{{#if:{{{code|}}}|</code>}}<!-- typewrite/code end
-->{{#switch:{{{incl|{{{i|}}}}}}|2|3|6=}}|1|5=}}}<!--
-->{{#switch:{{{incl|{{{i|}}}}}}|3=</span>}}<!--
-->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{incl|{{{i|}}}}}}|0|4=}}|1|5=}}}}}<!-- inside
-->]]{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=|{{#switch:{{{incl|{{{i|}}}}}}|0|4=}}|1|5=}}}}}}}<!-- not outside
-->{{#ifeq:{{lc:{{{code}}}}}|tt|</code>}}<!-- code end
-->{{#if:{{{full|{{#ifeq:{{{5}}}|full|1}}}}}|<span class="plainlinks"><!--
--> <kbd>(</kbd><small>[{{fullurl:Template:{{{1|{{PAGENAME}}}}}}} {{int:view}}]<!--
--> • [{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=edit}} {{int:edit}}]<!--
--> • [[:Template talk:{{{1|{{PAGENAME}}}}}|{{int:talk}}]]<!--
--> • [{{fullurl:Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|limit=500}} Links]<!-- {{int:links}} needs fix
--> • [{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=history}} History]</small><kbd>)</kbd><!--
--></span>}}<!--
--><noinclude>
{{documentation|Template:T/doc}}
</noinclude>
22tv9age8m1616dns22yrih6gn23jul
Template:W
10
15781
74449
2023-07-28T19:13:19Z
JoKalliauer
11745
Changed protection settings for "[[Template:W]]": [[Special:MyLanguage/Commons:Protection policy|High traffic page]] ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
74449
wikitext
text/x-wiki
{{#switch:{{padleft:|1|{{{1|}}}}}|[|{=[[Category:Maintenance:Template W error]]{{color|red|'''Template W: parameter error'''}}<!--
-->|{{#switch:{{{link|}}}|none=<!--
-->|no|n|-|={{#if:{{{2|}}}|{{#switch:{{{2}}}|+|c={{{1}}}|{{{2}}}}}|{{{1|{{Projectname|w}}}}}}}<!-- option for only text without link
-->|=[[:{{#if:{{{3|}}}|{{#switch:{{{3}}}|+|c|C=w|{{{3}}}}}|w}}:{{{1|{{Projectname|w}}}}}<!-- (w=en)
-->|{{<includeonly>safesubst:</includeonly>#if:{{{2|}}}|{{#switch:{{{2}}}|+|c={{{1}}}|{{{2}}}}}|{{{1|{{Projectname|w}}}}}<!--
-->|{{#if:{{NAMESPACE:{{{1|}}}}}|{{NAMESPACE:{{{1|}}}}}''''':'''''{{PAGENAME:{{{1|{{Projectname|w}}}}}}}<!-- :
-->|{{#ifeq:{{padleft:|1|{{{1|W}}}}}|{{lc:{{padleft:|1|{{PAGENAME:{{{1|W}}}}}}}}}<!--"ℓ"
-->|{{lcfirst:{{PAGENAME:{{{1|{{Projectname|w}}}}}}}}}<!-- first character lower case
-->|{{PAGENAME:{{{1|{{Projectname|w}}}}} }}}}}}}}]]}}<!--
-->{{#switch:+|{{{2}}}|{{{3}}}|{{{4}}}=[[Category:{{PAGENAME:{{{1}}}}}]]<!--
-->|{{#switch:c|{{{2}}}|{{{3}}}|{{{4}}}=[[Category:{{Strip|{{PAGENAME:{{{1}}}}}|2={{{+|0}}}|3={{{-|0}}}|h={{{h|}}}|t={{{t|}}}}}]]<!--
-->|{{#switch:C|{{{3}}}|{{{4}}}={{#if:{{{2|}}}|[[Category:{{Strip|{{PAGENAME:{{{2}}}}}|2={{{+|0}}}|3={{{-|0}}}|h={{{h|}}}|t={{{t|}}}}}]]}}}}}}}}<!--
-->}}<noinclude>
{{documentation}}
</noinclude>
s65gzl2fzj2ztecp2gctn8ljm6swx3l
74450
74449
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Template:W]]: Importing the Support template
74449
wikitext
text/x-wiki
{{#switch:{{padleft:|1|{{{1|}}}}}|[|{=[[Category:Maintenance:Template W error]]{{color|red|'''Template W: parameter error'''}}<!--
-->|{{#switch:{{{link|}}}|none=<!--
-->|no|n|-|={{#if:{{{2|}}}|{{#switch:{{{2}}}|+|c={{{1}}}|{{{2}}}}}|{{{1|{{Projectname|w}}}}}}}<!-- option for only text without link
-->|=[[:{{#if:{{{3|}}}|{{#switch:{{{3}}}|+|c|C=w|{{{3}}}}}|w}}:{{{1|{{Projectname|w}}}}}<!-- (w=en)
-->|{{<includeonly>safesubst:</includeonly>#if:{{{2|}}}|{{#switch:{{{2}}}|+|c={{{1}}}|{{{2}}}}}|{{{1|{{Projectname|w}}}}}<!--
-->|{{#if:{{NAMESPACE:{{{1|}}}}}|{{NAMESPACE:{{{1|}}}}}''''':'''''{{PAGENAME:{{{1|{{Projectname|w}}}}}}}<!-- :
-->|{{#ifeq:{{padleft:|1|{{{1|W}}}}}|{{lc:{{padleft:|1|{{PAGENAME:{{{1|W}}}}}}}}}<!--"ℓ"
-->|{{lcfirst:{{PAGENAME:{{{1|{{Projectname|w}}}}}}}}}<!-- first character lower case
-->|{{PAGENAME:{{{1|{{Projectname|w}}}}} }}}}}}}}]]}}<!--
-->{{#switch:+|{{{2}}}|{{{3}}}|{{{4}}}=[[Category:{{PAGENAME:{{{1}}}}}]]<!--
-->|{{#switch:c|{{{2}}}|{{{3}}}|{{{4}}}=[[Category:{{Strip|{{PAGENAME:{{{1}}}}}|2={{{+|0}}}|3={{{-|0}}}|h={{{h|}}}|t={{{t|}}}}}]]<!--
-->|{{#switch:C|{{{3}}}|{{{4}}}={{#if:{{{2|}}}|[[Category:{{Strip|{{PAGENAME:{{{2}}}}}|2={{{+|0}}}|3={{{-|0}}}|h={{{h|}}}|t={{{t|}}}}}]]}}}}}}}}<!--
-->}}<noinclude>
{{documentation}}
</noinclude>
s65gzl2fzj2ztecp2gctn8ljm6swx3l
Template:Vote keep
10
15782
74451
2025-05-31T17:16:07Z
Lucas Werkmeister
11746
fulfilling edit request by [[User:Saurmandal]] – add |hi=
74451
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = أبقِ
|be |be-tarask = Пакінуць
|bg = Запази
|bn = রাখুন
|bs = Zadrži
|cs = Ponechat
|da = Behold
|de = Behalten
|el = Διατήρηση
|en = Keep
|eo = Konservi
|es = Manténgase
|et = Säilitada
|eu = Gorde
|fa = بماند
|fi = Säilytettävä
|fr = Conserver
|fy = Behâlde
|gl = Manter
|he = להשאיר
|hi = रखें
|hr = Zadržati
|hu = Maradjon
|hy = Թողնել
|ia = Mantener
|it = Mantenere
|ja = 存続
|ka = შენარჩუნება
|kk = Қалдырылсын
|ko = 유지
|ku = Hiştin
|mk = Задржи
|ml = നിലനിർത്തുക
|ms = Undian simpan
|nb = Behold
|nds= Behollen
|nl = Behouden
|nn = Tak vare på
|no = Behold
|pl = Zostawić
|prg= Palāikais
|pt = Manter
|ro = Păstrare
|ru = Оставить
|sk = Ponechať
|sl = Ohranimo
|sq = Mbaje
|sr = Оставити
|sv = Behåll
|th = เก็บ
|tl = Panatilihin
|tok = o awen
|tr = Kalsın
|uk = Залишити
|vi = Giữ
|zh = 保留
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
sjbmiplg8uty5k8mmxtdlr9lzi3v44h
74452
74451
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_keep]]: Importing the Support template
74451
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = أبقِ
|be |be-tarask = Пакінуць
|bg = Запази
|bn = রাখুন
|bs = Zadrži
|cs = Ponechat
|da = Behold
|de = Behalten
|el = Διατήρηση
|en = Keep
|eo = Konservi
|es = Manténgase
|et = Säilitada
|eu = Gorde
|fa = بماند
|fi = Säilytettävä
|fr = Conserver
|fy = Behâlde
|gl = Manter
|he = להשאיר
|hi = रखें
|hr = Zadržati
|hu = Maradjon
|hy = Թողնել
|ia = Mantener
|it = Mantenere
|ja = 存続
|ka = შენარჩუნება
|kk = Қалдырылсын
|ko = 유지
|ku = Hiştin
|mk = Задржи
|ml = നിലനിർത്തുക
|ms = Undian simpan
|nb = Behold
|nds= Behollen
|nl = Behouden
|nn = Tak vare på
|no = Behold
|pl = Zostawić
|prg= Palāikais
|pt = Manter
|ro = Păstrare
|ru = Оставить
|sk = Ponechať
|sl = Ohranimo
|sq = Mbaje
|sr = Оставити
|sv = Behåll
|th = เก็บ
|tl = Panatilihin
|tok = o awen
|tr = Kalsın
|uk = Залишити
|vi = Giữ
|zh = 保留
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
sjbmiplg8uty5k8mmxtdlr9lzi3v44h
Template:Vote delete
10
15783
74453
2026-07-30T20:41:16Z
TadejM
11747
+sl
74453
wikitext
text/x-wiki
[[File:Symbol delete vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|be-tarask = Выдаліць
|bg = Изтрий
|bn = অপসারণ
|br = Nullañ
|cy = Dileu
|da = Slet
|de = Löschen
|en = Delete
|eo = Forigi
|es = Bórrese
|et = Kustutada
|eu = Ezabatu
|fa = حذف شود
|fi = Pois
|fr = Supprimer
|gu = હટાવો
|hi = हटाएँ
|hr = Izbrisati
|hu = Törlendő
|is = Eyða
|it = Cancellare
|ja = 削除
|kk = Жойылсын
|ky = Өчүрүлсүн
|mk = Бриши
|ml = നീക്കം ചെയ്യുക
|nb = Slett
|nds= Wegdoon
|nn = Slett
|no = Slett
|pl = Usunąć
|pt = Eliminar
|ru = Удалить
|sl = Izbrišimo
|sr = Обрисати
|sv = Radera
|th = ลบ
|tl = Bura
|tr = Silinsin
|uk = Вилучити
|zh-hans = 删除
|zh-hant = 刪除
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
q4qqmnqz0evdj6baxy0p8qx6svddv3l
74454
74453
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_delete]]: Importing the Support template
74453
wikitext
text/x-wiki
[[File:Symbol delete vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|be-tarask = Выдаліць
|bg = Изтрий
|bn = অপসারণ
|br = Nullañ
|cy = Dileu
|da = Slet
|de = Löschen
|en = Delete
|eo = Forigi
|es = Bórrese
|et = Kustutada
|eu = Ezabatu
|fa = حذف شود
|fi = Pois
|fr = Supprimer
|gu = હટાવો
|hi = हटाएँ
|hr = Izbrisati
|hu = Törlendő
|is = Eyða
|it = Cancellare
|ja = 削除
|kk = Жойылсын
|ky = Өчүрүлсүн
|mk = Бриши
|ml = നീക്കം ചെയ്യുക
|nb = Slett
|nds= Wegdoon
|nn = Slett
|no = Slett
|pl = Usunąć
|pt = Eliminar
|ru = Удалить
|sl = Izbrišimo
|sr = Обрисати
|sv = Radera
|th = ลบ
|tl = Bura
|tr = Silinsin
|uk = Вилучити
|zh-hans = 删除
|zh-hant = 刪除
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
q4qqmnqz0evdj6baxy0p8qx6svddv3l
Module:Transclude
828
15784
74455
2023-02-22T11:10:12Z
ExE Boss
6436
Update `@require` doc comment
74455
Scribunto
text/plain
-- <nowiki>
--------------------------------------------------------------------------------
-- Module that allows transcluding a template with all parent arguments.
-- Useful in `/i18n` template subpages that delegate to a `/layout` subpage.
--
-- @module transclude
-- @author [[User:ExE Boss]]
--------------------------------------------------------------------------------
require('strict')
local checkType = require('libraryUtil').checkType;
local p = {}
local INVALID_TITLES = {
["."] = true,
[".."] = true,
};
local function _ne(value)
return value and value ~= ''
end
--------------------------------------------------------------------------------
-- Helper function that merges argument tables.
--
-- @function mergeArgs
-- @param {table} inArgs
-- @param {table} outArgs
--------------------------------------------------------------------------------
local function mergeArgs(inArgs, outArgs, opts)
checkType("mergeArgs", 1, inArgs, "table");
checkType("mergeArgs", 2, outArgs, "table");
checkType("mergeArgs", 3, opts, "table", true);
opts = opts or {}
local ignoredParams = opts.ignoredParams;
local ignoredPrefix = opts.ignoredPrefix;
for name, value in pairs(inArgs) do
if (type(name) == "string") then
if not (
(ignoredParams and ignoredParams[name] == true)
or (ignoredPrefix and
ignoredPrefix == name:sub(1, ignoredPrefix:len()))
) then
outArgs[name] = value;
end
else
outArgs[name] = value;
end
end
return outArgs;
end
-- Exported for testing:
p['#mergeArgs'] = mergeArgs;
local mt = {};
function mt.__index(_, name)
if (
type(name) ~= "string"
or INVALID_TITLES[name]
or mw.ustring.find(name, "#", nil, true)
) then
return nil;
end
local title = mw.title.new(name, "Template")
if (not title) then
return nil;
end
return function (frame)
checkType('transclude["' .. name .. '"]', 1, frame, "table");
local parentFrame = frame:getParent();
local ignoredParams, ignoredPrefix;
if _ne(frame.args["#ignoredParams"]) then
ignoredParams = {};
for m in mw.text.gsplit(frame.args["#ignoredParams"], '|', true) do
ignoredParams[mw.text.trim(m)] = true;
end
end
if _ne(frame.args['#ignoredPrefix']) then
ignoredPrefix = frame.args['#ignoredPrefix'];
end
local args = {};
if (parentFrame) then
mergeArgs(parentFrame.args, args, {
ignoredParams = ignoredParams,
ignoredPrefix = ignoredPrefix,
});
end
mergeArgs(frame.args, args, {
ignoredPrefix = "#",
});
if (not title.exists) then
return "[[:" .. title.fullText .. "]]";
end
return frame:expandTemplate{
title = title,
args = args,
};
end
end
return setmetatable(p, mt);
hysh2nsdh3zjyxf0x9i4gz5mnkh4mhj
74456
74455
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Module:Transclude]]: Importing the Support template
74455
Scribunto
text/plain
-- <nowiki>
--------------------------------------------------------------------------------
-- Module that allows transcluding a template with all parent arguments.
-- Useful in `/i18n` template subpages that delegate to a `/layout` subpage.
--
-- @module transclude
-- @author [[User:ExE Boss]]
--------------------------------------------------------------------------------
require('strict')
local checkType = require('libraryUtil').checkType;
local p = {}
local INVALID_TITLES = {
["."] = true,
[".."] = true,
};
local function _ne(value)
return value and value ~= ''
end
--------------------------------------------------------------------------------
-- Helper function that merges argument tables.
--
-- @function mergeArgs
-- @param {table} inArgs
-- @param {table} outArgs
--------------------------------------------------------------------------------
local function mergeArgs(inArgs, outArgs, opts)
checkType("mergeArgs", 1, inArgs, "table");
checkType("mergeArgs", 2, outArgs, "table");
checkType("mergeArgs", 3, opts, "table", true);
opts = opts or {}
local ignoredParams = opts.ignoredParams;
local ignoredPrefix = opts.ignoredPrefix;
for name, value in pairs(inArgs) do
if (type(name) == "string") then
if not (
(ignoredParams and ignoredParams[name] == true)
or (ignoredPrefix and
ignoredPrefix == name:sub(1, ignoredPrefix:len()))
) then
outArgs[name] = value;
end
else
outArgs[name] = value;
end
end
return outArgs;
end
-- Exported for testing:
p['#mergeArgs'] = mergeArgs;
local mt = {};
function mt.__index(_, name)
if (
type(name) ~= "string"
or INVALID_TITLES[name]
or mw.ustring.find(name, "#", nil, true)
) then
return nil;
end
local title = mw.title.new(name, "Template")
if (not title) then
return nil;
end
return function (frame)
checkType('transclude["' .. name .. '"]', 1, frame, "table");
local parentFrame = frame:getParent();
local ignoredParams, ignoredPrefix;
if _ne(frame.args["#ignoredParams"]) then
ignoredParams = {};
for m in mw.text.gsplit(frame.args["#ignoredParams"], '|', true) do
ignoredParams[mw.text.trim(m)] = true;
end
end
if _ne(frame.args['#ignoredPrefix']) then
ignoredPrefix = frame.args['#ignoredPrefix'];
end
local args = {};
if (parentFrame) then
mergeArgs(parentFrame.args, args, {
ignoredParams = ignoredParams,
ignoredPrefix = ignoredPrefix,
});
end
mergeArgs(frame.args, args, {
ignoredPrefix = "#",
});
if (not title.exists) then
return "[[:" .. title.fullText .. "]]";
end
return frame:expandTemplate{
title = title,
args = args,
};
end
end
return setmetatable(p, mt);
hysh2nsdh3zjyxf0x9i4gz5mnkh4mhj
Template:Transclude
10
15785
74457
2019-07-16T10:41:02Z
4nn1l2
4271
Changed protection level for "[[Template:Transclude]]": downgraded protection level per [[Special:Permalink/357548402|consensus]] ([Move=Allow only template editors and administrators] (indefinite) [Edit=Allow only template editors and administrators] (indefinite))
74457
wikitext
text/x-wiki
{{#switch: {{NAMESPACE: {{{1}}} }}
|#default = {{FULLPAGENAME: {{{1}}} }} <!-- eg "User:Foo" -->
|{{ns:0}} =
{{#ifeq: {{NAMESPACE: {{{1}}} }} | {{NAMESPACE: Template{{{1}}} }}
| Template:{{{1}}} <!-- no leading colon, eg "Foo" -->
| {{PAGENAME: {{{1}}} }} <!-- leading colon, eg ":Foo", so we want the article -->
}}
}}<noinclude>
{{documentation}}
</noinclude>
ob9m2b913drxlie5tgekieudupfrl9n
74458
74457
2026-09-10T15:29:58Z
B722N
6898
1 revision imported from [[:commons:Template:Transclude]]: Importing the Support template
74457
wikitext
text/x-wiki
{{#switch: {{NAMESPACE: {{{1}}} }}
|#default = {{FULLPAGENAME: {{{1}}} }} <!-- eg "User:Foo" -->
|{{ns:0}} =
{{#ifeq: {{NAMESPACE: {{{1}}} }} | {{NAMESPACE: Template{{{1}}} }}
| Template:{{{1}}} <!-- no leading colon, eg "Foo" -->
| {{PAGENAME: {{{1}}} }} <!-- leading colon, eg ":Foo", so we want the article -->
}}
}}<noinclude>
{{documentation}}
</noinclude>
ob9m2b913drxlie5tgekieudupfrl9n
Template:Weak oppose
10
15786
74461
2025-08-25T20:46:25Z
Mohammed Qays
11748
74461
wikitext
text/x-wiki
[[File:BA candidate.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = ضد ضعيف
| az = Qismən qarşı
| bar= Eher ned ois scho
| be-tarask = Маю пярэчаньні
| bn = দুর্বল বিরোধিতা
| bs = Slabo protiv
| cs = Slabě proti
| de = knappes Kontra
| en = Weak oppose
| eo = Malforte kontraŭ
| es = Algo en contra
| eu = Aurka, neurri batean
| fa = کمی مخالف
| fi = Varovainen vastustus
| fr = Plutôt contre
| fy = Swak tsjin
| gl = Discordo levemente
| gu = નબળો વિરોધ
| hi = दुर्बल विरोध
| hu = Gyengén ellenzem
| hr = Blago protiv
| hy = Թույլ դեմ
| it = Lievemente contrario
| ja = 反対寄り
| ka = წინააღმდეგობისკენ ვიხრები
| kk = Жәй қарсымын
| ko = 약한 반대
| mk = Слабо против
| ml = ദുർബല എതിർപ്പ്
| he = נגד חלש
| nl = Zwak tegen
| nn = Noko imot
| pl = Słabe przeciw
| prg= Kussals emprīkistatina
| pt = Discordo levemente
| ro = Puțin contra
| ru = Возражаю
| sco= Weak oppose
| sl = Šibko proti.
| sr = Слабо против
| sv = Svagt emot
| th = ไม่เห็นด้วยเล็กน้อย
| tl = Hindi masyadong tumututol
| tr = Kısmi karşı
| uk = Слабке проти
| zh-hans = 倾向反对
| zh-hant = 傾向反對
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
ljki49kqi85kkdsm207po05d0bktf1l
74462
74461
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Template:Weak_oppose]]: Importing the Support template
74461
wikitext
text/x-wiki
[[File:BA candidate.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = ضد ضعيف
| az = Qismən qarşı
| bar= Eher ned ois scho
| be-tarask = Маю пярэчаньні
| bn = দুর্বল বিরোধিতা
| bs = Slabo protiv
| cs = Slabě proti
| de = knappes Kontra
| en = Weak oppose
| eo = Malforte kontraŭ
| es = Algo en contra
| eu = Aurka, neurri batean
| fa = کمی مخالف
| fi = Varovainen vastustus
| fr = Plutôt contre
| fy = Swak tsjin
| gl = Discordo levemente
| gu = નબળો વિરોધ
| hi = दुर्बल विरोध
| hu = Gyengén ellenzem
| hr = Blago protiv
| hy = Թույլ դեմ
| it = Lievemente contrario
| ja = 反対寄り
| ka = წინააღმდეგობისკენ ვიხრები
| kk = Жәй қарсымын
| ko = 약한 반대
| mk = Слабо против
| ml = ദുർബല എതിർപ്പ്
| he = נגד חלש
| nl = Zwak tegen
| nn = Noko imot
| pl = Słabe przeciw
| prg= Kussals emprīkistatina
| pt = Discordo levemente
| ro = Puțin contra
| ru = Возражаю
| sco= Weak oppose
| sl = Šibko proti.
| sr = Слабо против
| sv = Svagt emot
| th = ไม่เห็นด้วยเล็กน้อย
| tl = Hindi masyadong tumututol
| tr = Kısmi karşı
| uk = Слабке проти
| zh-hans = 倾向反对
| zh-hant = 傾向反對
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
ljki49kqi85kkdsm207po05d0bktf1l
Template:Conj
10
15787
74463
2021-07-10T16:47:50Z
CptViraj
5275
Changed protection settings for "[[Template:Conj]]": [[Commons:Protection policy|Widely used template]] ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74463
wikitext
text/x-wiki
{{#invoke:Linguistic|conjfromWiki}}<noinclude>
{{documentation}}
</noinclude>
7kfguw2d5juz3ay7z59n6n73pe5qgxm
74464
74463
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Template:Conj]]: Importing the Support template
74463
wikitext
text/x-wiki
{{#invoke:Linguistic|conjfromWiki}}<noinclude>
{{documentation}}
</noinclude>
7kfguw2d5juz3ay7z59n6n73pe5qgxm
Template:Clickable button/iconclass
10
15788
74467
2013-09-14T10:25:00Z
Rillke
2213
evaluating text arg
74467
wikitext
text/x-wiki
{{#if:{{{3|}}}
|<!-- a text was specified
-->{{#if:{{{1|}}}
|<!-- a primary icon was specified -->{{#if:{{{2|}}}
|<!-- a secondary icon was specified --> ui-button-text-icons
|<!-- no secondary icon was specified --> ui-button-text-icon-primary
}}
|<!-- no primary icon specified --> {{#if:{{{2|}}}
|<!-- a secondary icon was specified --> ui-button-text-icon-secondary
|<!-- no secondary icon was specified --> ui-button-text-only
}}
}}
|<!-- no text was specified
-->{{#if:{{{1|}}}
|<!-- a primary icon was specified -->{{#if:{{{2|}}}
|<!-- a secondary icon was specified --> ui-button-icons-only
|<!-- no secondary icon was specified --> ui-button-icon-only
}}
|<!-- no primary icon specified --> {{#if:{{{2|}}}
|<!-- a secondary icon was specified --> ui-button-icon-only
|<!-- no secondary icon was specified --> error
}}
}}
}}
lhcosganbcjza7n61x8xc8wjmog8aka
74468
74467
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Template:Clickable_button/iconclass]]: Importing the Support template
74467
wikitext
text/x-wiki
{{#if:{{{3|}}}
|<!-- a text was specified
-->{{#if:{{{1|}}}
|<!-- a primary icon was specified -->{{#if:{{{2|}}}
|<!-- a secondary icon was specified --> ui-button-text-icons
|<!-- no secondary icon was specified --> ui-button-text-icon-primary
}}
|<!-- no primary icon specified --> {{#if:{{{2|}}}
|<!-- a secondary icon was specified --> ui-button-text-icon-secondary
|<!-- no secondary icon was specified --> ui-button-text-only
}}
}}
|<!-- no text was specified
-->{{#if:{{{1|}}}
|<!-- a primary icon was specified -->{{#if:{{{2|}}}
|<!-- a secondary icon was specified --> ui-button-icons-only
|<!-- no secondary icon was specified --> ui-button-icon-only
}}
|<!-- no primary icon specified --> {{#if:{{{2|}}}
|<!-- a secondary icon was specified --> ui-button-icon-only
|<!-- no secondary icon was specified --> error
}}
}}
}}
lhcosganbcjza7n61x8xc8wjmog8aka
Template:Tmpl
10
15789
74469
2021-08-06T17:03:07Z
CptViraj
5275
Protected "[[Template:Tmpl]]": [[Commons:Protection policy|Widely used template]]: [[Special:PermaLink/578762431#Template:Tmpl and Module:Tmpl|Request at COM:ANB]] ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74469
wikitext
text/x-wiki
<onlyinclude><includeonly>{{#invoke:Tmpl|renderTmpl}}</includeonly></onlyinclude>
{{Documentation}}
pd3axhqea7nbo7qxiyq3aicgysk00ym
74470
74469
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Template:Tmpl]]: Importing the Support template
74469
wikitext
text/x-wiki
<onlyinclude><includeonly>{{#invoke:Tmpl|renderTmpl}}</includeonly></onlyinclude>
{{Documentation}}
pd3axhqea7nbo7qxiyq3aicgysk00ym
Module:Tmpl
828
15790
74471
2021-08-06T17:03:50Z
CptViraj
5275
Protected "[[Module:Tmpl]]": [[Commons:Protection policy|High-risk Lua module]]: [[Special:PermaLink/578762431#Template:Tmpl and Module:Tmpl|Request at COM:ANB]] ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74471
Scribunto
text/plain
-- This is a helper module for Template:tmpl
local this = {}
function this.renderTmpl(frame)
local args = frame.args
local pargs = (frame:getParent() or {}).args
local result = pargs[0] or ''
for k, v in pairs(pargs) do
local n = tonumber(k) or -1
if (n >= 1 and n <= 9) then
result = mw.ustring.gsub( result, '$' .. n, mw.text.trim(v) )
end
end
return result
end
return this
ep2bcs460ax2usm6nvg7v90dlm9e09v
74472
74471
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Module:Tmpl]]: Importing the Support template
74471
Scribunto
text/plain
-- This is a helper module for Template:tmpl
local this = {}
function this.renderTmpl(frame)
local args = frame.args
local pargs = (frame:getParent() or {}).args
local result = pargs[0] or ''
for k, v in pairs(pargs) do
local n = tonumber(k) or -1
if (n >= 1 and n <= 9) then
result = mw.ustring.gsub( result, '$' .. n, mw.text.trim(v) )
end
end
return result
end
return this
ep2bcs460ax2usm6nvg7v90dlm9e09v
Template:Full stop
10
15791
74475
2024-06-11T09:45:12Z
Ebrahim
1170
Protected "[[Template:Full stop]]": used in the interface, MediaWiki:Userrights-summary ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74475
wikitext
text/x-wiki
<noinclude>This shows a localized full stop at end of this sentence<span style="background:yellow"><!--
--></noinclude>{{#switch: {{LangSwitch|lang={{#if:{{{lang|}}}|{{{lang|}}}|{{PAGELANGUAGE}}}}
| default = Latn
| aee = Aran
| ar = Arab
| ary = Arab
| arz = Arab
| azb = Aran
| bal = Aran
| bcc = Aran
| bg = Cyrl
| bgn = Aran
| bgp = Aran
| bh = Deva
| bn = Beng
| bqi = Aran
| el = Grek
| fa = Aran
| gu = Guru
| gj = Gujr
| glh = Aran
| glk = Aran
| hi = Deva
| hy = Armn
| ja = Jpan
| jbo = Latn-Zs-i-Zs
| ka = Geor
| ko = Hang
| ktl = Aran
| kn = Knda
| ks-arab = Aran
| la = Laoo
| lrc = Aran
| luz = Aran
| lzh = Hant
| mzn = Aran
| km = Khmr
| mk = Cyrl
| ml = Mlym
| or = Orya
| ne = Deva
| new = Deva
| ps = Aran
| psh = Aran
| ps i= Aran
| pnt = Grek
| ru = Cyrl
| sa = Deva
| sd = Aran
| si = Sinh
| sr = Cyrl
| srz = Aran
| te = Telu
| th = Thai
| tly = Aran
| uk = Cyrl
| ug = Aran
| ur = Aran
| yue = Hant
| zh = Hans
| zh-hans = Hans
| zh-hant = Hant
}}
| Arab | Cyrl | Geor | Grek | Hang | Laoo | Latn
| Zinh-Pe-Zs | #default = .{{#ifeq:{{{nospace|}}}|y|| }}
| Aran
| Aran-Pe-Zs = <!-- Note: U+0640 (Arabic Tatween) is an "joining" format control, NOT an *isolated* punctuation like U+06D4 (Nastaliq Arabic Full Stop) -->۔{{#ifeq:{{{nospace|}}}|y|| }}
| Armn = <!-- U+0589 Armenian full stop (it's NOT an ASCII colon!) -->։{{#ifeq:{{{nospace|}}}|y|| }}
| Beng | Deva | Guru | Gujr | Knda | Mlym | Orya | Sinh | Taml | Telu
| Deva-Pe-Zs = <!-- U+0964 Devanagari Danda -->।{{#ifeq:{{{nospace|}}}|y|| }}
| Bpmf | Hani | Hans | Hant | Jpan | Phpa
| Hani-Pe = 。
| Khmr
| Khmr-Pe-Zs = <!-- U+17D4 Khmer sign Khan -->។{{#ifeq:{{{nospace|}}}|y|| }}
| Latn-Zs-i-Zs = i{{#ifeq:{{{nospace|}}}|y|| }}
| Thai
| Zinh-space =  
}}<noinclude></span>Or its equivalent in the relevant language.
{{Documentation}}</noinclude>
llsx4k7i1spq3axrmhlfbpy0m6emrnj
74476
74475
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Template:Full_stop]]: Importing the Support template
74475
wikitext
text/x-wiki
<noinclude>This shows a localized full stop at end of this sentence<span style="background:yellow"><!--
--></noinclude>{{#switch: {{LangSwitch|lang={{#if:{{{lang|}}}|{{{lang|}}}|{{PAGELANGUAGE}}}}
| default = Latn
| aee = Aran
| ar = Arab
| ary = Arab
| arz = Arab
| azb = Aran
| bal = Aran
| bcc = Aran
| bg = Cyrl
| bgn = Aran
| bgp = Aran
| bh = Deva
| bn = Beng
| bqi = Aran
| el = Grek
| fa = Aran
| gu = Guru
| gj = Gujr
| glh = Aran
| glk = Aran
| hi = Deva
| hy = Armn
| ja = Jpan
| jbo = Latn-Zs-i-Zs
| ka = Geor
| ko = Hang
| ktl = Aran
| kn = Knda
| ks-arab = Aran
| la = Laoo
| lrc = Aran
| luz = Aran
| lzh = Hant
| mzn = Aran
| km = Khmr
| mk = Cyrl
| ml = Mlym
| or = Orya
| ne = Deva
| new = Deva
| ps = Aran
| psh = Aran
| ps i= Aran
| pnt = Grek
| ru = Cyrl
| sa = Deva
| sd = Aran
| si = Sinh
| sr = Cyrl
| srz = Aran
| te = Telu
| th = Thai
| tly = Aran
| uk = Cyrl
| ug = Aran
| ur = Aran
| yue = Hant
| zh = Hans
| zh-hans = Hans
| zh-hant = Hant
}}
| Arab | Cyrl | Geor | Grek | Hang | Laoo | Latn
| Zinh-Pe-Zs | #default = .{{#ifeq:{{{nospace|}}}|y|| }}
| Aran
| Aran-Pe-Zs = <!-- Note: U+0640 (Arabic Tatween) is an "joining" format control, NOT an *isolated* punctuation like U+06D4 (Nastaliq Arabic Full Stop) -->۔{{#ifeq:{{{nospace|}}}|y|| }}
| Armn = <!-- U+0589 Armenian full stop (it's NOT an ASCII colon!) -->։{{#ifeq:{{{nospace|}}}|y|| }}
| Beng | Deva | Guru | Gujr | Knda | Mlym | Orya | Sinh | Taml | Telu
| Deva-Pe-Zs = <!-- U+0964 Devanagari Danda -->।{{#ifeq:{{{nospace|}}}|y|| }}
| Bpmf | Hani | Hans | Hant | Jpan | Phpa
| Hani-Pe = 。
| Khmr
| Khmr-Pe-Zs = <!-- U+17D4 Khmer sign Khan -->។{{#ifeq:{{{nospace|}}}|y|| }}
| Latn-Zs-i-Zs = i{{#ifeq:{{{nospace|}}}|y|| }}
| Thai
| Zinh-space =  
}}<noinclude></span>Or its equivalent in the relevant language.
{{Documentation}}</noinclude>
llsx4k7i1spq3axrmhlfbpy0m6emrnj
Module:Languages
828
15792
74477
2024-05-02T14:41:34Z
Uzume
864
cleanup simplifying some things
74477
Scribunto
text/plain
--[=[
Not globally exposed. Internal function only.
language_subpages( frame, transform, options )
Parameters
frame: The frame that was passed to the method invoked. The first argument or the page argument will be respected.
transform: A transform function. Example: function( basepagename, subpagename, code, langname ) end
options: An object with options. Example: { abort= { on=function() end, time=0.8 } }
Following options are available:
abort: Aborts iterating over the subpages if one of the conditions is met. If the process is aborted, nil is returned!
on: Function to be called if an abort-condition was met.
cycles: The maximum number of subpages to run over.
time: Maximum time to spend running over the subpages.
]=]
local function language_subpages( frame, transform, options )
local args, pargs, options = frame.args, ( frame:getParent() or {} ).args or {}, options or {};
local title = args.page or args[1] or pargs.page or pargs[1] or "";
local abort = options.abort or {};
local at, clock = type( abort.on ), os.clock();
local ac = function()
if at == 'function' or ( at == 'table' and getmetatable(abort.on).__call ) then
abort.on();
end
end
local tt = type( transform );
local page = require( 'Module:Page' );
title = page.clean(title);
if tt == 'function' or ( tt == 'table' and getmetatable(transform).__call ) then
local fetch, pages, langcode, langname = mw.language.fetchLanguageName, {};
--[==[
/ \
/ | \
/ · \
¯¯¯¯¯¯¯
Page.subpages() no longer works because it attempted to parse the HTML content generated by
calling the parser function "Special:Prefixindex:" which is no longer expanded in Lua but
converted to a "stripped tag" (containing a unique identifier surrounded by ASCII DEL characters)
representing the tag name and its parameters.
The actual expansion of stripped tags can no longer be performed in Lua.
Now unstripping these tags just kills ALL these tags (except "wiki" tags) instead of performing
their expansion by running the extension code. Only MediaWiki can unstrip these tags in texts after
they have been returned by Lua.
For this reason, page.subpages() is now completely empty (Module:Page no longer works).
This cannot be bypassed, except by using a Scribunto extension library if lifting the limits set by mw.unstrip.
Note that "Special:Prefixindex:" is also costly, even if it just requires a single database query to
get all subpages, instead of one costly #ifexist or one costly mw.title() property reading per
tested subpage to know if it exists.
For now there's still no reliable way to get a list of subpages, or performing queries similar to
the [[Special:Prefixindex]] page or list members of a category like when viewing a category page.
Ideally, there should exist a method for such queries on Title objects returned by the mw.title library;
but for now there's none.
In Lua now, the only expansion possible with an immediate effect is the expansion of standard templates,
all special tags or special pages, or parser function extensions do not work (Only the #expr parser
function is supported by using an external Scribunto library).
--]==]
for pg in page.subpages( title, { ignoreNS=true } ) do
if abort.cycles then
abort.cycles = abort.cycles - 1
if 0 == abort.cycles then return ac() end
end
if abort.time then
if (os.clock() - clock) > abort.time then return ac() end
end
if mw.ustring.len( pg ) <= 12 then
langcode = string.lower( pg );
langname = fetch( langcode );
if langname ~= '' then
table.insert( pages, transform( title, pg, langcode, langname ) );
end
end
end
return pages;
end
return {};
end
local function cloneArgs(frame)
local args, pargs = {}, {}
for k,v in pairs( frame.args ) do args[k] = v end
if frame:getParent() then
for k,v in pairs( frame:getParent().args ) do pargs[k] = v end
end
return args, pargs
end
local p = {};
--[=[
Usage:
{{#invoke:languages|internal|Template:Adjective}}
]=]
function p.internal(frame)
return table.concat(
language_subpages( frame,
function( title, page, code, name )
return mw.ustring.format(
'<bdi class="language lang-%s" lang="%s">[[%s/%s|%s]]</bdi>',
code, code,
title, page,
name
);
end
),
' <b>·</b> '
);
end
--[=[
Usage:
{{#invoke:languages|external|Template:Adjective}}
]=]
function p.external(frame)
return table.concat(
language_subpages( frame,
function( title, page, code, name )
return mw.ustring.format(
'<bdi class="language lang-%s" lang="%s">[%s/%s %s]</bdi>',
code, code,
tostring( mw.uri.fullUrl( title ) ), page:gsub( ' ', '_' ),
name
);
end
),
' <b>·</b> '
);
end
--[=[
forEachLanguage
This function iterates over all language codes known to MediaWiki based on a maintained list
replacing patterns in a pattern-string for each language
Usage
{{#invoke:Languages|forEachLanguage
|pattern=patternstring
|before=string to insert before iteration
|after=string added after iteration
|sep=separator string between iterations
|inLang=langcode used for $lnTrP and $lnTrUC1
}}
Parameters
pattern: A pattern string which is processed for each language and which is concatenated at the end and returned as one string
before: A string that is inserted before the concatenated result
after: A string that is inserted after the concatenated result
sep: A string that is inserted between each line created from the pattern while iterating (like ProcessedPattern_sep_ProcessedPattern_sep_ProcessedPattern)
inLang: Langcode to use for $lnTrP and $lnTrUC1
preprocess: if set to a non-empty value, the output will be preprocessed before being returned.
Warning
The output is still not prepreprocessed by default: so parser functions and magic keywords generated by the pattern are still not executed and replaced,
and template transclusions are still not expanded (see examples in other functions in this module).
When using this function directly from a MediaWiki page or template, this means it is only possible to use patterns generating basic MediaWiki formatting
or HTML tags. It you want the output to be preprocessed (in the given frame), set the preprocess parameter to a non-empty string.
Patterns
$lc - language code such as en or de
$lnP - language name in own language (autonym)
$lnUC1 - language name in own language (autonym), first letter upper case
$lnTrP - language name translated to the language requested by language code passed to inLang
$lnTrUC1 - language name translated to the language requested by language code passed to inLang, first letter upper case
Example
{{#invoke:Languages|forEachLanguage|pattern=<span lang="$lc" xml:lang="$lc" class="language lang-$lc">[[Page/$lc|$lnP]]</span>}}
]=]
-- =p.forEachLanguage({ args= { pattern = "$lc - $lnTrP\n", inLang = "en" } })
function p.forEachLanguage(frame)
local l = require("Module:Languages/List")
local ret = {}
local lang = mw.language
local line
local pattern = frame.args.pattern or frame.args[1] or ""
local prefix = frame.args.before or frame.args[2] or ""
local postfix = frame.args.after or frame.args[3] or ""
local sep = frame.args.sep or frame.args.separator or frame.args[4] or ""
local inLang = frame.args.inLang or frame.args[5] or nil
local preprocess = frame.args.preprocess or frame.args[6] or ""
local langNameUCFirstReq = not not pattern:find( "$lnUC1", 1, true )
local langNameReq = not not pattern:find( "$lnP", 1, true ) or langNameUCFirstReq
local langNameTranslatedUCFirstReq = not not pattern:find( "$lnTrUC1", 1, true )
local langNameTranslatedReq = not not pattern:find( "$lnTrP", 1, true ) or langNameTranslatedUCFirstReq
local contentLangInstance = mw.language.getContentLanguage()
local inLangLangInstance
local l = mw.language.fetchLanguageNames() -- autonyms
local lTr
local lcIdList = require('Module:Languages/List').getSortedList( l )
if langNameTranslatedReq then
inLangLangInstance = --[==[
mw.getLanguage( inLang ) -- Quota hit in :ucfirst() if using too many langInstances
--]==] contentLangInstance
lTr = mw.language.fetchLanguageNames( inLang ) -- translated names
end
for _, lcId in pairs( lcIdList ) do
local subst = lcId:gsub('%%', '%%%%')
line = pattern:gsub( "%$lc", subst )
local langName, langInstance
-- autonym (name of lcId in locale lcId)
if langNameReq then
langName = l[lcId]
subst = langName:gsub('%%', '%%%%')
line = line:gsub( "%$lnP", subst )
end
if langNameUCFirstReq then
langInstance = --[==[
mw.getLanguage( lcId ) -- Quota hit in :ucfirst() if using too many langInstances
--]==] contentLangInstance
langName = langInstance:ucfirst( langName )
subst = langName:gsub('%%', '%%%%')
line = line:gsub( "%$lnUC1", subst )
end
-- translated name (name of lcId in locale inLang)
if langNameTranslatedReq then
langName = lTr[lcId]
subst = langName:gsub('%%', '%%%%')
line = line:gsub( "%$lnTrP", subst )
end
if langNameTranslatedUCFirstReq then
langName = inLangLangInstance:ucfirst( langName )
subst = langName:gsub('%%', '%%%%')
line = line:gsub( "%$lnTrUC1", subst )
end
table.insert(ret, line)
end
ret = prefix .. table.concat( ret, sep ) .. postfix
if preprocess ~= '' then
ret = frame:preprocess(ret)
end
return ret
end
--[=[
Provide logic for [[Template:Lle]] (Language Links external, to be substituted, language names written exactly as #language would provide them)
Warning: may expands too many costly #ifexist without limitation (if not substituted into a separate "/lang" template)
]=]
function p.lle(frame)
return frame:preprocess(
p.forEachLanguage({
args = {
pattern = '{{subst:#ifexist:{{{1}}}/$lc|[{{subst:fullurl:{{{1}}}/$lc}} <bdi class="language lang-$lc" lang="$lc">$lnP</bdi>] <b>∙</b> <!--\n-->}}'
}
})
)
end
--[=[
Provide logic for [[Template:Ll]] (Language Links internal, to be substituted, language names written exactly as #language would provide them)
Warning: may expands too many costly #ifexist without limitation (if not substituted into a separate "/lang" template)
]=]
function p.ll(frame)
return frame:preprocess(
p.forEachLanguage({
args = {
pattern = '{{subst:#ifexist:{{{1}}}/$lc|[[{{{1}}}/$lc|<bdi class="language lang-$lc" lang="$lc">$lnP</bdi>]] <b>∙</b> <!--\n-->}}'
}
})
)
end
--------------------------------------------------------
--- Different approaches for [[Template:Lang links]] ---
--------------------------------------------------------
--[=[
Provide logic for [[Template:Lang links]]
Using a cute Hybrid-Method:
First check the subpages which is quite fast; if there are too many fall back to checking for each language page individually
]=]
-- =p.langLinksNonExpensive({ args= { page='Commons:Picture of the Year/2010' }, getParent=function() end })
-- =p.langLinksNonExpensive({ args= { page='Main Page' }, getParent=function() end })
-- =p.langLinksNonExpensive({ args= { page='Template:No_source_since' }, getParent=function() end })
-- =p.langLinksNonExpensive({ args= { page='MediaWiki:Gadget-HotCat' }, getParent=function() end })
function p.langLinksNonExpensive(frame)
local args, pargs = frame.args, ( frame:getParent() or {} ).args or {};
local title = args.page or args[1] or pargs.page or pargs[1] or "";
local contentLangInstance = mw.language.getContentLanguage();
local pages2
if frame.preprocess == nil then
frame = mw.getCurrentFrame()
end
--[==[
local options = {
abort = {
time = 3.5,
on = function()
pages2 = p.forEachLanguage({
args = {
pattern = '{{#ifexist:' .. title .. '/$lc|[[' .. title .. '/$lc|<bdi lang="$lc">$lnP</bdi>]] <b>∙</b> }}'
}
})
end
}
}
local pages = language_subpages( frame,
function( title, page, code, langname )
return mw.ustring.format(
'[[%s/%s|<bdi lang="%s">%s</bdi>]]</span> <b>∙</b> ',
title, page, code, langname
)
end, options );
return pages2 and frame:preprocess(pages2) or table.concat(pages, '');
--]==]
return frame:preprocess(
p.forEachLanguage( {
args = {
pattern = '{{#ifexist:' .. title .. '/$lc|[[' .. title .. '/$lc|<bdi lang="$lc">$lnP</bdi>]] <b>∙</b> }}'
}
})
)
end
---------------------------------------------------------
----------------- [[Template:Autolang]] -----------------
---------------------------------------------------------
--[[
Works like {{autotranslate}} just allowing an unlimited number of arguments, even named arguments.
It's doing Magic! No arguments should be passed to {{#invoke:}}
]]
function p.autolang(frame)
local args, pargs = cloneArgs( frame )
if nil == args.useargs then
if not args.base then args = pargs end
elseif 'both' == args.useargs then
for k,v in pairs(args) do pargs[k] = v end
args = pargs
elseif 'parent' == args.useargs then
args = pargs
if pargs.base and not args.base then
args.base = pargs.base
end
end
local base = args.base
local userlang = frame:callParserFunction('int', 'lang')
local tl, tlns = 'Template:', 10
local tlb, fallback1, currenttemplate, currenttemplatepage
local fallback, contentlang = mw.text.split( userlang, '-', true )[1], mw.language.getContentLanguage():getCode()
local function createReturn(title)
local ret
local tlargs = {}
-- When LUA is invoked, templates are already expanded. This must be respected.
return frame:expandTemplate{ title = title, args = args }
end
if not base then
return ("'autolang' in [[Module:Languages]] was called but the 'base' parameter could not be found." ..
"The base parameter specifies the template that's subpages will be sought for a suitable translation.")
end
tlb = tl .. base .. '/'
currenttemplate = tlb .. userlang
currenttemplatepage = mw.title.new( currenttemplate, tlns )
if currenttemplatepage and currenttemplatepage.exists then
return createReturn(currenttemplate)
end
fallback1 = frame:preprocess( '{{Fallback|1=' .. base .. '|2=' .. userlang .. '}}' )
if fallback1 ~= contentlang then
return createReturn(tlb .. fallback1)
end
currenttemplate = tlb .. fallback
currenttemplatepage = mw.title.new( currenttemplate, tlns )
if currenttemplatepage and currenttemplatepage.exists then
return createReturn(currenttemplate)
end
currenttemplate = tlb .. contentlang
currenttemplatepage = mw.title.new( currenttemplate, tlns )
if currenttemplatepage and currenttemplatepage.exists then
return createReturn(currenttemplate)
end
return createReturn(tl .. base)
end
--[=[
Usage:
{{#invoke:languages|isKnownLanguageTag|gsw}} -> 1
{{#invoke:languages|isKnownLanguageTag|doesNotExist}} ->
]=]
function p.isKnownLanguageTag(frame)
return mw.language.isKnownLanguageTag( frame.args[1] or frame.args.tag or frame.args.code or '' ) and '1' or ''
end
function p.file_languages(frame)
local M_link = require( 'Module:Link' )
local contentLangInstance = mw.language.getContentLanguage()
local pattern = frame.args.pattern or '%s (%s)'
local original = frame.args.original or mw.title.getCurrentTitle().text
local ext_start, _ = string.find( original, '\.%w+$' )
local file_ext = string.sub( original, ext_start )
original = string.sub( original, 0, ext_start - 1 )
return frame:preprocess(
'<gallery>\n' ..
(table.concat(
M_link.forEachLink(
p.forEachLanguage({
args = { pattern = '[[$lc]]' }
}),
function( linkInfo )
local filename = mw.ustring.format( pattern, original, linkInfo.text ) .. file_ext
local filepage = mw.title.new( filename, 6 )
if filepage and filepage.exists then
return mw.ustring.format( '%s|%s',
filename,
mw.language.fetchLanguageName( linkInfo.text )
)
else
return nil
end
end
), '\n'
)) ..
'\n</gallery>'
)
end
function p.runTests()
return p.langLinksNonExpensive({
args = {
page = 'Module:Languages/testcases/test'
},
getParent = function() end
}) ==
'[[Module:Languages/testcases/test/de|<bdi lang="de">Deutsch</bdi>]] <b>∙</b> ' ..
'[[Module:Languages/testcases/test/en|<bdi lang="en">English</bdi>]] <b>∙</b> '
end
return p;
5mkofohau4gbugagap0iayfhj6cyv4b
74478
74477
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Module:Languages]]: Importing the Support template
74477
Scribunto
text/plain
--[=[
Not globally exposed. Internal function only.
language_subpages( frame, transform, options )
Parameters
frame: The frame that was passed to the method invoked. The first argument or the page argument will be respected.
transform: A transform function. Example: function( basepagename, subpagename, code, langname ) end
options: An object with options. Example: { abort= { on=function() end, time=0.8 } }
Following options are available:
abort: Aborts iterating over the subpages if one of the conditions is met. If the process is aborted, nil is returned!
on: Function to be called if an abort-condition was met.
cycles: The maximum number of subpages to run over.
time: Maximum time to spend running over the subpages.
]=]
local function language_subpages( frame, transform, options )
local args, pargs, options = frame.args, ( frame:getParent() or {} ).args or {}, options or {};
local title = args.page or args[1] or pargs.page or pargs[1] or "";
local abort = options.abort or {};
local at, clock = type( abort.on ), os.clock();
local ac = function()
if at == 'function' or ( at == 'table' and getmetatable(abort.on).__call ) then
abort.on();
end
end
local tt = type( transform );
local page = require( 'Module:Page' );
title = page.clean(title);
if tt == 'function' or ( tt == 'table' and getmetatable(transform).__call ) then
local fetch, pages, langcode, langname = mw.language.fetchLanguageName, {};
--[==[
/ \
/ | \
/ · \
¯¯¯¯¯¯¯
Page.subpages() no longer works because it attempted to parse the HTML content generated by
calling the parser function "Special:Prefixindex:" which is no longer expanded in Lua but
converted to a "stripped tag" (containing a unique identifier surrounded by ASCII DEL characters)
representing the tag name and its parameters.
The actual expansion of stripped tags can no longer be performed in Lua.
Now unstripping these tags just kills ALL these tags (except "wiki" tags) instead of performing
their expansion by running the extension code. Only MediaWiki can unstrip these tags in texts after
they have been returned by Lua.
For this reason, page.subpages() is now completely empty (Module:Page no longer works).
This cannot be bypassed, except by using a Scribunto extension library if lifting the limits set by mw.unstrip.
Note that "Special:Prefixindex:" is also costly, even if it just requires a single database query to
get all subpages, instead of one costly #ifexist or one costly mw.title() property reading per
tested subpage to know if it exists.
For now there's still no reliable way to get a list of subpages, or performing queries similar to
the [[Special:Prefixindex]] page or list members of a category like when viewing a category page.
Ideally, there should exist a method for such queries on Title objects returned by the mw.title library;
but for now there's none.
In Lua now, the only expansion possible with an immediate effect is the expansion of standard templates,
all special tags or special pages, or parser function extensions do not work (Only the #expr parser
function is supported by using an external Scribunto library).
--]==]
for pg in page.subpages( title, { ignoreNS=true } ) do
if abort.cycles then
abort.cycles = abort.cycles - 1
if 0 == abort.cycles then return ac() end
end
if abort.time then
if (os.clock() - clock) > abort.time then return ac() end
end
if mw.ustring.len( pg ) <= 12 then
langcode = string.lower( pg );
langname = fetch( langcode );
if langname ~= '' then
table.insert( pages, transform( title, pg, langcode, langname ) );
end
end
end
return pages;
end
return {};
end
local function cloneArgs(frame)
local args, pargs = {}, {}
for k,v in pairs( frame.args ) do args[k] = v end
if frame:getParent() then
for k,v in pairs( frame:getParent().args ) do pargs[k] = v end
end
return args, pargs
end
local p = {};
--[=[
Usage:
{{#invoke:languages|internal|Template:Adjective}}
]=]
function p.internal(frame)
return table.concat(
language_subpages( frame,
function( title, page, code, name )
return mw.ustring.format(
'<bdi class="language lang-%s" lang="%s">[[%s/%s|%s]]</bdi>',
code, code,
title, page,
name
);
end
),
' <b>·</b> '
);
end
--[=[
Usage:
{{#invoke:languages|external|Template:Adjective}}
]=]
function p.external(frame)
return table.concat(
language_subpages( frame,
function( title, page, code, name )
return mw.ustring.format(
'<bdi class="language lang-%s" lang="%s">[%s/%s %s]</bdi>',
code, code,
tostring( mw.uri.fullUrl( title ) ), page:gsub( ' ', '_' ),
name
);
end
),
' <b>·</b> '
);
end
--[=[
forEachLanguage
This function iterates over all language codes known to MediaWiki based on a maintained list
replacing patterns in a pattern-string for each language
Usage
{{#invoke:Languages|forEachLanguage
|pattern=patternstring
|before=string to insert before iteration
|after=string added after iteration
|sep=separator string between iterations
|inLang=langcode used for $lnTrP and $lnTrUC1
}}
Parameters
pattern: A pattern string which is processed for each language and which is concatenated at the end and returned as one string
before: A string that is inserted before the concatenated result
after: A string that is inserted after the concatenated result
sep: A string that is inserted between each line created from the pattern while iterating (like ProcessedPattern_sep_ProcessedPattern_sep_ProcessedPattern)
inLang: Langcode to use for $lnTrP and $lnTrUC1
preprocess: if set to a non-empty value, the output will be preprocessed before being returned.
Warning
The output is still not prepreprocessed by default: so parser functions and magic keywords generated by the pattern are still not executed and replaced,
and template transclusions are still not expanded (see examples in other functions in this module).
When using this function directly from a MediaWiki page or template, this means it is only possible to use patterns generating basic MediaWiki formatting
or HTML tags. It you want the output to be preprocessed (in the given frame), set the preprocess parameter to a non-empty string.
Patterns
$lc - language code such as en or de
$lnP - language name in own language (autonym)
$lnUC1 - language name in own language (autonym), first letter upper case
$lnTrP - language name translated to the language requested by language code passed to inLang
$lnTrUC1 - language name translated to the language requested by language code passed to inLang, first letter upper case
Example
{{#invoke:Languages|forEachLanguage|pattern=<span lang="$lc" xml:lang="$lc" class="language lang-$lc">[[Page/$lc|$lnP]]</span>}}
]=]
-- =p.forEachLanguage({ args= { pattern = "$lc - $lnTrP\n", inLang = "en" } })
function p.forEachLanguage(frame)
local l = require("Module:Languages/List")
local ret = {}
local lang = mw.language
local line
local pattern = frame.args.pattern or frame.args[1] or ""
local prefix = frame.args.before or frame.args[2] or ""
local postfix = frame.args.after or frame.args[3] or ""
local sep = frame.args.sep or frame.args.separator or frame.args[4] or ""
local inLang = frame.args.inLang or frame.args[5] or nil
local preprocess = frame.args.preprocess or frame.args[6] or ""
local langNameUCFirstReq = not not pattern:find( "$lnUC1", 1, true )
local langNameReq = not not pattern:find( "$lnP", 1, true ) or langNameUCFirstReq
local langNameTranslatedUCFirstReq = not not pattern:find( "$lnTrUC1", 1, true )
local langNameTranslatedReq = not not pattern:find( "$lnTrP", 1, true ) or langNameTranslatedUCFirstReq
local contentLangInstance = mw.language.getContentLanguage()
local inLangLangInstance
local l = mw.language.fetchLanguageNames() -- autonyms
local lTr
local lcIdList = require('Module:Languages/List').getSortedList( l )
if langNameTranslatedReq then
inLangLangInstance = --[==[
mw.getLanguage( inLang ) -- Quota hit in :ucfirst() if using too many langInstances
--]==] contentLangInstance
lTr = mw.language.fetchLanguageNames( inLang ) -- translated names
end
for _, lcId in pairs( lcIdList ) do
local subst = lcId:gsub('%%', '%%%%')
line = pattern:gsub( "%$lc", subst )
local langName, langInstance
-- autonym (name of lcId in locale lcId)
if langNameReq then
langName = l[lcId]
subst = langName:gsub('%%', '%%%%')
line = line:gsub( "%$lnP", subst )
end
if langNameUCFirstReq then
langInstance = --[==[
mw.getLanguage( lcId ) -- Quota hit in :ucfirst() if using too many langInstances
--]==] contentLangInstance
langName = langInstance:ucfirst( langName )
subst = langName:gsub('%%', '%%%%')
line = line:gsub( "%$lnUC1", subst )
end
-- translated name (name of lcId in locale inLang)
if langNameTranslatedReq then
langName = lTr[lcId]
subst = langName:gsub('%%', '%%%%')
line = line:gsub( "%$lnTrP", subst )
end
if langNameTranslatedUCFirstReq then
langName = inLangLangInstance:ucfirst( langName )
subst = langName:gsub('%%', '%%%%')
line = line:gsub( "%$lnTrUC1", subst )
end
table.insert(ret, line)
end
ret = prefix .. table.concat( ret, sep ) .. postfix
if preprocess ~= '' then
ret = frame:preprocess(ret)
end
return ret
end
--[=[
Provide logic for [[Template:Lle]] (Language Links external, to be substituted, language names written exactly as #language would provide them)
Warning: may expands too many costly #ifexist without limitation (if not substituted into a separate "/lang" template)
]=]
function p.lle(frame)
return frame:preprocess(
p.forEachLanguage({
args = {
pattern = '{{subst:#ifexist:{{{1}}}/$lc|[{{subst:fullurl:{{{1}}}/$lc}} <bdi class="language lang-$lc" lang="$lc">$lnP</bdi>] <b>∙</b> <!--\n-->}}'
}
})
)
end
--[=[
Provide logic for [[Template:Ll]] (Language Links internal, to be substituted, language names written exactly as #language would provide them)
Warning: may expands too many costly #ifexist without limitation (if not substituted into a separate "/lang" template)
]=]
function p.ll(frame)
return frame:preprocess(
p.forEachLanguage({
args = {
pattern = '{{subst:#ifexist:{{{1}}}/$lc|[[{{{1}}}/$lc|<bdi class="language lang-$lc" lang="$lc">$lnP</bdi>]] <b>∙</b> <!--\n-->}}'
}
})
)
end
--------------------------------------------------------
--- Different approaches for [[Template:Lang links]] ---
--------------------------------------------------------
--[=[
Provide logic for [[Template:Lang links]]
Using a cute Hybrid-Method:
First check the subpages which is quite fast; if there are too many fall back to checking for each language page individually
]=]
-- =p.langLinksNonExpensive({ args= { page='Commons:Picture of the Year/2010' }, getParent=function() end })
-- =p.langLinksNonExpensive({ args= { page='Main Page' }, getParent=function() end })
-- =p.langLinksNonExpensive({ args= { page='Template:No_source_since' }, getParent=function() end })
-- =p.langLinksNonExpensive({ args= { page='MediaWiki:Gadget-HotCat' }, getParent=function() end })
function p.langLinksNonExpensive(frame)
local args, pargs = frame.args, ( frame:getParent() or {} ).args or {};
local title = args.page or args[1] or pargs.page or pargs[1] or "";
local contentLangInstance = mw.language.getContentLanguage();
local pages2
if frame.preprocess == nil then
frame = mw.getCurrentFrame()
end
--[==[
local options = {
abort = {
time = 3.5,
on = function()
pages2 = p.forEachLanguage({
args = {
pattern = '{{#ifexist:' .. title .. '/$lc|[[' .. title .. '/$lc|<bdi lang="$lc">$lnP</bdi>]] <b>∙</b> }}'
}
})
end
}
}
local pages = language_subpages( frame,
function( title, page, code, langname )
return mw.ustring.format(
'[[%s/%s|<bdi lang="%s">%s</bdi>]]</span> <b>∙</b> ',
title, page, code, langname
)
end, options );
return pages2 and frame:preprocess(pages2) or table.concat(pages, '');
--]==]
return frame:preprocess(
p.forEachLanguage( {
args = {
pattern = '{{#ifexist:' .. title .. '/$lc|[[' .. title .. '/$lc|<bdi lang="$lc">$lnP</bdi>]] <b>∙</b> }}'
}
})
)
end
---------------------------------------------------------
----------------- [[Template:Autolang]] -----------------
---------------------------------------------------------
--[[
Works like {{autotranslate}} just allowing an unlimited number of arguments, even named arguments.
It's doing Magic! No arguments should be passed to {{#invoke:}}
]]
function p.autolang(frame)
local args, pargs = cloneArgs( frame )
if nil == args.useargs then
if not args.base then args = pargs end
elseif 'both' == args.useargs then
for k,v in pairs(args) do pargs[k] = v end
args = pargs
elseif 'parent' == args.useargs then
args = pargs
if pargs.base and not args.base then
args.base = pargs.base
end
end
local base = args.base
local userlang = frame:callParserFunction('int', 'lang')
local tl, tlns = 'Template:', 10
local tlb, fallback1, currenttemplate, currenttemplatepage
local fallback, contentlang = mw.text.split( userlang, '-', true )[1], mw.language.getContentLanguage():getCode()
local function createReturn(title)
local ret
local tlargs = {}
-- When LUA is invoked, templates are already expanded. This must be respected.
return frame:expandTemplate{ title = title, args = args }
end
if not base then
return ("'autolang' in [[Module:Languages]] was called but the 'base' parameter could not be found." ..
"The base parameter specifies the template that's subpages will be sought for a suitable translation.")
end
tlb = tl .. base .. '/'
currenttemplate = tlb .. userlang
currenttemplatepage = mw.title.new( currenttemplate, tlns )
if currenttemplatepage and currenttemplatepage.exists then
return createReturn(currenttemplate)
end
fallback1 = frame:preprocess( '{{Fallback|1=' .. base .. '|2=' .. userlang .. '}}' )
if fallback1 ~= contentlang then
return createReturn(tlb .. fallback1)
end
currenttemplate = tlb .. fallback
currenttemplatepage = mw.title.new( currenttemplate, tlns )
if currenttemplatepage and currenttemplatepage.exists then
return createReturn(currenttemplate)
end
currenttemplate = tlb .. contentlang
currenttemplatepage = mw.title.new( currenttemplate, tlns )
if currenttemplatepage and currenttemplatepage.exists then
return createReturn(currenttemplate)
end
return createReturn(tl .. base)
end
--[=[
Usage:
{{#invoke:languages|isKnownLanguageTag|gsw}} -> 1
{{#invoke:languages|isKnownLanguageTag|doesNotExist}} ->
]=]
function p.isKnownLanguageTag(frame)
return mw.language.isKnownLanguageTag( frame.args[1] or frame.args.tag or frame.args.code or '' ) and '1' or ''
end
function p.file_languages(frame)
local M_link = require( 'Module:Link' )
local contentLangInstance = mw.language.getContentLanguage()
local pattern = frame.args.pattern or '%s (%s)'
local original = frame.args.original or mw.title.getCurrentTitle().text
local ext_start, _ = string.find( original, '\.%w+$' )
local file_ext = string.sub( original, ext_start )
original = string.sub( original, 0, ext_start - 1 )
return frame:preprocess(
'<gallery>\n' ..
(table.concat(
M_link.forEachLink(
p.forEachLanguage({
args = { pattern = '[[$lc]]' }
}),
function( linkInfo )
local filename = mw.ustring.format( pattern, original, linkInfo.text ) .. file_ext
local filepage = mw.title.new( filename, 6 )
if filepage and filepage.exists then
return mw.ustring.format( '%s|%s',
filename,
mw.language.fetchLanguageName( linkInfo.text )
)
else
return nil
end
end
), '\n'
)) ..
'\n</gallery>'
)
end
function p.runTests()
return p.langLinksNonExpensive({
args = {
page = 'Module:Languages/testcases/test'
},
getParent = function() end
}) ==
'[[Module:Languages/testcases/test/de|<bdi lang="de">Deutsch</bdi>]] <b>∙</b> ' ..
'[[Module:Languages/testcases/test/en|<bdi lang="en">English</bdi>]] <b>∙</b> '
end
return p;
5mkofohau4gbugagap0iayfhj6cyv4b
Template:Comment
10
15793
74483
2023-03-06T07:10:58Z
TKsdik8900
11749
Fulfilling the edit request ([[Template talk:Comment#Image colour]]) by [[User:W like wiki|W like wiki]]
74483
wikitext
text/x-wiki
[[File:Pictogram voting comment (orange).svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|cs = Komentář
|fy = Opmerking
|gsw = Bemärkung
|gu = ટિપ્પણી
|hi = टिप्पणी
|my = သုံးသပ်ချက်
|pl = Komentarz
|sk = Komentár
|vi = Ý kiến
|zh-hans = 评论
|zh-hant = 評論
|default = {{int:filehist-comment/{{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}}}
}}}}}</bdi>'''<noinclude>
{{Documentation|Template:Polling template}}
</noinclude>
irova7thiyc0fm3ih0lrd731k4ju5sg
74484
74483
2026-09-10T15:29:59Z
B722N
6898
1 revision imported from [[:commons:Template:Comment]]: Importing the Support template
74483
wikitext
text/x-wiki
[[File:Pictogram voting comment (orange).svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|cs = Komentář
|fy = Opmerking
|gsw = Bemärkung
|gu = ટિપ્પણી
|hi = टिप्पणी
|my = သုံးသပ်ချက်
|pl = Komentarz
|sk = Komentár
|vi = Ý kiến
|zh-hans = 评论
|zh-hant = 評論
|default = {{int:filehist-comment/{{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}}}
}}}}}</bdi>'''<noinclude>
{{Documentation|Template:Polling template}}
</noinclude>
irova7thiyc0fm3ih0lrd731k4ju5sg
Template:Info
10
15794
74485
2025-05-31T17:20:15Z
Lucas Werkmeister
11746
fulfilling edit request by [[User:Saurmandal]] – add |hi=
74485
wikitext
text/x-wiki
<bdi>[[File:Pictogram voting info.svg|15px|link=]] <b>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = الملاحظة
| az = Məlumat
| be | be-x-old | be-tarask = Даведка
| bg = Информация
| bn = তথ্য
| bs = Informacija
| cs = Informace
| da = Info
| en = Info
| eo = Informaĵo
| es = Información
| eu = Informazioa
| fa = اطلاعات
| fi =Informaatio
| fy = Ynformaasje
| ga = Faisnéis
| gl = Información
| hi = जानकारी
| hr = Informacija
| hu = Információ
| hy = Օգնության համար
| it = Informazioni
| ja = 情報
| ka = ინფო
| kk-arab = انىقتاما ءۇشىن
| kk-cyrl = Анықтама үшін
|kk|kk-latn = Anyqtama úshin
| ko = 정보
| ku = Agahî
| mk = Инфо
| ml = വിവരം
| nl = Informatie
| pl = Info
| prg= Infōrmācija
| pt = Informação
| ro = Informație
| ru = Для справки
| sco= Info
| sk = Informácia
| sq = Informacion
| sr
| sr-ec = Инфо
| sr-el = Info
| th = ข้อมูลเพิ่มเติม
| tr = Bilgi
| uk = Довідка
| ur = توجہ درکار
| vi = Thông tin
| zh-hans = 信息
| zh-hant = 資訊
| zh-hk = 訊息
}}}}}</b></bdi><noinclude>{{Documentation|Template:Polling template}}[[Category:Checkuser templates|{{PAGENAME}}]]</noinclude>
jlna2coae0o09wwrntgqgo2eunz40kx
74486
74485
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Info]]: Importing the Support template
74485
wikitext
text/x-wiki
<bdi>[[File:Pictogram voting info.svg|15px|link=]] <b>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = الملاحظة
| az = Məlumat
| be | be-x-old | be-tarask = Даведка
| bg = Информация
| bn = তথ্য
| bs = Informacija
| cs = Informace
| da = Info
| en = Info
| eo = Informaĵo
| es = Información
| eu = Informazioa
| fa = اطلاعات
| fi =Informaatio
| fy = Ynformaasje
| ga = Faisnéis
| gl = Información
| hi = जानकारी
| hr = Informacija
| hu = Információ
| hy = Օգնության համար
| it = Informazioni
| ja = 情報
| ka = ინფო
| kk-arab = انىقتاما ءۇشىن
| kk-cyrl = Анықтама үшін
|kk|kk-latn = Anyqtama úshin
| ko = 정보
| ku = Agahî
| mk = Инфо
| ml = വിവരം
| nl = Informatie
| pl = Info
| prg= Infōrmācija
| pt = Informação
| ro = Informație
| ru = Для справки
| sco= Info
| sk = Informácia
| sq = Informacion
| sr
| sr-ec = Инфо
| sr-el = Info
| th = ข้อมูลเพิ่มเติม
| tr = Bilgi
| uk = Довідка
| ur = توجہ درکار
| vi = Thông tin
| zh-hans = 信息
| zh-hant = 資訊
| zh-hk = 訊息
}}}}}</b></bdi><noinclude>{{Documentation|Template:Polling template}}[[Category:Checkuser templates|{{PAGENAME}}]]</noinclude>
jlna2coae0o09wwrntgqgo2eunz40kx
Template:Neutral
10
15795
74487
2024-09-30T18:23:08Z
Matrix
8894
per https://commons.wikimedia.org/w/index.php?title=Commons%3AAdministrators%27_noticeboard&diff=930424171&oldid=930292955#Translations_of_Vote_Templates_into_Prussian_(prg)
74487
wikitext
text/x-wiki
[[File:Symbol neutral vote.svg|15px|link=]] '''<bdi>{{trim|{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = محايد
|az = Bitərəf
|be = Нэўтральна
|be-x-old | be-tarask = Нэўтральна
|bn = নিরপেক্ষ
|bs = Neutralan
|cs = Neutrální
|de = Neutral
|en = Neutral
|eo = Neŭtrala
|es = Neutral
|eu = Neutrala
|fy = Neutraal
|fa=ممتنع
|fi = Neutraali
|fr = Neutre
|ga = Neodrach
|gl = Neutro
|gu = તટસ્થ
|pt = Neutro
|he = נמנע
|hi = तटस्थ
|hr = Neutralan
|hu = Tartózkodom
|hy = Ձեռնպահ
|is = Hlutlaus
|it = Neutrale
|ja = 中立
|ka = ნეიტრალური
|kk = Бейтараппын
|ko = 중립
|mk = Воздржан
|ml = നിഷ്പക്ഷം
|nl = Neutraal
|no = Nøytral
|nb = Nøytral
|nn = Nøytral
|pl = Neutralny
|prg= Neutrāls
|ro = Neutru
|ru = Воздерживаюсь
|sco= Neutral
|sl = Sem neopredeljen
|sq = Asnjanës
|sr = Неутралан
|sv = Neutral
|tl = Niyutral
|th = เป็นกลาง
|uk = Утримуюсь
|vi = Trung lập
|tr = Tarafsız
|zh = 中立
}}}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
q1efdte8j44o06h6dpw3pm24jpt93jn
74488
74487
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Neutral]]: Importing the Support template
74487
wikitext
text/x-wiki
[[File:Symbol neutral vote.svg|15px|link=]] '''<bdi>{{trim|{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = محايد
|az = Bitərəf
|be = Нэўтральна
|be-x-old | be-tarask = Нэўтральна
|bn = নিরপেক্ষ
|bs = Neutralan
|cs = Neutrální
|de = Neutral
|en = Neutral
|eo = Neŭtrala
|es = Neutral
|eu = Neutrala
|fy = Neutraal
|fa=ممتنع
|fi = Neutraali
|fr = Neutre
|ga = Neodrach
|gl = Neutro
|gu = તટસ્થ
|pt = Neutro
|he = נמנע
|hi = तटस्थ
|hr = Neutralan
|hu = Tartózkodom
|hy = Ձեռնպահ
|is = Hlutlaus
|it = Neutrale
|ja = 中立
|ka = ნეიტრალური
|kk = Бейтараппын
|ko = 중립
|mk = Воздржан
|ml = നിഷ്പക്ഷം
|nl = Neutraal
|no = Nøytral
|nb = Nøytral
|nn = Nøytral
|pl = Neutralny
|prg= Neutrāls
|ro = Neutru
|ru = Воздерживаюсь
|sco= Neutral
|sl = Sem neopredeljen
|sq = Asnjanës
|sr = Неутралан
|sv = Neutral
|tl = Niyutral
|th = เป็นกลาง
|uk = Утримуюсь
|vi = Trung lập
|tr = Tarafsız
|zh = 中立
}}}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
q1efdte8j44o06h6dpw3pm24jpt93jn
Template:Oppose
10
15796
74489
2025-09-20T04:30:10Z
Ch
11741
74489
wikitext
text/x-wiki
[[File:Symbol oppose vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = ضد
|az = Əleyhinə
|be|be-x-old|be-tarask = Супраць
|bg = Против
|bn = বিরোধিতা
|br = A-enep
|bs = Protiv
|cs = Proti
|de = Kontra
|en = Oppose
|eo = Kontraŭ
|es = En contra
|eu = Aurka
|fa = مخالف
|fi = Vastustan
|fr = Contre
|fy = Tsjin
|ga = I gcoinne
|gl = Discordo
|gu = વિરોધ
|pt = Discordo
|he = נגד
|hi = विरोध
|hr = Protiv
|hu = Ellenzem
|hy = Դեմ
|is = Á móti
|it = Contrario
|ja = 反対
|ka = წინააღმდეგი
|kk = Қарсымын
|ko = 반대
|ky = Каршымын
|mk = Против
|ml = എതിർക്കുന്നു
|no = Mot
|nb = Mot
|nn = Mot
|nl = Tegen
|pl = Przeciw
|prg= Emprīkistatina
|ro = Contra
|ru = Против
|sco= Oppose
|sl = Proti.
|sq = Kundër
|sr = Против
|sv = Stödjer ej
|tl = Tutol
|th = ไม่เห็นด้วย
|tr = Karşı
|uk = Проти
|vi = Phản đối
|zh-hans = 反对
|zh-hant = 反對
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
j7ndy9d13xmk0ajvazfh2kej879bvs0
74490
74489
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Oppose]]: Importing the Support template
74489
wikitext
text/x-wiki
[[File:Symbol oppose vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = ضد
|az = Əleyhinə
|be|be-x-old|be-tarask = Супраць
|bg = Против
|bn = বিরোধিতা
|br = A-enep
|bs = Protiv
|cs = Proti
|de = Kontra
|en = Oppose
|eo = Kontraŭ
|es = En contra
|eu = Aurka
|fa = مخالف
|fi = Vastustan
|fr = Contre
|fy = Tsjin
|ga = I gcoinne
|gl = Discordo
|gu = વિરોધ
|pt = Discordo
|he = נגד
|hi = विरोध
|hr = Protiv
|hu = Ellenzem
|hy = Դեմ
|is = Á móti
|it = Contrario
|ja = 反対
|ka = წინააღმდეგი
|kk = Қарсымын
|ko = 반대
|ky = Каршымын
|mk = Против
|ml = എതിർക്കുന്നു
|no = Mot
|nb = Mot
|nn = Mot
|nl = Tegen
|pl = Przeciw
|prg= Emprīkistatina
|ro = Contra
|ru = Против
|sco= Oppose
|sl = Proti.
|sq = Kundër
|sr = Против
|sv = Stödjer ej
|tl = Tutol
|th = ไม่เห็นด้วย
|tr = Karşı
|uk = Проти
|vi = Phản đối
|zh-hans = 反对
|zh-hant = 反對
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
j7ndy9d13xmk0ajvazfh2kej879bvs0
Template:Question
10
15797
74491
2024-09-30T18:24:32Z
Matrix
8894
74491
wikitext
text/x-wiki
[[File:Pictogram-voting-question.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = سؤال
| az = Sual
| be = Пытанне
| be-x-old | be-tarask = Пытаньне
| bg = Въпрос
| br = Goulenn
| bn = প্রশ্ন
| bs = Pitanje
| ca = Pregunta
| cs = Dotaz
| da = Spørgsmål
| de = Frage
| en = Question
| eo = Demando
| es = Pregunta
| eu = Galdera
| fa = سؤال
| fi = Kysymys
| fy = Fraach
| ga = Ceist
| gl = Pregunta
| gu = પ્રશ્ન
| it = Domanda
| hi = प्रश्न
| hr = Pitanje
| hu = Kérdés
| hy = Հարց
| is = Spurning
| ja = 質問
| ka = შეკითხვა
| kk = Сұрақ
| ko = 질문
| mk = Прашање
| ml = ചോദ്യം
| my = မေးခွန်း
| nds= Fraag
| nl = Vraag
| nn = Spørsmål
| pl = Pytanie
| prg= Prasīsenis
| pt = Pergunta
| ro = Întrebare
| ru = Вопрос
| sco= Question
| sk = Otázka
| sl = Vprašanje
| sr = Питање
| sv = Fråga
| sq = Pyetje
| th = คำถามเพิ่มเติม
| tl = Tanong
| tr = Soru
| uk = Запитання
| vi = Câu hỏi
| zh-hans = 疑问
| zh-hant = 疑問
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
qnlmvy67m8jjh3vjj0nh348mbab9x9f
74492
74491
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Question]]: Importing the Support template
74491
wikitext
text/x-wiki
[[File:Pictogram-voting-question.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = سؤال
| az = Sual
| be = Пытанне
| be-x-old | be-tarask = Пытаньне
| bg = Въпрос
| br = Goulenn
| bn = প্রশ্ন
| bs = Pitanje
| ca = Pregunta
| cs = Dotaz
| da = Spørgsmål
| de = Frage
| en = Question
| eo = Demando
| es = Pregunta
| eu = Galdera
| fa = سؤال
| fi = Kysymys
| fy = Fraach
| ga = Ceist
| gl = Pregunta
| gu = પ્રશ્ન
| it = Domanda
| hi = प्रश्न
| hr = Pitanje
| hu = Kérdés
| hy = Հարց
| is = Spurning
| ja = 質問
| ka = შეკითხვა
| kk = Сұрақ
| ko = 질문
| mk = Прашање
| ml = ചോദ്യം
| my = မေးခွန်း
| nds= Fraag
| nl = Vraag
| nn = Spørsmål
| pl = Pytanie
| prg= Prasīsenis
| pt = Pergunta
| ro = Întrebare
| ru = Вопрос
| sco= Question
| sk = Otázka
| sl = Vprašanje
| sr = Питање
| sv = Fråga
| sq = Pyetje
| th = คำถามเพิ่มเติม
| tl = Tanong
| tr = Soru
| uk = Запитання
| vi = Câu hỏi
| zh-hans = 疑问
| zh-hant = 疑問
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
qnlmvy67m8jjh3vjj0nh348mbab9x9f
Template:Not done
10
15798
74495
2019-07-16T04:17:54Z
4nn1l2
4271
Changed protection level for "[[Template:Not done]]": downgraded protection level per [[Special:Permalink/357548402|consensus]] ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74495
wikitext
text/x-wiki
[[File:X mark.svg|15px|alt=|link=]] '''<bdi>{{{1|{{i18n/not done|lang={{{lang|}}} }}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}
</noinclude>
3l2ut65y9z6zf4oxhp1qhp87nlvc9cu
74496
74495
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Not_done]]: Importing the Support template
74495
wikitext
text/x-wiki
[[File:X mark.svg|15px|alt=|link=]] '''<bdi>{{{1|{{i18n/not done|lang={{{lang|}}} }}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}
</noinclude>
3l2ut65y9z6zf4oxhp1qhp87nlvc9cu
Template:I18n/not done
10
15799
74497
2025-08-29T05:46:40Z
Ch
11741
74497
wikitext
text/x-wiki
{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = لم يُنفَّذ
|az= Edilmədi
|bar = ned gmåcht
|be = Не зроблена
|be-x-old | be-tarask = Ня зроблена
|bg = Не е готов
|bn = করা হয়নি
|bs = Nije urađeno
|ca = No fet
|cs = Neprovedeno
|da = Ikke gjort
|de = Nicht erledigt
|en = Not done
|eo = Ne farite
|es = No hecho
|fa = انجام نشد
|fi = Ei tehty
|fr = Pas fait
|frr = Ei klaar
|fy = Net útfierd
|gl = Non feito
|he = לא בוצע
|hi = नहीं हुआ
|hr = Nije riješeno
|hu = Nincs kész
|hy = Արված չէ
|it = Non fatto
|ja = 未完了
|ka = არ გაკეთდა
|ko = 미완료
|ky = Аткарылган жок
|mk = Неизвршено
|ml = ചെയ്തില്ല
|nds= Nich daan
|nl = Niet uitgevoerd
|nb = Ikke gjort
|nn = Ikkje gjort
|pl = Niezałatwione
|prg= Ni izpilninuns
|pt = Não feito
|ro = Neefectuat
|ru = Не сделано
|sco = Nae dane
|sl = Zavrnjeno.
|sr = Није урађено
|sv = Ej utfört
|th = ไม่สำเร็จตามคำขอ
|tr= Yapılmadı
|tt = Эшләнмәде
|uk = Не зроблено
|vi = Không thực hiện
|zh = 未完成
}}<noinclude>{{documentation|Template:i18n/doc}}
[[Category:Internationalization templates using LangSwitch|{{PAGENAME}}]]
</noinclude>
mw6kecest8at2gloj2rx6hqskoa4nsu
74498
74497
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:I18n/not_done]]: Importing the Support template
74497
wikitext
text/x-wiki
{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = لم يُنفَّذ
|az= Edilmədi
|bar = ned gmåcht
|be = Не зроблена
|be-x-old | be-tarask = Ня зроблена
|bg = Не е готов
|bn = করা হয়নি
|bs = Nije urađeno
|ca = No fet
|cs = Neprovedeno
|da = Ikke gjort
|de = Nicht erledigt
|en = Not done
|eo = Ne farite
|es = No hecho
|fa = انجام نشد
|fi = Ei tehty
|fr = Pas fait
|frr = Ei klaar
|fy = Net útfierd
|gl = Non feito
|he = לא בוצע
|hi = नहीं हुआ
|hr = Nije riješeno
|hu = Nincs kész
|hy = Արված չէ
|it = Non fatto
|ja = 未完了
|ka = არ გაკეთდა
|ko = 미완료
|ky = Аткарылган жок
|mk = Неизвршено
|ml = ചെയ്തില്ല
|nds= Nich daan
|nl = Niet uitgevoerd
|nb = Ikke gjort
|nn = Ikkje gjort
|pl = Niezałatwione
|prg= Ni izpilninuns
|pt = Não feito
|ro = Neefectuat
|ru = Не сделано
|sco = Nae dane
|sl = Zavrnjeno.
|sr = Није урађено
|sv = Ej utfört
|th = ไม่สำเร็จตามคำขอ
|tr= Yapılmadı
|tt = Эшләнмәде
|uk = Не зроблено
|vi = Không thực hiện
|zh = 未完成
}}<noinclude>{{documentation|Template:i18n/doc}}
[[Category:Internationalization templates using LangSwitch|{{PAGENAME}}]]
</noinclude>
mw6kecest8at2gloj2rx6hqskoa4nsu
Template:Disagree
10
15800
74499
2024-09-29T12:57:22Z
Kxeon
11750
Nisenwaitjai
74499
wikitext
text/x-wiki
[[File:Symbol delete vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch<!--
-->| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
-->| ar = لا أتفق <!--
-->| az = Qatılmıram<!--
-->| be = Не згодны<!--
-->| be-tarask = Ня згодны<!--
--> | bn = একমত নই<!--
--> | bs = Ne slažem se<!--
--> | ca = En desacord<!--
--> | cs = Nesouhlasím<!--
--> | da = Uenig<!--
--> | de = Nicht einverstanden<!--
--> | en = Disagree<!--
--> | eo = Mi malkonsentas<!--
--> | es = En desacuerdo<!--
--> | eu = Ez nator bat<!--
--> | fa = مخالف<!--
--> | fi = Eri mieltä<!--
--> | fr = Pas d'accord<!--
--> | fy = Net mei iens<!--
--> | gl = En desacordo<!--
--> | gu = અસંમત<!--
--> | hi = असहमत<!--
--> | hr = Ne slažem se<!--
--> | hu = Ellenzem<!--
--> | hy = Համաձայն չեմ<!--
--> | id = TIdak setuju<!--
--> | is = Ósammála<!--
--> | it = Non concordo<!--
--> | ja = 不同意<!--
--> | ka = წინააღმდეგი ვარ<!--
--> | kk = Келіспеймін<!--
--> | ko = 동의하지 않음<!--
--> | mk = Не се согласувам<!--
--> | ml = യോജിക്കുന്നില്ല<!--
--> | my = သဘောမတူ<!--
--> | nl = Niet mee eens<!--
--> | nn = Usamd<!--
--> | pl = Nie zgadzam się<!--
--> | pt = Discordo<!--
--> | ro = Împotrivă<!--
--> | ru = Не согласен<!--
--> | sco= Disagree<!--
--> | sl = Ne strinjam se.<!--
--> | sr = Не слажем се<!--
--> | sv = Håller inte med<!--
--> | th = ไม่เห็นด้วย<!--
--> | tl = Hindi sumasang-ayon<!--
--> | tr = Katılmıyorum<!--
--> | uk = Не згодний<!--
--> | vec = Dexacordo<!--
--> | vi = Không đồng ý<!--
--> | zh = 不同意<!--
--> | prg = Nisenwaitjai<!--
-->}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
2al5gl6gueljyw9oo1s62vj3spbmihb
74500
74499
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Disagree]]: Importing the Support template
74499
wikitext
text/x-wiki
[[File:Symbol delete vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch<!--
-->| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
-->| ar = لا أتفق <!--
-->| az = Qatılmıram<!--
-->| be = Не згодны<!--
-->| be-tarask = Ня згодны<!--
--> | bn = একমত নই<!--
--> | bs = Ne slažem se<!--
--> | ca = En desacord<!--
--> | cs = Nesouhlasím<!--
--> | da = Uenig<!--
--> | de = Nicht einverstanden<!--
--> | en = Disagree<!--
--> | eo = Mi malkonsentas<!--
--> | es = En desacuerdo<!--
--> | eu = Ez nator bat<!--
--> | fa = مخالف<!--
--> | fi = Eri mieltä<!--
--> | fr = Pas d'accord<!--
--> | fy = Net mei iens<!--
--> | gl = En desacordo<!--
--> | gu = અસંમત<!--
--> | hi = असहमत<!--
--> | hr = Ne slažem se<!--
--> | hu = Ellenzem<!--
--> | hy = Համաձայն չեմ<!--
--> | id = TIdak setuju<!--
--> | is = Ósammála<!--
--> | it = Non concordo<!--
--> | ja = 不同意<!--
--> | ka = წინააღმდეგი ვარ<!--
--> | kk = Келіспеймін<!--
--> | ko = 동의하지 않음<!--
--> | mk = Не се согласувам<!--
--> | ml = യോജിക്കുന്നില്ല<!--
--> | my = သဘောမတူ<!--
--> | nl = Niet mee eens<!--
--> | nn = Usamd<!--
--> | pl = Nie zgadzam się<!--
--> | pt = Discordo<!--
--> | ro = Împotrivă<!--
--> | ru = Не согласен<!--
--> | sco= Disagree<!--
--> | sl = Ne strinjam se.<!--
--> | sr = Не слажем се<!--
--> | sv = Håller inte med<!--
--> | th = ไม่เห็นด้วย<!--
--> | tl = Hindi sumasang-ayon<!--
--> | tr = Katılmıyorum<!--
--> | uk = Не згодний<!--
--> | vec = Dexacordo<!--
--> | vi = Không đồng ý<!--
--> | zh = 不同意<!--
--> | prg = Nisenwaitjai<!--
-->}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
2al5gl6gueljyw9oo1s62vj3spbmihb
Template:Vote speedy
10
15801
74503
2026-07-30T20:40:40Z
TadejM
11747
+sl
74503
wikitext
text/x-wiki
{{redirects|vsd}}<onlyinclude>[[File:Symbol speedy delete.svg|24px|link=COM:SPEEDY]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = حذف سريع
| be-tarask = Хутка
| bg = За бързо изтриване
| de = Schnell Löschen
| en = Speedy delete
| eo = Tuj
| es = Rápido
| eu = Azkarki
| fa = حذف سریع
| fi = Nopeasti pois
| fr = Suppression immédiate
| gu = ઝડપથી હટાવો
| he = מהיר
| hi = शीघ्र हटाएँ
| hr = Brzo
| hu = Azonnal törlendő
| it = Cancellare immediatamente
| ja = 即時削除
| ko = 빠른 삭제
| mk = Брзо
| ml = പെട്ടന്നാട്ടെ
| ms = Undian padam
| nl = Snel verwijderen
| pl = Natychmiast usunąć
| prg= Dīws āupausinais
| pt = Eliminar rápido
| ro = Ștergere rapidă
| ru = Срочно удалить
| sl = Hitro izbrišimo
| sr = Брзо брисање
| sv = Snabbradera
| th = ลบ
| tr = Hızlı silinsin
| zh-hans = 快速删除
| zh-hant = 快速刪除
}}}}}{{#if:{{{from|}}}|{{LangSwitch|en= of {{{from}}}|ja=({{{from}}})|zh-hans=,基于 {{{from}}}|zh=hant=,基於 {{{from}}}|default= {{{from}}}}}|}}</bdi>'''</onlyinclude>{{Documentation|Template:Polling template}}
8oob8pm3qmaelu94jjltk6rxpk818gc
74504
74503
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_speedy]]: Importing the Support template
74503
wikitext
text/x-wiki
{{redirects|vsd}}<onlyinclude>[[File:Symbol speedy delete.svg|24px|link=COM:SPEEDY]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = حذف سريع
| be-tarask = Хутка
| bg = За бързо изтриване
| de = Schnell Löschen
| en = Speedy delete
| eo = Tuj
| es = Rápido
| eu = Azkarki
| fa = حذف سریع
| fi = Nopeasti pois
| fr = Suppression immédiate
| gu = ઝડપથી હટાવો
| he = מהיר
| hi = शीघ्र हटाएँ
| hr = Brzo
| hu = Azonnal törlendő
| it = Cancellare immediatamente
| ja = 即時削除
| ko = 빠른 삭제
| mk = Брзо
| ml = പെട്ടന്നാട്ടെ
| ms = Undian padam
| nl = Snel verwijderen
| pl = Natychmiast usunąć
| prg= Dīws āupausinais
| pt = Eliminar rápido
| ro = Ștergere rapidă
| ru = Срочно удалить
| sl = Hitro izbrišimo
| sr = Брзо брисање
| sv = Snabbradera
| th = ลบ
| tr = Hızlı silinsin
| zh-hans = 快速删除
| zh-hant = 快速刪除
}}}}}{{#if:{{{from|}}}|{{LangSwitch|en= of {{{from}}}|ja=({{{from}}})|zh-hans=,基于 {{{from}}}|zh=hant=,基於 {{{from}}}|default= {{{from}}}}}|}}</bdi>'''</onlyinclude>{{Documentation|Template:Polling template}}
8oob8pm3qmaelu94jjltk6rxpk818gc
Template:Documentation/i18n/en
10
15802
74507
2024-08-12T19:16:34Z
FuzzyBot
6845
Updating to match new version of source page
74507
wikitext
text/x-wiki
<languages/>
<onlyinclude>{{Documentation/layout
| lang = {{{lang|en}}}
<!-- {{Documentation}} parameters: -->
|1={{{1|}}}
|heading={{{heading|{{{2|}}}}}}
|content={{{content|}}}
<!-- $1 is automatically replaced by [[Template:Documentation/layout]] using {{tmpl}} -->
| text = This documentation is [[w:Wikipedia:Transclusion|transcluded]] from $1.
<!-- DEPRECATED - New translations for these messages go in [[Data:I18n/Documentation.tab]]: -->
|edit=edit
|history=history
|view=view
|documentation=Documentation
}}</onlyinclude>
{{translated tag|documentation}}
syeqdw02j60lht0iyj1vf0qoc9vdmhz
74508
74507
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Documentation/i18n/en]]: Importing the Support template
74507
wikitext
text/x-wiki
<languages/>
<onlyinclude>{{Documentation/layout
| lang = {{{lang|en}}}
<!-- {{Documentation}} parameters: -->
|1={{{1|}}}
|heading={{{heading|{{{2|}}}}}}
|content={{{content|}}}
<!-- $1 is automatically replaced by [[Template:Documentation/layout]] using {{tmpl}} -->
| text = This documentation is [[w:Wikipedia:Transclusion|transcluded]] from $1.
<!-- DEPRECATED - New translations for these messages go in [[Data:I18n/Documentation.tab]]: -->
|edit=edit
|history=history
|view=view
|documentation=Documentation
}}</onlyinclude>
{{translated tag|documentation}}
syeqdw02j60lht0iyj1vf0qoc9vdmhz
Template:Documentation/layout
10
15803
74509
2025-04-17T10:24:09Z
Verdy p
2558
74509
wikitext
text/x-wiki
<div id="template-documentation" class="template-documentation"><templatestyles src="Template:Documentation/styles.css" /><!--
-->{{#if: {{PROTECTIONLEVEL:edit}}
| {{Protected}}
}}<!--
-->{{#ifeq: {{{heading|}}} | false
|
| <div class="template-documentation-heading" {{#if: {{{lang|}}}
| lang="{{{lang|}}}" dir="{{#dir:{{{lang|}}}}}"
}}><!--
--><span class="template-documentation-title">{{#if: {{{heading|}}}
| {{{heading|}}}
| [[File:Test Template Info-Icon.svg|50px|link=|alt=]] {{#switch:{{NAMESPACENUMBER}}
|6 = {{#invoke:TNTFallback|msg|lang={{{lang|{{int:lang}}}}}|I18n/Documentation.tab|file-namespace-heading|fallback={{{documentation|}}}}}
|10 = {{#invoke:TNTFallback|msg|lang={{{lang|{{int:lang}}}}}|I18n/Documentation.tab|template-namespace-heading|fallback={{{documentation|}}}}}
|828 = {{#invoke:TNTFallback|msg|lang={{{lang|{{int:lang}}}}}|I18n/Documentation.tab|module-namespace-heading|fallback={{{documentation|}}}}}
|#default = {{#invoke:TNTFallback|msg|lang={{{lang|{{int:lang}}}}}|I18n/Documentation.tab|other-namespaces-heading|fallback={{{documentation|}}}}}
}}
}}</span><!--
--><span class="mw-editsection-like plainlinks" id="doc_editlinks">[ {{#if: {{{content|}}}
|
| {{#ifexist: {{Transclude|{{{1|{{DocPageName}}}}}}}
| <!--
-->[{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|view-link-display|fallback={{{view|}}}}}] '''·'''<!--
--> [{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}|action=edit}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|edit-link-display|fallback={{{edit|}}}}}] '''·'''<!--
--> [{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}|action=history}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|history-link-display|fallback={{{history|}}}}}] '''·'''<!--
-->
| <!--
-->[{{fullurl:{{transclude|{{{1|{{DocPageName}}}}}}}|action=edit&preload=Template:Documentation/preload}} {{#invoke:TNT|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|create-link-display}}] '''·'''<!--
-->
}}
}}<!--
--> [{{fullurl:{{FULLPAGENAME}}|action=purge}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|purge-link-display|fallback={{{purge|}}}}}]<!--
--> ]</span><!--
--></div>
}}<!--
-->{{#if: {{{content|}}}
| <!-- do not show notice when /doc is not transcluded-->
<div class="template-documentation-content" dir="auto">
{{{content|}}}
</div>
| <div class="template-documentation-transcludedfrom" lang="{{{lang|}}}" dir="{{#dir:{{{lang|}}}}}">{{tmpl<!--
-->|0 = {{{text|(text: $1) — {{error|parameter text is not translated in [[Template:Documentation]]}}}}}<!--
-->|1 = [[{{transclude|{{{1|{{DocPageName}}}}}}}]]<!--
-->}}</div>
<div class="template-documentation-content" dir="auto">
{{ {{{1|{{DocPageName}}}}} }}
</div>
}}
</div><noinclude>
{{#ifeq: {{SUBPAGENAME}} | sandbox | [[Category:Sandbox templates]] }}
[[Category:Layout templates]]
</noinclude>
j1ofws982vaza0ka3hg4ydr01lfv5ru
74510
74509
2026-09-10T15:30:00Z
B722N
6898
1 revision imported from [[:commons:Template:Documentation/layout]]: Importing the Support template
74509
wikitext
text/x-wiki
<div id="template-documentation" class="template-documentation"><templatestyles src="Template:Documentation/styles.css" /><!--
-->{{#if: {{PROTECTIONLEVEL:edit}}
| {{Protected}}
}}<!--
-->{{#ifeq: {{{heading|}}} | false
|
| <div class="template-documentation-heading" {{#if: {{{lang|}}}
| lang="{{{lang|}}}" dir="{{#dir:{{{lang|}}}}}"
}}><!--
--><span class="template-documentation-title">{{#if: {{{heading|}}}
| {{{heading|}}}
| [[File:Test Template Info-Icon.svg|50px|link=|alt=]] {{#switch:{{NAMESPACENUMBER}}
|6 = {{#invoke:TNTFallback|msg|lang={{{lang|{{int:lang}}}}}|I18n/Documentation.tab|file-namespace-heading|fallback={{{documentation|}}}}}
|10 = {{#invoke:TNTFallback|msg|lang={{{lang|{{int:lang}}}}}|I18n/Documentation.tab|template-namespace-heading|fallback={{{documentation|}}}}}
|828 = {{#invoke:TNTFallback|msg|lang={{{lang|{{int:lang}}}}}|I18n/Documentation.tab|module-namespace-heading|fallback={{{documentation|}}}}}
|#default = {{#invoke:TNTFallback|msg|lang={{{lang|{{int:lang}}}}}|I18n/Documentation.tab|other-namespaces-heading|fallback={{{documentation|}}}}}
}}
}}</span><!--
--><span class="mw-editsection-like plainlinks" id="doc_editlinks">[ {{#if: {{{content|}}}
|
| {{#ifexist: {{Transclude|{{{1|{{DocPageName}}}}}}}
| <!--
-->[{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|view-link-display|fallback={{{view|}}}}}] '''·'''<!--
--> [{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}|action=edit}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|edit-link-display|fallback={{{edit|}}}}}] '''·'''<!--
--> [{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}|action=history}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|history-link-display|fallback={{{history|}}}}}] '''·'''<!--
-->
| <!--
-->[{{fullurl:{{transclude|{{{1|{{DocPageName}}}}}}}|action=edit&preload=Template:Documentation/preload}} {{#invoke:TNT|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|create-link-display}}] '''·'''<!--
-->
}}
}}<!--
--> [{{fullurl:{{FULLPAGENAME}}|action=purge}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|purge-link-display|fallback={{{purge|}}}}}]<!--
--> ]</span><!--
--></div>
}}<!--
-->{{#if: {{{content|}}}
| <!-- do not show notice when /doc is not transcluded-->
<div class="template-documentation-content" dir="auto">
{{{content|}}}
</div>
| <div class="template-documentation-transcludedfrom" lang="{{{lang|}}}" dir="{{#dir:{{{lang|}}}}}">{{tmpl<!--
-->|0 = {{{text|(text: $1) — {{error|parameter text is not translated in [[Template:Documentation]]}}}}}<!--
-->|1 = [[{{transclude|{{{1|{{DocPageName}}}}}}}]]<!--
-->}}</div>
<div class="template-documentation-content" dir="auto">
{{ {{{1|{{DocPageName}}}}} }}
</div>
}}
</div><noinclude>
{{#ifeq: {{SUBPAGENAME}} | sandbox | [[Category:Sandbox templates]] }}
[[Category:Layout templates]]
</noinclude>
j1ofws982vaza0ka3hg4ydr01lfv5ru
Template:Documentation/styles.css
10
15804
74511
2024-08-08T17:08:26Z
Jon (WMF)
11751
Fixes [[phab:T369874]]. Please see talk page and do not revert without discussion. See also [[meta:User:Jon_(WMF)/Edit_for_dark_mode_support]]
74511
sanitized-css
text/css
.template-documentation {
margin-top: 1em;
clear: both;
border: 2px dotted #666;
padding: 0.6em;
background-color: #ecfcf4;
}
.template-documentation:after {
content: "";
display: block;
clear: both;
}
.template-documentation-heading {
padding-bottom: 3px;
border-bottom: 1px solid #a2a9b1;
margin-bottom: 1ex;
}
.template-documentation-title {
font-size: 150%;
}
.template-documentation-transcludedfrom {
font-size: smaller;
font-style: italic;
}
@media screen {
html.skin-theme-clientpref-night .template-documentation {
background-color: #0b1e1c;
}
}
@media screen and ( prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .template-documentation {
background-color: #0b1e1c;
}
}
rr3mstnwaeduzx6ggbzgo9ffdu277vw
74512
74511
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:Documentation/styles.css]]: Importing the Support template
74511
sanitized-css
text/css
.template-documentation {
margin-top: 1em;
clear: both;
border: 2px dotted #666;
padding: 0.6em;
background-color: #ecfcf4;
}
.template-documentation:after {
content: "";
display: block;
clear: both;
}
.template-documentation-heading {
padding-bottom: 3px;
border-bottom: 1px solid #a2a9b1;
margin-bottom: 1ex;
}
.template-documentation-title {
font-size: 150%;
}
.template-documentation-transcludedfrom {
font-size: smaller;
font-style: italic;
}
@media screen {
html.skin-theme-clientpref-night .template-documentation {
background-color: #0b1e1c;
}
}
@media screen and ( prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .template-documentation {
background-color: #0b1e1c;
}
}
rr3mstnwaeduzx6ggbzgo9ffdu277vw
Template:TemplateBox
10
15805
74513
2024-08-12T15:14:55Z
Jarekt
11742
Undo revision 907688459 by [[Special:Contributions/Jarekt|Jarekt]] ([[User talk:Jarekt|talk]])
74513
wikitext
text/x-wiki
<includeonly>{{#invoke:Languages|autolang|base=TemplateBox/i18n
|useargs=both
|templateData={{#invoke:TemplateBox|templatedata}}
|JSONFM={{#invoke:TemplateBox|templatedata|formatting=pretty}}
|paramTable={{#invoke:TemplateBox|paramtable}}
|usageSample={{#invoke:TemplateBox|usagesample}}
|argCount={{#invoke:TemplateBox|argcount}}
|desc={{#invoke:TemplateBox|description}}
|templateDataInfo={{TemplateDataInfo/toggler}}
|i18n-subpage={{#ifeq:{{{i18n-subpage|}}}|.
| Template:{{{name|{{BASEPAGENAME}}}}}
| Template:{{{name|{{BASEPAGENAME}}}}}/{{{i18n-subpage|i18n}}}
}}
|usergroup={{lc:{{{usergroup|}}}}}
|name={{{name|{{BASEPAGENAME}}}}}
|i18n-data-file={{{i18n-data-file|}}}
}}__NOEDITSECTION__<!--
Auto-categorization by internationalisation approach
-->{{#ifeq:{{SUBPAGENAME}}|doc
| <!--Don't categorize documentation subpages-->
| {{#ifeq:{{NAMESPACE}}|Template
| {{#switch:{{lc:{{{i18n-method|}}}}}
|autotranslate=[[Category:Templates using Autotranslate for internationalisation]]
|switch=[[Category:Templates using LangSwitch for internationalisation]]
|custommediawiki-msg=[[Category:Templates using local MediaWiki messages for internationalisation]]
|mediawiki-msg=[[Category:Templates using MediaWiki messages from translatewiki.net for internationalisation]]
|ext.translate=[[Category:Templates using the Translate extension for internationalisation]]
|tnt =[[Category:Templates using Module:TNT for internationalisation]]
|wikidata =[[Category:Templates using Wikidata for internationalisation]]
|-=[[Category:Templates not requiring internationalization]]
|#default=[[Category:Templates using an unknown approach for internationalisation]]
}}
| <!--Don't categorise Creator templates-->
}}
}}</includeonly><noinclude>{{Documentation}}</noinclude>
s7iyuk5ykyunmyrh5hcc5m3738d83pn
74514
74513
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:TemplateBox]]: Importing the Support template
74513
wikitext
text/x-wiki
<includeonly>{{#invoke:Languages|autolang|base=TemplateBox/i18n
|useargs=both
|templateData={{#invoke:TemplateBox|templatedata}}
|JSONFM={{#invoke:TemplateBox|templatedata|formatting=pretty}}
|paramTable={{#invoke:TemplateBox|paramtable}}
|usageSample={{#invoke:TemplateBox|usagesample}}
|argCount={{#invoke:TemplateBox|argcount}}
|desc={{#invoke:TemplateBox|description}}
|templateDataInfo={{TemplateDataInfo/toggler}}
|i18n-subpage={{#ifeq:{{{i18n-subpage|}}}|.
| Template:{{{name|{{BASEPAGENAME}}}}}
| Template:{{{name|{{BASEPAGENAME}}}}}/{{{i18n-subpage|i18n}}}
}}
|usergroup={{lc:{{{usergroup|}}}}}
|name={{{name|{{BASEPAGENAME}}}}}
|i18n-data-file={{{i18n-data-file|}}}
}}__NOEDITSECTION__<!--
Auto-categorization by internationalisation approach
-->{{#ifeq:{{SUBPAGENAME}}|doc
| <!--Don't categorize documentation subpages-->
| {{#ifeq:{{NAMESPACE}}|Template
| {{#switch:{{lc:{{{i18n-method|}}}}}
|autotranslate=[[Category:Templates using Autotranslate for internationalisation]]
|switch=[[Category:Templates using LangSwitch for internationalisation]]
|custommediawiki-msg=[[Category:Templates using local MediaWiki messages for internationalisation]]
|mediawiki-msg=[[Category:Templates using MediaWiki messages from translatewiki.net for internationalisation]]
|ext.translate=[[Category:Templates using the Translate extension for internationalisation]]
|tnt =[[Category:Templates using Module:TNT for internationalisation]]
|wikidata =[[Category:Templates using Wikidata for internationalisation]]
|-=[[Category:Templates not requiring internationalization]]
|#default=[[Category:Templates using an unknown approach for internationalisation]]
}}
| <!--Don't categorise Creator templates-->
}}
}}</includeonly><noinclude>{{Documentation}}</noinclude>
s7iyuk5ykyunmyrh5hcc5m3738d83pn
Template:TemplateDataInfo/toggler
10
15806
74515
2024-08-09T04:11:18Z
Jarekt
11742
replace ((autotranslate}} with call to Module:Autotransalate
74515
wikitext
text/x-wiki
<onlyinclude><div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible-toggle" style="cursor:pointer" title="Information about TemplateData">{{Clickable button|iconPrimary=ui-icon-help|target={{FULLPAGENAME}}}}</div>
<div class="mw-collapsible-content">{{#invoke:Autotranslate|autotranslate|base=TemplateDataInfo/i18n}}</div>
</div></onlyinclude>
{{documentation}}
hcvr99fyr7o4idqg6l4p67cpc3z7mrk
74516
74515
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:TemplateDataInfo/toggler]]: Importing the Support template
74515
wikitext
text/x-wiki
<onlyinclude><div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible-toggle" style="cursor:pointer" title="Information about TemplateData">{{Clickable button|iconPrimary=ui-icon-help|target={{FULLPAGENAME}}}}</div>
<div class="mw-collapsible-content">{{#invoke:Autotranslate|autotranslate|base=TemplateDataInfo/i18n}}</div>
</div></onlyinclude>
{{documentation}}
hcvr99fyr7o4idqg6l4p67cpc3z7mrk
Template:TemplateDataInfo/i18n/en
10
15807
74517
2024-10-30T12:45:33Z
FuzzyBot
6845
Updating to match new version of source page
74517
wikitext
text/x-wiki
<languages/>
<onlyinclude>{{TemplateDataInfo/layout
|title=TemplateData
|text=[[:mw:Special:MyLanguage/Extension:TemplateData|TemplateData]] is a way to store information about template parameters (the description of those and of the whole template) for both humans and machines. It is used by [[:mw:Special:MyLanguage/:VisualEditor|VisualEditor]] and possibly other tools like [[Special:MyLanguage/Commons:Upload Wizard|Upload Wizard]].
----
<u>Existing template documentation</u><br/>
At Wikimedia Commons, it is recommended to use {{tl|TemplateBox}} with either <code><nowiki>‎useTemplateData=1</nowiki></code> or <code><nowiki>‎useTemplateData=only</nowiki></code> on the <code><nowiki>‎/doc</nowiki></code> subpage and transcluding it with {{tl|Documentation}} into the template. {{tag|nowiki|o}}-tags can be wrapped around the arguments, if required, to avoid templates being expanded.
<u>Newly created template documentation and imports</u><br/>
Another option, especially for imported templates, or for users with JSON experience, is placing raw {{tag|templatedata|o}}-tags into the Wikitext of the template, as described in various Wikipediae.
|help=Wikipedia's help about TemplateData
|helppage=:en:Wikipedia:VisualEditor/TemplateData/Tutorial
|info=Commons-specific information
|lang=en
}}</onlyinclude>
{{translated tag|header}}
c26w757rb5jm01vuvow6d7iaebs2nuq
74518
74517
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:TemplateDataInfo/i18n/en]]: Importing the Support template
74517
wikitext
text/x-wiki
<languages/>
<onlyinclude>{{TemplateDataInfo/layout
|title=TemplateData
|text=[[:mw:Special:MyLanguage/Extension:TemplateData|TemplateData]] is a way to store information about template parameters (the description of those and of the whole template) for both humans and machines. It is used by [[:mw:Special:MyLanguage/:VisualEditor|VisualEditor]] and possibly other tools like [[Special:MyLanguage/Commons:Upload Wizard|Upload Wizard]].
----
<u>Existing template documentation</u><br/>
At Wikimedia Commons, it is recommended to use {{tl|TemplateBox}} with either <code><nowiki>‎useTemplateData=1</nowiki></code> or <code><nowiki>‎useTemplateData=only</nowiki></code> on the <code><nowiki>‎/doc</nowiki></code> subpage and transcluding it with {{tl|Documentation}} into the template. {{tag|nowiki|o}}-tags can be wrapped around the arguments, if required, to avoid templates being expanded.
<u>Newly created template documentation and imports</u><br/>
Another option, especially for imported templates, or for users with JSON experience, is placing raw {{tag|templatedata|o}}-tags into the Wikitext of the template, as described in various Wikipediae.
|help=Wikipedia's help about TemplateData
|helppage=:en:Wikipedia:VisualEditor/TemplateData/Tutorial
|info=Commons-specific information
|lang=en
}}</onlyinclude>
{{translated tag|header}}
c26w757rb5jm01vuvow6d7iaebs2nuq
Template:TemplateDataInfo/layout
10
15808
74519
2024-08-28T08:32:09Z
CptViraj
5275
Protected "[[Template:TemplateDataInfo/layout]]": [[Special:MyLanguage/Commons:Protection policy|Widely used template]] ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
74519
wikitext
text/x-wiki
<onlyinclude><templatestyles src="Template:TemplateDataInfo/styles.css" /><div class="commons-template-TemplateDataInfo" lang="{{#bcp47:{{{lang|}}}}}" dir="{{#dir:{{{lang|}}}}}">
<div class="header" lang="zxx" dir="ltr"><nowiki><templatedata>JSON</templatedata></nowiki> ./. {{tl|TemplateBox}}</div>
;{{{title}}}
{{{text}}}
----
[[{{{helppage|:en:Wikipedia:VisualEditor/TemplateData/Tutorial}}}|{{{help}}}]] • [[Special:MyLanguage/Commons:TemplateData|{{{info}}}]]
</div><includeonly>{{#ifeq:{{NAMESPACE}}:{{ROOTPAGENAME}}|Template:TemplateDataInfo|
|{{#switch:{{SUBPAGENAME}}
|#default=[[Category:Templates using TemplateData]]
|doc
|documentation
|metatemplatedoc
|templatedoc
= [[Category:TemplateData documentation]]
|sandbox=
|TemplateData={{#ifeq:{{SUBPAGENAME}}|{{BASEPAGENAME}}
|[[Category:Templates using TemplateData]]
|[[Category:TemplateData documentation]]
}}
}}
}}</includeonly></onlyinclude>
[[Category:Layout templates]]
1xatqo9caata6g5nhqctdxjx5p76zno
74520
74519
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:TemplateDataInfo/layout]]: Importing the Support template
74519
wikitext
text/x-wiki
<onlyinclude><templatestyles src="Template:TemplateDataInfo/styles.css" /><div class="commons-template-TemplateDataInfo" lang="{{#bcp47:{{{lang|}}}}}" dir="{{#dir:{{{lang|}}}}}">
<div class="header" lang="zxx" dir="ltr"><nowiki><templatedata>JSON</templatedata></nowiki> ./. {{tl|TemplateBox}}</div>
;{{{title}}}
{{{text}}}
----
[[{{{helppage|:en:Wikipedia:VisualEditor/TemplateData/Tutorial}}}|{{{help}}}]] • [[Special:MyLanguage/Commons:TemplateData|{{{info}}}]]
</div><includeonly>{{#ifeq:{{NAMESPACE}}:{{ROOTPAGENAME}}|Template:TemplateDataInfo|
|{{#switch:{{SUBPAGENAME}}
|#default=[[Category:Templates using TemplateData]]
|doc
|documentation
|metatemplatedoc
|templatedoc
= [[Category:TemplateData documentation]]
|sandbox=
|TemplateData={{#ifeq:{{SUBPAGENAME}}|{{BASEPAGENAME}}
|[[Category:Templates using TemplateData]]
|[[Category:TemplateData documentation]]
}}
}}
}}</includeonly></onlyinclude>
[[Category:Layout templates]]
1xatqo9caata6g5nhqctdxjx5p76zno
Template:TemplateDataInfo/styles.css
10
15809
74521
2024-10-30T12:47:22Z
Matrix
8894
fix for dark mode
74521
sanitized-css
text/css
.commons-template-TemplateDataInfo {
background: var(--background-color-warning-subtle, #fdf2d5);
border: 1px solid var(--border-color-warning, #ab7f2a);
color: inherit;
padding: 0 .5em;
margin: .5em 0;
}
.commons-template-TemplateDataInfo .header {
font-size: 120%;
font-family: monospace, monospace;
}
.commons-template-TemplateDataInfo[dir="ltr"] .header {
/* @noflip */
float: right;
}
.commons-template-TemplateDataInfo[dir="rtl"] .header {
/* @noflip */
float: left;
}
h6wzgqqaleiatpnsnn6qvrh9bjps4fy
74522
74521
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:TemplateDataInfo/styles.css]]: Importing the Support template
74521
sanitized-css
text/css
.commons-template-TemplateDataInfo {
background: var(--background-color-warning-subtle, #fdf2d5);
border: 1px solid var(--border-color-warning, #ab7f2a);
color: inherit;
padding: 0 .5em;
margin: .5em 0;
}
.commons-template-TemplateDataInfo .header {
font-size: 120%;
font-family: monospace, monospace;
}
.commons-template-TemplateDataInfo[dir="ltr"] .header {
/* @noflip */
float: right;
}
.commons-template-TemplateDataInfo[dir="rtl"] .header {
/* @noflip */
float: left;
}
h6wzgqqaleiatpnsnn6qvrh9bjps4fy
Template:TemplateBox/i18n/en
10
15810
74525
2024-07-06T21:56:41Z
FuzzyBot
6845
Updating to match new version of source page
74525
wikitext
text/x-wiki
<languages/>
<onlyinclude>{{#invoke:Transclude|TemplateBox/layout
<!-- [[Module:Transclude]] parameters -->
| #ignoredPrefix = msg-
<!-- Language information -->
| lang = en
<!-- Messages -->
|msg-setscats=The template automatically sets the following categories:
|msg-nodesc=No description yet available.
|msg-languagedependant=<nowiki /><small><!-- Remove this comment and insert the translation of "This part of the documentation is only available in a limited number of languages." --></small>
|msg-usage=Usage
|msg-examples={{PLURAL:{{#expr:{{#if:{{{example|}}}|1|0}}+{{#if:{{{example2|}}}|1|0}}}}|Example|Examples}}
|msg-example-renders-as=renders as:
|msg-shorthand=Or use the shorthand <nowiki /><!--
Some translations removed from translation (T8-T18)
If you want to re-install them (because there is something wrong with the MediaWiki-messages
that are used and provided by TemplateData, here they are:
https://commons.wikimedia.org/w/index.php?title=Template:TemplateBox/i18n&oldid=102987719
-->
|msg-shorthand-params-possible=… parameters as described …
|msg-param-none=The template takes no parameters.
|msg-moreinfo=Additional information
|msg-localization=Localization
|msg-localization-instruct-switch=To add your language to the list of languages supported by this template, please edit the template and add a row to the "{{Tlf|LangSwitch| }}" construct. It takes the form "<code>{{!}}xx= Your translation </code>" (<code>xx</code> being the {{W|List of ISO 639-1 codes|code}} of your language)
|msg-localization-instruct-autotranslate=This template is localized through {{tl|Autotranslate}}.
<!-- $1 is automatically replaced by [[Template:TemplateBox/layout]] using {{tmpl}} -->
|msg-localization-template-layout=The layout of the template can be found under $1.
|msg-localization-instruct-autotranslate-new=To add your language to the list of languages supported by this template, please copy the code of [[Template:{{{name|{{PAGENAME}}}}}/en]] (or any other language version you prefer to translate) and replace the text strings in there (the form below can be used to create a translation, the English version is preloaded in the edit box). Please change the parameter <code>lang</code> from <code>en</code> (or whatever language you are translating) to the [[:en:ISO 639-1|language code]] of your language.
|msg-localization-instruct-none=This template is not intended to be localized.
|msg-localization-instruct-custommediawiki-msg=This template is localized by utilizing custom MediaWiki namespace messages.
|msg-localization-instruct-wikidata=This template is localized by utilizing Wikidata, via {{tl|Label}} template or similar approach.
|msg-localization-instruct-mediawiki-msg=This template is localized by utilizing MediaWiki namespace messages. These can be [[translatewiki:{{#if:{{{i18n-mediawiki-msg|}}}|MediaWiki:{{{i18n-mediawiki-msg|}}}|Special:Translate/ext-wikimediamessages}}|translated at translatewiki.net]] ([[:translatewiki:Special:Translations/MediaWiki:{{#if:{{{i18n-mediawiki-msg|}}}|{{{i18n-mediawiki-msg|}}}|Wm-license-{{lc:{{BASEPAGENAME}}}}-text}}|current translations]]).
|msg-localization-ext-translate=This template makes use of {{tl|Autotranslate}} and [[:mw:Special:MyLanguage/Help:Extension:Translate|the translate extension]].
|msg-localization-instruct-ext-translate=Translate this template now!
|msg-localization-instruct-ext-translate-admin=Administrate translations.
| msg-localization-tnt = This template is localized using [[Module:TNT]].
<!-- $1 is automatically replaced by [[Template:TemplateBox/layout]] using {{tmpl}} -->
| msg-localization-instruct-tnt = These translations are stored in $1.
|msg-seealso={{int:Seealso}}
|msg-relieson=Relies on:
|msg-intendedusergroups=The template is intended to be used by the following user groups:
|msg-intendedusergroups-all=[[Special:MyLanguage/Commons:Users|all users]]
|msg-intendedusergroups-unspecified=no user group specified
|msg-intendednamespaces=The template is intended to be used in the following namespaces:
|msg-intendednamespaces-unknown=unknown
|msg-intendednamespaces-all=all namespaces
|msg-intendednamespaces-talks=all talk namespaces and noticeboards
|msg-intendednamespaces-contents=all content namespaces
|msg-intendednamespaces-0=the main or gallery namespace (unprefixed)
|msg-intendednamespaces-1=the Talk namespace for the main namespace
|msg-intendednamespaces-2=the User namespace
|msg-intendednamespaces-3=the User talk namespace
|msg-intendednamespaces-4=the Commons namespace
|msg-intendednamespaces-5=the Commons talk namespace
|msg-intendednamespaces-6=the File namespace
|msg-intendednamespaces-7=the File talk namespace
|msg-intendednamespaces-8=the MediaWiki namespace
|msg-intendednamespaces-9=the MediaWiki talk namespace
|msg-intendednamespaces-10=the Template namespace
|msg-intendednamespaces-11=the Template talk namespace
|msg-intendednamespaces-12=the Help namespace
|msg-intendednamespaces-13=the Help talk namespace
|msg-intendednamespaces-14=the Category namespace
|msg-intendednamespaces-15=the Category talk namespace
|msg-intendednamespaces-16=the Creator namespace
|msg-intendednamespaces-17=the Creator talk namespace
|msg-intendednamespaces-18=the Special namespace
|msg-intendednamespaces-default=no namespace specified
|msg-placement=Placement:
|msg-placement-top=At the top of the page
|msg-placement-bottom=At the bottom of the page
|msg-placement-licence=In the "{{int:wm-license-information-permission}}" parameter of the {{tl|Information}} template (or the respective parameter of similar templates) or in the "{{int:license-header}}" section
|msg-placement-source=In the "{{int:wm-license-information-source}}" parameter of the {{tl|Information}} template (or the respective parameter of similar templates) or just below this template
}}</onlyinclude>
{{translated tag|documentation}}
grz1ytwtkh8anafz2nge7be7qwl3uh1
74526
74525
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:TemplateBox/i18n/en]]: Importing the Support template
74525
wikitext
text/x-wiki
<languages/>
<onlyinclude>{{#invoke:Transclude|TemplateBox/layout
<!-- [[Module:Transclude]] parameters -->
| #ignoredPrefix = msg-
<!-- Language information -->
| lang = en
<!-- Messages -->
|msg-setscats=The template automatically sets the following categories:
|msg-nodesc=No description yet available.
|msg-languagedependant=<nowiki /><small><!-- Remove this comment and insert the translation of "This part of the documentation is only available in a limited number of languages." --></small>
|msg-usage=Usage
|msg-examples={{PLURAL:{{#expr:{{#if:{{{example|}}}|1|0}}+{{#if:{{{example2|}}}|1|0}}}}|Example|Examples}}
|msg-example-renders-as=renders as:
|msg-shorthand=Or use the shorthand <nowiki /><!--
Some translations removed from translation (T8-T18)
If you want to re-install them (because there is something wrong with the MediaWiki-messages
that are used and provided by TemplateData, here they are:
https://commons.wikimedia.org/w/index.php?title=Template:TemplateBox/i18n&oldid=102987719
-->
|msg-shorthand-params-possible=… parameters as described …
|msg-param-none=The template takes no parameters.
|msg-moreinfo=Additional information
|msg-localization=Localization
|msg-localization-instruct-switch=To add your language to the list of languages supported by this template, please edit the template and add a row to the "{{Tlf|LangSwitch| }}" construct. It takes the form "<code>{{!}}xx= Your translation </code>" (<code>xx</code> being the {{W|List of ISO 639-1 codes|code}} of your language)
|msg-localization-instruct-autotranslate=This template is localized through {{tl|Autotranslate}}.
<!-- $1 is automatically replaced by [[Template:TemplateBox/layout]] using {{tmpl}} -->
|msg-localization-template-layout=The layout of the template can be found under $1.
|msg-localization-instruct-autotranslate-new=To add your language to the list of languages supported by this template, please copy the code of [[Template:{{{name|{{PAGENAME}}}}}/en]] (or any other language version you prefer to translate) and replace the text strings in there (the form below can be used to create a translation, the English version is preloaded in the edit box). Please change the parameter <code>lang</code> from <code>en</code> (or whatever language you are translating) to the [[:en:ISO 639-1|language code]] of your language.
|msg-localization-instruct-none=This template is not intended to be localized.
|msg-localization-instruct-custommediawiki-msg=This template is localized by utilizing custom MediaWiki namespace messages.
|msg-localization-instruct-wikidata=This template is localized by utilizing Wikidata, via {{tl|Label}} template or similar approach.
|msg-localization-instruct-mediawiki-msg=This template is localized by utilizing MediaWiki namespace messages. These can be [[translatewiki:{{#if:{{{i18n-mediawiki-msg|}}}|MediaWiki:{{{i18n-mediawiki-msg|}}}|Special:Translate/ext-wikimediamessages}}|translated at translatewiki.net]] ([[:translatewiki:Special:Translations/MediaWiki:{{#if:{{{i18n-mediawiki-msg|}}}|{{{i18n-mediawiki-msg|}}}|Wm-license-{{lc:{{BASEPAGENAME}}}}-text}}|current translations]]).
|msg-localization-ext-translate=This template makes use of {{tl|Autotranslate}} and [[:mw:Special:MyLanguage/Help:Extension:Translate|the translate extension]].
|msg-localization-instruct-ext-translate=Translate this template now!
|msg-localization-instruct-ext-translate-admin=Administrate translations.
| msg-localization-tnt = This template is localized using [[Module:TNT]].
<!-- $1 is automatically replaced by [[Template:TemplateBox/layout]] using {{tmpl}} -->
| msg-localization-instruct-tnt = These translations are stored in $1.
|msg-seealso={{int:Seealso}}
|msg-relieson=Relies on:
|msg-intendedusergroups=The template is intended to be used by the following user groups:
|msg-intendedusergroups-all=[[Special:MyLanguage/Commons:Users|all users]]
|msg-intendedusergroups-unspecified=no user group specified
|msg-intendednamespaces=The template is intended to be used in the following namespaces:
|msg-intendednamespaces-unknown=unknown
|msg-intendednamespaces-all=all namespaces
|msg-intendednamespaces-talks=all talk namespaces and noticeboards
|msg-intendednamespaces-contents=all content namespaces
|msg-intendednamespaces-0=the main or gallery namespace (unprefixed)
|msg-intendednamespaces-1=the Talk namespace for the main namespace
|msg-intendednamespaces-2=the User namespace
|msg-intendednamespaces-3=the User talk namespace
|msg-intendednamespaces-4=the Commons namespace
|msg-intendednamespaces-5=the Commons talk namespace
|msg-intendednamespaces-6=the File namespace
|msg-intendednamespaces-7=the File talk namespace
|msg-intendednamespaces-8=the MediaWiki namespace
|msg-intendednamespaces-9=the MediaWiki talk namespace
|msg-intendednamespaces-10=the Template namespace
|msg-intendednamespaces-11=the Template talk namespace
|msg-intendednamespaces-12=the Help namespace
|msg-intendednamespaces-13=the Help talk namespace
|msg-intendednamespaces-14=the Category namespace
|msg-intendednamespaces-15=the Category talk namespace
|msg-intendednamespaces-16=the Creator namespace
|msg-intendednamespaces-17=the Creator talk namespace
|msg-intendednamespaces-18=the Special namespace
|msg-intendednamespaces-default=no namespace specified
|msg-placement=Placement:
|msg-placement-top=At the top of the page
|msg-placement-bottom=At the bottom of the page
|msg-placement-licence=In the "{{int:wm-license-information-permission}}" parameter of the {{tl|Information}} template (or the respective parameter of similar templates) or in the "{{int:license-header}}" section
|msg-placement-source=In the "{{int:wm-license-information-source}}" parameter of the {{tl|Information}} template (or the respective parameter of similar templates) or just below this template
}}</onlyinclude>
{{translated tag|documentation}}
grz1ytwtkh8anafz2nge7be7qwl3uh1
Template:TemplateBox/layout
10
15811
74527
2025-12-26T16:04:25Z
ExE Boss
6436
Add support for `namespace=Data`
74527
wikitext
text/x-wiki
<templatestyles src="TemplateBox/styles.css" />
__NOEDITSECTION__
{{#ifeq:{{{useTemplateData|}}}|export
|== {{{msg-export|Export code}}} ==
{{#tag:pre|{{msgnw:Template:{{{name|}}}}}
<nowiki><noinclude><templatedata></nowiki>
{{{JSONFM}}}
<nowiki></templatedata>
</noinclude></nowiki>
}}
|{{Documentation subpage|{{#if: {{{docsub-override|}}} | override | }}|page={{{docsub-page|}}}}}
{{{mbox|}}}
{{#if: {{{desc|}}} | {{{msg-languagedependant|}}}
<div class="templatebox-desc">
{{{desc}}}
</div> | {{{msg-nodesc|}}} }}{{#if: {{{setscats|}}} |<nowiki/>
{{{msg-setscats}}}
{{{setscats|}}}
}}
== {{{msg-usage|<noinclude>msg-usage</noinclude>}}} ==
{{#ifeq:{{#titleparts:{{FULLPAGENAME}}|1|-1}}|doc||{{#if:{{{mustbesubst|}}}|{{Must be substituted|page={{{name|}}}}}}}}}
<div class="templatebox-usagesample">
{{{usageSample|}}}
</div>{{#if: {{{shorthand|}}} |<nowiki/>
{{{msg-shorthand|}}}<div style="font-family: monospace, monospace;">{{#ifexist: Template:{{{shorthand|}}} | <nowiki>{{</nowiki>{{{shorthand}}}{{#ifeq:{{{argCount|}}}|0|<!-- nothing -->| {{!}}{{{msg-shorthand-params-possible|… parameters as described …}}}}}<nowiki>}}</nowiki> | {{{shorthand|}}}}}</div>
}}{{#if: {{{usage-notes|}}} |<nowiki/>
{{{msg-languagedependant|}}}
<div class="templatebox-languagedependant">
{{{usage-notes}}}
</div>
}}{{#ifexpr:
{{#ifeq:{{{useTemplateData|}}}|TNT|1|0}}
or{{#ifeq:{{str left|{{{useTemplateData|}}}|4}}|TNT:|1|0}}
|<nowiki/>
<h3>{{int:templatedata-doc-params}}</h3>
{{{templateDataInfo}}}
<!-- TemplateData is handled by [[Module:TNT]] -->
{{#invoke:TNT|doc
|1={{#ifeq:{{{useTemplateData}}}|TNT
| {{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}
| {{str right|{{{useTemplateData}}}|4}}
}}
}}
<nowiki/>|<!-- else -->
{{#if: {{{paramTable|}}} |<nowiki/>
=== {{int:templatedata-doc-params}} ===
{{#ifeq:{{{useTemplateData|}}}|only||{{{paramTable}}}}}
|<nowiki/>
{{{msg-param-none|}}} }}
{{#if:{{{useTemplateData|}}}
|{{#ifeq:{{{useTemplateData|}}}|only||{{Collapse top|[[:mw:Special:MyLanguage/Extension:TemplateData|{{{msg-templatedata|Template data}}}]]}}}}
{{{templateDataInfo}}}
{{#tag: templatedata
| {{{templateData|}}}
}}
{{#ifeq:{{{useTemplateData|}}}|only||
<!--else-->
{{#ifeq:{{{useTemplateData|}}}|debug|
{{Collapse top|{{{msg-templatedata-raw|Raw template data}}}}}
{{#tag:syntaxhighlight
| {{{JSONFM}}}
| lang="json"
}}
{{Collapse bottom}}
}}
{{Collapse bottom}}}}
}}}}
=== {{{msg-moreinfo|<noinclude>msg-moreinfo</noinclude>}}} ===
{{{msg-intendednamespaces|}}}
{{#switch: {{{namespace|}}}
|={{{msg-intendednamespaces-default|}}}
|all={{{msg-intendednamespaces-all|}}}
|talks={{{msg-intendednamespaces-talks|}}}
|contents={{{msg-intendednamespaces-contents|}}}
|0|Main|Gallery|main|gallery={{{msg-intendednamespaces-0|}}}
|1|Talk|talk={{{msg-intendednamespaces-1|}}}
|2|User|user={{{msg-intendednamespaces-2|}}}
|3|User talk|user talk={{{msg-intendednamespaces-3|}}}
|4|Commons|commons={{{msg-intendednamespaces-4|}}}
|5|Commons talk|commons talk={{{msg-intendednamespaces-5|}}}
|6|File|file={{{msg-intendednamespaces-6|}}}
|7|File talk|file talk={{{msg-intendednamespaces-7|}}}
|8|MediaWiki|mediaWiki={{{msg-intendednamespaces-8|}}}
|9|MediaWiki talk|mediaWiki talk={{{msg-intendednamespaces-9|}}}
|10|Template|template={{{msg-intendednamespaces-10|}}}
|11|Template talk|template talk={{{msg-intendednamespaces-11|}}}
|12|Help|help={{{msg-intendednamespaces-12|}}}
|13|Help talk|help talk={{{msg-intendednamespaces-13|}}}
|14|Category|category={{{msg-intendednamespaces-14|}}}
|15|Category talk|category talk={{{msg-intendednamespaces-15|}}}
|16|Creator|creator={{{msg-intendednamespaces-16|}}}
|17|Creator talk|creator talk={{{msg-intendednamespaces-17|}}}
|18|Special|special={{{msg-intendednamespaces-18|}}}
|486|Data|data={{{msg-intendednamespaces-486|<span lang="en" dir="ltr" class="mw-content-ltr">the Data namespace</span>}}}
|487|Data talk|data talk={{{msg-intendednamespaces-487|<span lang="en" dir="ltr" class="mw-content-ltr">the Data talk namespace</span>}}}
|#default={{{msg-intendednamespaces-unknown|}}}
}}
{{{msg-intendedusergroups|}}}<!-- usergroup is always lower case transformation on [[Template:TemplateBox]] -->
{{#switch: {{{usergroup|}}}
|all={{{msg-intendedusergroups-all|}}}
|bot=[[Special:MyLanguage/{{mediawiki:Grouppage-bot}}|{{int:Group-bot}}]]
|administrator|admin|sysop=[[Special:MyLanguage/{{mediawiki:Grouppage-sysop}}|{{int:Group-sysop}}]]
|bureaucrat|crat=[[Special:MyLanguage/{{mediawiki:Grouppage-bureaucrat}}|{{int:Group-bureaucrat}}]]
|checkuser=[[Special:MyLanguage/{{mediawiki:Grouppage-checkuser}}|{{int:Group-checkuser}}]]
|licensereviewer|imagereviewer|image-reviewer|license-reviewer=[[Special:MyLanguage/{{mediawiki:Grouppage-Image-reviewer}}|{{int:Group-Image-reviewer}}]]
|vrt|vrt-agent|otrs|otrs-agent|otrs-member=[[Special:MyLanguage/{{mediawiki:Grouppage-vrt-permissions}}|{{int:group-vrt-permissions}}]]
|autoconfirmed=[[Special:MyLanguage/{{mediawiki:Grouppage-autoconfirmed}}|{{int:Group-autoconfirmed}}]]
|autopatrolled=[[Special:MyLanguage/{{mediawiki:Grouppage-autopatrolled}}|{{int:Group-autopatrolled}}]]
|filemover=[[Special:MyLanguage/{{mediawiki:Grouppage-filemover}}|{{int:Group-filemover}}]]
|oversight=[[Special:MyLanguage/{{mediawiki:Grouppage-oversight}}|{{int:Group-oversight}}]]
|patroller=[[Special:MyLanguage/{{mediawiki:Grouppage-patroller}}|{{int:Group-patroller}}]]
|rollbacker=[[Special:MyLanguage/{{mediawiki:Grouppage-rollbacker}}|{{int:Group-rollbacker}}]]
|steward=[[m:Special:MyLanguage/Stewards|{{int:Group-steward}}]]
|templateeditor|template editor=[[Special:MyLanguage/{{mediawiki:Grouppage-templateeditor}}|{{int:Group-templateeditor}}]]
|upwizcampeditors=[[Special:MyLanguage/{{mediawiki:Grouppage-upwizcampeditors}}|{{int:Group-upwizcampeditors}}]]
|translationadmin|translateadmin=[[Special:MyLanguage/{{mediawiki:Grouppage-translationadmin}}|{{int:Group-translationadmin}}]]
|#default={{{msg-intendedusergroups-unspecified|}}}
}}{{#if: {{{placement|}}} |<nowiki/>
{{{msg-placement|}}}
{{#switch: {{{placement|}}}
|top={{{msg-placement-top|}}}
|bottom={{{msg-placement-bottom|}}}
|license|licence={{{msg-placement-licence|}}}
|source={{{msg-placement-source|}}}
|#default={{{msg-languagedependant|}}}
<div class="templatebox-languagedependant">
{{{placement}}}
</div>
}}
}}{{#if: {{{relieson|}}} |<nowiki/>
{{{msg-relieson|}}}<br />
{{{relieson|}}}
}}{{suppress categories|{{#if:<!--
-->{{{example |}}}{{{example-source |}}}{{{example-value |}}}<!--
-->{{{example2|}}}{{{example2-source|}}}{{{example2-value|}}}<!--
-->{{{example3|}}}{{{example3-source|}}}{{{example3-value|}}}<!--
-->|<nowiki/>
== {{{msg-examples}}} ==
<nowiki/>}}{{#if: {{{example-source|{{{example|}}}}}} |<nowiki/>
{{{example-source|<nowiki>{{</nowiki>{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}{{!}}{{{example}}}<nowiki>}}</nowiki>}}}
{{{msg-example-renders-as}}}
<div class="templatebox-example">
{{#if:{{{example-source|}}}{{{example-value|}}}|{{{example-value}}}|{{ {{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}|{{{example|}}}|category=}}}}
</div>
}}{{#if: {{{example2-source|{{{example2|}}}}}} |<nowiki/>
{{#if: {{{example-source|{{{example|}}}}}}
|<hr style="margin:1em 0"/>}}
{{{example2-source|<nowiki>{{</nowiki>{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}{{!}}{{{example2}}}<nowiki>}}</nowiki>}}}
{{{msg-example-renders-as}}}
<div class="templatebox-example">
{{#if:{{{example2-source|}}}{{{example2-value|}}}|{{{example2-value}}}|{{ {{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}|{{{example2|}}}|category=}}}}
</div>
}}{{#if: {{{example3-source|{{{example3|}}}}}} |<nowiki/>
{{#if: {{{example-source|{{{example|}}}}}}{{{example2-source|{{{example2|}}}}}}
|<hr style="margin:1em 0"/>}}
{{{example3-source|<nowiki>{{</nowiki>{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}{{!}}{{{example3}}}<nowiki>}}</nowiki>}}}
{{{msg-example-renders-as}}}
<div class="templatebox-example">
{{#if:{{{example3-source|{{{example3-value|}}}}}}|{{{example3-value}}}|{{ {{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}|{{{example3|}}}|category=}}}}
</div>
}}}}{{#if: {{{seealso|}}} |<nowiki/>
== {{{msg-seealso|}}} ==
{{{msg-languagedependant|}}}
<div class="templatebox-languagedependant">
{{{seealso}}}
</div>
}}{{#switch: {{lc:{{{i18n-method|}}}}}
|-=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-none|}}}
|autotranslate=<nowiki/>
== {{{msg-localization|}}} ==
{{lang links|Template:{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}|suppressaddlink=true}}
{{{msg-localization-instruct-autotranslate}}}
{{#ifexist:Template:{{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}/layout|
{{tmpl|0=
{{{msg-localization-template-layout}}}
|1=[[Template:{{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}/layout]]
}}
}}
{{{msg-localization-instruct-autotranslate-new}}}
{{#tag:inputbox|
type=create
preload=Template:{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}/en
default=Template:{{#if: {{{name|}}} | {{{name|}}} | {{PAGENAME}} }}/{{#ifexist: Template:{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}/{{int:Lang}} | LANGCODE | {{int:Lang}} }}
}}
|ext.translate=<nowiki/>
== {{{msg-localization|}}} ==
{{lang links|suppressaddlink=true|1={{{i18n-subpage}}}}}
{{{msg-localization-ext-translate}}}
{{#ifexist:Template:{{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}/layout|
{{tmpl|0=
{{{msg-localization-template-layout}}}
|1=[[Template:{{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}/layout]]
}}
}}
<div style="text-align:center">{{Clickable button|target={{TranslateLink|{{{i18n-subpage}}}}}|text=[[File:Icono de traducción.svg|48px|link=]]'''{{{msg-localization-instruct-ext-translate}}}'''|class=ui-button-blue ui-button-large|external=true}}</div>
<div style="text-align:center">{{Clickable button|target={{fullurl:{{{i18n-subpage}}}|action=edit}}|text='''{{{msg-localization-instruct-ext-translate-admin}}}'''|class=ui-button-red ui-button-large|iconPrimary=ui-icon-wrench|external=true}}</div>
|switch=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-switch|}}}
|mediawiki-msg=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-mediawiki-msg|}}}
|custommediawiki-msg=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-custommediawiki-msg|}}}
|tnt=<nowiki/>
<h2>{{{msg-localization}}}</h2>
{{{msg-localization-tnt}}}
{{tmpl|0=
{{{msg-localization-instruct-tnt}}}
|1=[[Data:{{#if:{{{i18n-data-file|}}}<!--
-->|{{#invoke:TNTTools|TNTTabFull|{{{i18n-data-file}}}}}<!--
-->|I18n/{{#if:{{{name|}}}|{{{name}}}|{{ROOTPAGENAME}}}}.tab<!--
-->}}]]
}}
|wikidata=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-wikidata|}}}
|#default=
{{#if: {{{i18n-desc|}}} |<nowiki/>
== {{{msg-localization|}}} ==
}}
}}{{#if: {{{i18n-desc|}}} |<nowiki/>
{{{msg-languagedependant|}}}
<div class="templatebox-languagedependant">
{{{i18n-desc}}}
</div>
}}}}<noinclude>[[Category:Layout templates]]</noinclude>
tqpi3wqgupxm6rgec8unbprnq9gpx57
74528
74527
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:TemplateBox/layout]]: Importing the Support template
74527
wikitext
text/x-wiki
<templatestyles src="TemplateBox/styles.css" />
__NOEDITSECTION__
{{#ifeq:{{{useTemplateData|}}}|export
|== {{{msg-export|Export code}}} ==
{{#tag:pre|{{msgnw:Template:{{{name|}}}}}
<nowiki><noinclude><templatedata></nowiki>
{{{JSONFM}}}
<nowiki></templatedata>
</noinclude></nowiki>
}}
|{{Documentation subpage|{{#if: {{{docsub-override|}}} | override | }}|page={{{docsub-page|}}}}}
{{{mbox|}}}
{{#if: {{{desc|}}} | {{{msg-languagedependant|}}}
<div class="templatebox-desc">
{{{desc}}}
</div> | {{{msg-nodesc|}}} }}{{#if: {{{setscats|}}} |<nowiki/>
{{{msg-setscats}}}
{{{setscats|}}}
}}
== {{{msg-usage|<noinclude>msg-usage</noinclude>}}} ==
{{#ifeq:{{#titleparts:{{FULLPAGENAME}}|1|-1}}|doc||{{#if:{{{mustbesubst|}}}|{{Must be substituted|page={{{name|}}}}}}}}}
<div class="templatebox-usagesample">
{{{usageSample|}}}
</div>{{#if: {{{shorthand|}}} |<nowiki/>
{{{msg-shorthand|}}}<div style="font-family: monospace, monospace;">{{#ifexist: Template:{{{shorthand|}}} | <nowiki>{{</nowiki>{{{shorthand}}}{{#ifeq:{{{argCount|}}}|0|<!-- nothing -->| {{!}}{{{msg-shorthand-params-possible|… parameters as described …}}}}}<nowiki>}}</nowiki> | {{{shorthand|}}}}}</div>
}}{{#if: {{{usage-notes|}}} |<nowiki/>
{{{msg-languagedependant|}}}
<div class="templatebox-languagedependant">
{{{usage-notes}}}
</div>
}}{{#ifexpr:
{{#ifeq:{{{useTemplateData|}}}|TNT|1|0}}
or{{#ifeq:{{str left|{{{useTemplateData|}}}|4}}|TNT:|1|0}}
|<nowiki/>
<h3>{{int:templatedata-doc-params}}</h3>
{{{templateDataInfo}}}
<!-- TemplateData is handled by [[Module:TNT]] -->
{{#invoke:TNT|doc
|1={{#ifeq:{{{useTemplateData}}}|TNT
| {{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}
| {{str right|{{{useTemplateData}}}|4}}
}}
}}
<nowiki/>|<!-- else -->
{{#if: {{{paramTable|}}} |<nowiki/>
=== {{int:templatedata-doc-params}} ===
{{#ifeq:{{{useTemplateData|}}}|only||{{{paramTable}}}}}
|<nowiki/>
{{{msg-param-none|}}} }}
{{#if:{{{useTemplateData|}}}
|{{#ifeq:{{{useTemplateData|}}}|only||{{Collapse top|[[:mw:Special:MyLanguage/Extension:TemplateData|{{{msg-templatedata|Template data}}}]]}}}}
{{{templateDataInfo}}}
{{#tag: templatedata
| {{{templateData|}}}
}}
{{#ifeq:{{{useTemplateData|}}}|only||
<!--else-->
{{#ifeq:{{{useTemplateData|}}}|debug|
{{Collapse top|{{{msg-templatedata-raw|Raw template data}}}}}
{{#tag:syntaxhighlight
| {{{JSONFM}}}
| lang="json"
}}
{{Collapse bottom}}
}}
{{Collapse bottom}}}}
}}}}
=== {{{msg-moreinfo|<noinclude>msg-moreinfo</noinclude>}}} ===
{{{msg-intendednamespaces|}}}
{{#switch: {{{namespace|}}}
|={{{msg-intendednamespaces-default|}}}
|all={{{msg-intendednamespaces-all|}}}
|talks={{{msg-intendednamespaces-talks|}}}
|contents={{{msg-intendednamespaces-contents|}}}
|0|Main|Gallery|main|gallery={{{msg-intendednamespaces-0|}}}
|1|Talk|talk={{{msg-intendednamespaces-1|}}}
|2|User|user={{{msg-intendednamespaces-2|}}}
|3|User talk|user talk={{{msg-intendednamespaces-3|}}}
|4|Commons|commons={{{msg-intendednamespaces-4|}}}
|5|Commons talk|commons talk={{{msg-intendednamespaces-5|}}}
|6|File|file={{{msg-intendednamespaces-6|}}}
|7|File talk|file talk={{{msg-intendednamespaces-7|}}}
|8|MediaWiki|mediaWiki={{{msg-intendednamespaces-8|}}}
|9|MediaWiki talk|mediaWiki talk={{{msg-intendednamespaces-9|}}}
|10|Template|template={{{msg-intendednamespaces-10|}}}
|11|Template talk|template talk={{{msg-intendednamespaces-11|}}}
|12|Help|help={{{msg-intendednamespaces-12|}}}
|13|Help talk|help talk={{{msg-intendednamespaces-13|}}}
|14|Category|category={{{msg-intendednamespaces-14|}}}
|15|Category talk|category talk={{{msg-intendednamespaces-15|}}}
|16|Creator|creator={{{msg-intendednamespaces-16|}}}
|17|Creator talk|creator talk={{{msg-intendednamespaces-17|}}}
|18|Special|special={{{msg-intendednamespaces-18|}}}
|486|Data|data={{{msg-intendednamespaces-486|<span lang="en" dir="ltr" class="mw-content-ltr">the Data namespace</span>}}}
|487|Data talk|data talk={{{msg-intendednamespaces-487|<span lang="en" dir="ltr" class="mw-content-ltr">the Data talk namespace</span>}}}
|#default={{{msg-intendednamespaces-unknown|}}}
}}
{{{msg-intendedusergroups|}}}<!-- usergroup is always lower case transformation on [[Template:TemplateBox]] -->
{{#switch: {{{usergroup|}}}
|all={{{msg-intendedusergroups-all|}}}
|bot=[[Special:MyLanguage/{{mediawiki:Grouppage-bot}}|{{int:Group-bot}}]]
|administrator|admin|sysop=[[Special:MyLanguage/{{mediawiki:Grouppage-sysop}}|{{int:Group-sysop}}]]
|bureaucrat|crat=[[Special:MyLanguage/{{mediawiki:Grouppage-bureaucrat}}|{{int:Group-bureaucrat}}]]
|checkuser=[[Special:MyLanguage/{{mediawiki:Grouppage-checkuser}}|{{int:Group-checkuser}}]]
|licensereviewer|imagereviewer|image-reviewer|license-reviewer=[[Special:MyLanguage/{{mediawiki:Grouppage-Image-reviewer}}|{{int:Group-Image-reviewer}}]]
|vrt|vrt-agent|otrs|otrs-agent|otrs-member=[[Special:MyLanguage/{{mediawiki:Grouppage-vrt-permissions}}|{{int:group-vrt-permissions}}]]
|autoconfirmed=[[Special:MyLanguage/{{mediawiki:Grouppage-autoconfirmed}}|{{int:Group-autoconfirmed}}]]
|autopatrolled=[[Special:MyLanguage/{{mediawiki:Grouppage-autopatrolled}}|{{int:Group-autopatrolled}}]]
|filemover=[[Special:MyLanguage/{{mediawiki:Grouppage-filemover}}|{{int:Group-filemover}}]]
|oversight=[[Special:MyLanguage/{{mediawiki:Grouppage-oversight}}|{{int:Group-oversight}}]]
|patroller=[[Special:MyLanguage/{{mediawiki:Grouppage-patroller}}|{{int:Group-patroller}}]]
|rollbacker=[[Special:MyLanguage/{{mediawiki:Grouppage-rollbacker}}|{{int:Group-rollbacker}}]]
|steward=[[m:Special:MyLanguage/Stewards|{{int:Group-steward}}]]
|templateeditor|template editor=[[Special:MyLanguage/{{mediawiki:Grouppage-templateeditor}}|{{int:Group-templateeditor}}]]
|upwizcampeditors=[[Special:MyLanguage/{{mediawiki:Grouppage-upwizcampeditors}}|{{int:Group-upwizcampeditors}}]]
|translationadmin|translateadmin=[[Special:MyLanguage/{{mediawiki:Grouppage-translationadmin}}|{{int:Group-translationadmin}}]]
|#default={{{msg-intendedusergroups-unspecified|}}}
}}{{#if: {{{placement|}}} |<nowiki/>
{{{msg-placement|}}}
{{#switch: {{{placement|}}}
|top={{{msg-placement-top|}}}
|bottom={{{msg-placement-bottom|}}}
|license|licence={{{msg-placement-licence|}}}
|source={{{msg-placement-source|}}}
|#default={{{msg-languagedependant|}}}
<div class="templatebox-languagedependant">
{{{placement}}}
</div>
}}
}}{{#if: {{{relieson|}}} |<nowiki/>
{{{msg-relieson|}}}<br />
{{{relieson|}}}
}}{{suppress categories|{{#if:<!--
-->{{{example |}}}{{{example-source |}}}{{{example-value |}}}<!--
-->{{{example2|}}}{{{example2-source|}}}{{{example2-value|}}}<!--
-->{{{example3|}}}{{{example3-source|}}}{{{example3-value|}}}<!--
-->|<nowiki/>
== {{{msg-examples}}} ==
<nowiki/>}}{{#if: {{{example-source|{{{example|}}}}}} |<nowiki/>
{{{example-source|<nowiki>{{</nowiki>{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}{{!}}{{{example}}}<nowiki>}}</nowiki>}}}
{{{msg-example-renders-as}}}
<div class="templatebox-example">
{{#if:{{{example-source|}}}{{{example-value|}}}|{{{example-value}}}|{{ {{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}|{{{example|}}}|category=}}}}
</div>
}}{{#if: {{{example2-source|{{{example2|}}}}}} |<nowiki/>
{{#if: {{{example-source|{{{example|}}}}}}
|<hr style="margin:1em 0"/>}}
{{{example2-source|<nowiki>{{</nowiki>{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}{{!}}{{{example2}}}<nowiki>}}</nowiki>}}}
{{{msg-example-renders-as}}}
<div class="templatebox-example">
{{#if:{{{example2-source|}}}{{{example2-value|}}}|{{{example2-value}}}|{{ {{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}|{{{example2|}}}|category=}}}}
</div>
}}{{#if: {{{example3-source|{{{example3|}}}}}} |<nowiki/>
{{#if: {{{example-source|{{{example|}}}}}}{{{example2-source|{{{example2|}}}}}}
|<hr style="margin:1em 0"/>}}
{{{example3-source|<nowiki>{{</nowiki>{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}{{!}}{{{example3}}}<nowiki>}}</nowiki>}}}
{{{msg-example-renders-as}}}
<div class="templatebox-example">
{{#if:{{{example3-source|{{{example3-value|}}}}}}|{{{example3-value}}}|{{ {{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}|{{{example3|}}}|category=}}}}
</div>
}}}}{{#if: {{{seealso|}}} |<nowiki/>
== {{{msg-seealso|}}} ==
{{{msg-languagedependant|}}}
<div class="templatebox-languagedependant">
{{{seealso}}}
</div>
}}{{#switch: {{lc:{{{i18n-method|}}}}}
|-=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-none|}}}
|autotranslate=<nowiki/>
== {{{msg-localization|}}} ==
{{lang links|Template:{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}|suppressaddlink=true}}
{{{msg-localization-instruct-autotranslate}}}
{{#ifexist:Template:{{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}/layout|
{{tmpl|0=
{{{msg-localization-template-layout}}}
|1=[[Template:{{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}/layout]]
}}
}}
{{{msg-localization-instruct-autotranslate-new}}}
{{#tag:inputbox|
type=create
preload=Template:{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}/en
default=Template:{{#if: {{{name|}}} | {{{name|}}} | {{PAGENAME}} }}/{{#ifexist: Template:{{#if: {{{name|}}} | {{{name}}} | {{PAGENAME}} }}/{{int:Lang}} | LANGCODE | {{int:Lang}} }}
}}
|ext.translate=<nowiki/>
== {{{msg-localization|}}} ==
{{lang links|suppressaddlink=true|1={{{i18n-subpage}}}}}
{{{msg-localization-ext-translate}}}
{{#ifexist:Template:{{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}/layout|
{{tmpl|0=
{{{msg-localization-template-layout}}}
|1=[[Template:{{#if:{{{name|}}}|{{{name}}}|{{BASEPAGENAME}}}}/layout]]
}}
}}
<div style="text-align:center">{{Clickable button|target={{TranslateLink|{{{i18n-subpage}}}}}|text=[[File:Icono de traducción.svg|48px|link=]]'''{{{msg-localization-instruct-ext-translate}}}'''|class=ui-button-blue ui-button-large|external=true}}</div>
<div style="text-align:center">{{Clickable button|target={{fullurl:{{{i18n-subpage}}}|action=edit}}|text='''{{{msg-localization-instruct-ext-translate-admin}}}'''|class=ui-button-red ui-button-large|iconPrimary=ui-icon-wrench|external=true}}</div>
|switch=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-switch|}}}
|mediawiki-msg=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-mediawiki-msg|}}}
|custommediawiki-msg=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-custommediawiki-msg|}}}
|tnt=<nowiki/>
<h2>{{{msg-localization}}}</h2>
{{{msg-localization-tnt}}}
{{tmpl|0=
{{{msg-localization-instruct-tnt}}}
|1=[[Data:{{#if:{{{i18n-data-file|}}}<!--
-->|{{#invoke:TNTTools|TNTTabFull|{{{i18n-data-file}}}}}<!--
-->|I18n/{{#if:{{{name|}}}|{{{name}}}|{{ROOTPAGENAME}}}}.tab<!--
-->}}]]
}}
|wikidata=<nowiki/>
== {{{msg-localization|}}} ==
{{{msg-localization-instruct-wikidata|}}}
|#default=
{{#if: {{{i18n-desc|}}} |<nowiki/>
== {{{msg-localization|}}} ==
}}
}}{{#if: {{{i18n-desc|}}} |<nowiki/>
{{{msg-languagedependant|}}}
<div class="templatebox-languagedependant">
{{{i18n-desc}}}
</div>
}}}}<noinclude>[[Category:Layout templates]]</noinclude>
tqpi3wqgupxm6rgec8unbprnq9gpx57
Template:TemplateBox/styles.css
10
15812
74529
2024-10-30T12:27:34Z
Matrix
8894
dark mode fix for language dependant box
74529
sanitized-css
text/css
.templatebox-desc {
font-size: 1.2em;
font-weight: bolder;
padding: 0.2em;
}
.templatebox-usagesample {
font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono',
'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace;
}
.templatebox-languagedependant {
background: var(--background-color-neutral-subtle, #f8f9fa);
color: inherit;
padding: 0.2em;
}
.templatebox-example {
border:1px solid var(--border-color-base,#a2a9b1);
width: 90%;
padding: 1.5em;
}
.templatebox-example:after {
display: block;
content: "";
clear: both;
}
hr.templatebox-examples-separator {
margin: 1em 0;
}
kvl2wuigla1dma12kctcf2volntprye
74530
74529
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Template:TemplateBox/styles.css]]: Importing the Support template
74529
sanitized-css
text/css
.templatebox-desc {
font-size: 1.2em;
font-weight: bolder;
padding: 0.2em;
}
.templatebox-usagesample {
font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono',
'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace;
}
.templatebox-languagedependant {
background: var(--background-color-neutral-subtle, #f8f9fa);
color: inherit;
padding: 0.2em;
}
.templatebox-example {
border:1px solid var(--border-color-base,#a2a9b1);
width: 90%;
padding: 1.5em;
}
.templatebox-example:after {
display: block;
content: "";
clear: both;
}
hr.templatebox-examples-separator {
margin: 1em 0;
}
kvl2wuigla1dma12kctcf2volntprye
Module:TNTFallback
828
15813
74533
2024-04-16T20:57:31Z
Jonesey95
11743
no globals no longer required
74533
Scribunto
text/plain
--------------------------------------------------------------------------------
-- This module implements a wrapper for [[Module:TNT]] that allows returning
-- a fallback message; used by {{Documentation}}.
--
-- @module TNTFallback
-- @alias p
-- @author [[User:ExE Boss]]
-- @require [[Module:TNT]]
--------------------------------------------------------------------------------
require("strict");
local TNT = require("Module:TNT");
local p = {};
--------------------------------------------------------------------------------
-- Based on [[Module:TNT]]'s `msg` function,
-- but takes an optional `fallback` parameter.
--------------------------------------------------------------------------------
function p.msg(frame)
local dataset, key;
local params = { n = 0 };
local lang = nil;
local fallback = nil;
for k, v in pairs(frame.args) do
if (k == 1) then
dataset = v;
elseif (k == 2) then
key = v;
elseif (type(k) == "number" and k > 2) then
local i = k - 2;
params[i] = v;
params.n = math.max(params.n, i);
elseif ((k == "lang") and (v ~= "_")) then
lang = v;
elseif ((k == "fallback") and (v ~= "")) then
fallback = v;
end
end
local result;
if (lang) then
result = TNT.formatInLanguage(lang, dataset, key, unpack(params, 1, params.n));
else
result = TNT.format(dataset, key, unpack(params, 1, params.n));
end
if (fallback and (
-- not translated
(result and result == TNT.formatInLanguage("en", dataset, key, unpack(params, 1, params.n)))
-- no message
or (not result)
)) then
if (not lang) then
if (frame:callParserFunction("int:lang") ~= "en") then
return mw.message.newRawMessage(fallback, unpack(params, 1, params.n)):plain();
end
elseif (lang ~= "en") then
return mw.message.newRawMessage(fallback, unpack(params, 1, params.n)):plain();
end
end
return result;
end
return p;
kloo3djb7uof7zpnz8pm6lhk2rxu6if
74534
74533
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Module:TNTFallback]]: Importing the Support template
74533
Scribunto
text/plain
--------------------------------------------------------------------------------
-- This module implements a wrapper for [[Module:TNT]] that allows returning
-- a fallback message; used by {{Documentation}}.
--
-- @module TNTFallback
-- @alias p
-- @author [[User:ExE Boss]]
-- @require [[Module:TNT]]
--------------------------------------------------------------------------------
require("strict");
local TNT = require("Module:TNT");
local p = {};
--------------------------------------------------------------------------------
-- Based on [[Module:TNT]]'s `msg` function,
-- but takes an optional `fallback` parameter.
--------------------------------------------------------------------------------
function p.msg(frame)
local dataset, key;
local params = { n = 0 };
local lang = nil;
local fallback = nil;
for k, v in pairs(frame.args) do
if (k == 1) then
dataset = v;
elseif (k == 2) then
key = v;
elseif (type(k) == "number" and k > 2) then
local i = k - 2;
params[i] = v;
params.n = math.max(params.n, i);
elseif ((k == "lang") and (v ~= "_")) then
lang = v;
elseif ((k == "fallback") and (v ~= "")) then
fallback = v;
end
end
local result;
if (lang) then
result = TNT.formatInLanguage(lang, dataset, key, unpack(params, 1, params.n));
else
result = TNT.format(dataset, key, unpack(params, 1, params.n));
end
if (fallback and (
-- not translated
(result and result == TNT.formatInLanguage("en", dataset, key, unpack(params, 1, params.n)))
-- no message
or (not result)
)) then
if (not lang) then
if (frame:callParserFunction("int:lang") ~= "en") then
return mw.message.newRawMessage(fallback, unpack(params, 1, params.n)):plain();
end
elseif (lang ~= "en") then
return mw.message.newRawMessage(fallback, unpack(params, 1, params.n)):plain();
end
end
return result;
end
return p;
kloo3djb7uof7zpnz8pm6lhk2rxu6if
Module:TemplateBox
828
15814
74537
2022-10-30T13:19:31Z
WOSlinker
1956
use require('strict') instead of require('Module:No globals')
74537
Scribunto
text/plain
require('strict')
--[[
@exports
usagesample( frame )
argcount( frame )
args2table( args, onGetKey, forCustom )
paramtable( frame )
description( frame )
templatedata( frame )
]]
local p = {}
-- Helper function, not exposed
local function tobool(st)
if type( st ) == 'string' then
return st == 'true'
else
return not not st
end
end
-- Required to determine in which languages the interface texts without langcode are
local contentLangcode = mw.language.getContentLanguage():getCode()
-- Forward declaration
local msg, langIsInit, userLang
local messagePrefix = "templatedata-doc-"
local i18n = {}
i18n['params'] = "Template parameters"
i18n['param-name'] = "Parameter"
i18n['param-desc'] = "Description"
i18n['param-type'] = "Type"
i18n['param-default'] = "Default"
i18n['param-status'] = "Status"
i18n['param-status-optional'] = "optional"
i18n['param-status-required'] = "required"
i18n['param-status-suggested'] = "suggested"
i18n['param-status-deprecated'] = "deprecated"
i18n['param-default-empty'] = "empty"
local function initLangModule(frame)
if langIsInit then
return
end
userLang = frame:preprocess( '{{int:lang}}' )
--! From [[:de:Modul:Expr]]; by [[:de:User:PerfektesChaos]];
--! Derivative work: Rillke
msg = function( key )
-- Retrieve localized message string in content language
-- Precondition:
-- key -- string; message ID
-- Postcondition:
-- Return some message string
-- Uses:
-- > messagePrefix
-- > i18n
-- > userLang
-- mw.message.new()
local m = mw.message.new( messagePrefix .. key )
local r = false
if m:isBlank() then
r = i18n[ key ]
else
m:inLanguage( userLang )
r = m:plain()
end
if not r then
r = '((('.. key .. ')))'
end
return r
end -- msg()
langIsInit = true
end
-- A "hash" / table of everything TemplateData takes
-- to ease maintenance.
-- The type is automatically determined if t is omitted.
-- If the type does not match or can't be converted, an error will be thrown!
-- Available types (LUA-Types with exceptions):
-- InterfaceText, boolean, number, selection, table, string
-- selection*: - requires a selection-string of pipe-separated possibilities to be supplied
-- InterfaceText*: A free-form string (no wikitext) in the content-language of the wiki, or,
-- an object containing those strings keyed by language code.
local paraminfoTemplate = {
description = {
default = '',
t = 'InterfaceText',
alias = 'desc'
},
format = {
default = 'inline',
t = 'selection',
selection = 'inline|block',
alias = 'print',
extract = function(pargs, number, paramVal)
local m = { multi = 'block', one = 'inline', infobox = 'block' }
return m[paramVal] or 'inline'
end
}
}
local paraminfoTLParams = {
label = {
default = '',
t = 'InterfaceText'
},
required = {
default = false,
extract = function(pargs, number, paramVal)
local req = (pargs[number .. 'stat'] == 'required')
return tobool( paramVal or req )
end
},
suggested = {
default = false,
extract = function(pargs, number, paramVal)
local sugg = (pargs[number .. 'stat'] == 'suggested')
return tobool( paramVal or sugg )
end
},
description = {
default = '',
t = 'InterfaceText',
alias = 'd'
},
deprecated = {
default = false,
extract = function(pargs, number, paramVal)
local depr = (pargs[number .. 'stat'] == 'deprecated')
return tobool( paramVal or depr )
end
},
aliases = {
default = '',
t = 'table',
extract = function(pargs, number, paramVal)
local key = number .. 'aliases'
local tdkey = key .. '-td'
local aliases = pargs[tdkey] or pargs[key]
if aliases and mw.text.trim( aliases ) ~= '' then
local cleaned = {}
for m in mw.text.gsplit( aliases, '/', true ) do
cleaned[#cleaned+1] = mw.text.trim(m)
end
return cleaned
else
return nil
end
end
},
default = {
default = '',
t = 'string',
alias = 'def'
},
type = {
default = 'unknown',
t = 'selection',
selection = 'unknown|number|string|string/wiki-user-name|string/wiki-page-name|string/line|line|wiki-page-name|wiki-file-name|wiki-user-name|wiki-template-name|content|unbalanced-wikitext|date|url|boolean'
},
inherits = {
default = nil,
t = 'string'
},
autovalue = {
default = '',
t = 'string',
alias = 'av',
},
suggestedvalues = {
default = '',
t = 'table',
alias = 'sv',
extract = function(pargs, number, paramVal)
if paramVal == nil then
return nil
end
local cleaned = {}
for m in mw.text.gsplit( paramVal, '/', true ) do
cleaned[#cleaned+1] = mw.text.trim(m)
end
return cleaned
end,
},
-- sets will be treated differently because we can only have a plain structure in wikitext
}
local tableLayout = {
{
col = 'param-name',
width = '15%',
extract = function(item, renderCell, monolingual)
local alias, param = '', item.key
local aliasTT = '<span style="font-family: monospace; color:#777; border:1px solid #6A6A6A">'
param = '<code>' .. param .. '</code>'
if item.aliases then
alias = aliasTT .. table.concat(item.aliases, '</span><br />' .. aliasTT) .. '</span>'
param = table.concat({param, '<br /><div>', alias, '</div>'})
end
renderCell(param)
end
}, {
col = 'param-desc',
cols = 2,
width = '65%',
extract = function(item, renderCell, monolingual)
local label = item.label or ''
label = monolingual(label)
local labelLen = #label
local colspan = 2 - labelLen
if labelLen > 0 then
renderCell(label)
end
renderCell(monolingual(item.description), colspan)
end
}, {
col = 'param-default',
width = '10%',
extract = function(item, renderCell, monolingual)
local def = monolingual(item.default) or ''
if #def == 0 then
def = '<span class="mw-templatedata-doc-muted" style="color:#777; font-variant:small-caps">' .. msg('param-default-empty') .. '</span>'
end
renderCell(def)
end
}, {
col = 'param-status',
width = '10%',
extract = function(item, renderCell, monolingual)
local stat = msg('param-status-optional')
if item.required then
stat = '<b>' .. msg('param-status-required') .. '</b>'
elseif item.deprecated then
stat = msg('param-status-deprecated')
elseif item.suggested then
stat = msg('param-status-suggested')
end
renderCell(stat)
end
}
}
-- Initialize param info
-- Avoids having to add redundant information to the preceding tables
local function init( which )
local setDefault = function(v)
if v.t == nil and v.default ~= nil then
v.t = type( v.default )
end
if v.selection then
local selection = mw.text.split(v.selection, '|', true)
v.selection = {}
for _, sel in ipairs(selection) do
v.selection[sel] = true
end
end
end
for a, v in pairs( which ) do
setDefault(v)
end
end
local function initParamTables()
init( paraminfoTemplate )
init( paraminfoTLParams )
end
------------------------------------------------------
-------------------- USAGE PART ----------------------
------------------------------------------------------
function p.argcount( frame )
local pargs = ( frame:getParent() or {} ).args or {}
local ac = 0
for i, arg in pairs( pargs ) do
if ('number' == type(i)) then
ac = ac + 1
end
end
return ac
end
function p.usagesample( frame )
local pargs = ( frame:getParent() or {} ).args or {}
local multiline = (pargs.lines == 'multi' or pargs.print == 'multi' or pargs.print == 'infobox')
local align = pargs.print == 'infobox'
if not pargs.lines and not pargs.print and pargs.type == 'infobox' then
multiline = true
align = true
end
local sepStart = ' |'
local sepEnd = multiline and '\n' or ''
local sep = sepEnd
local subst = #(pargs.mustbesubst or '') > 0 and 'subst:' or ''
local beforeEqual = multiline and ' ' or ''
local equal = beforeEqual .. '= '
local templateTitle = pargs.name or ''
local args, argName, result = {}
local maxArgLen, eachArg = 0
sep = sep .. sepStart
local sparseIpairs = require('Module:TableTools').sparseIpairs
local comapareLegacyVal = function(val)
return val == 'optional-' or val == 'deprecated'
end
local shouldShow = function(i)
if comapareLegacyVal(pargs[i .. 'stat']) or
comapareLegacyVal(pargs[i .. 'stat-td']) or
pargs[i .. 'deprecated'] == true then
return false
end
return true
end
eachArg = function(cb)
for i, arg in sparseIpairs( pargs ) do
if ('number' == type(i)) then
argName = mw.text.trim( arg or '' )
if #argName == 0 then
argName = tostring(i)
end
if shouldShow(i) then
cb(argName)
end
end
end
end
if align then
eachArg(function( arg )
local argL = #arg
maxArgLen = argL > maxArgLen and argL or maxArgLen
end)
end
eachArg(function( arg )
local space = ''
if align then
space = (' '):rep(maxArgLen - #arg)
end
table.insert( args, argName .. space .. equal )
end)
if #args == 0 then
sep = ''
sepEnd = ''
sepStart = ''
end
if #templateTitle == 0 then
templateTitle = mw.title.getCurrentTitle().text
end
result = table.concat( args, sep )
result = table.concat({ mw.text.nowiki('{{'), subst, templateTitle, sep, result, sepEnd, '}}' })
if multiline then
-- Preserve whitespace in front of new lines
result = frame:callParserFunction{ name = '#tag', args = { 'poem', result } }
end
return result
end
------------------------------------------------------
------------------- GENERAL PART ---------------------
------------------------------------------------------
function p.args2table(args, onGetKey, consumer)
initParamTables()
local sets, asParamArray, laxtype, processParams, processDesc, unstrip
if 'paramtable' == consumer then
asParamArray = true
processParams = true
laxtype = true
elseif 'templatedata' == consumer then
sets = true
processParams = true
processDesc = true
unstrip = true
elseif 'description' == consumer then
processDesc = true
laxtype = true
end
-- All kind of strange stuff with the arguments is done, so play safe and make a copy
local pargs = mw.clone( args )
-- Array-like table containing all parameter-numbers that were passed
local templateArgs = {}
-- Arguments that are localized (i.e. the user passed 1desc-en=English description of parameter one)
local i18nTemplateArgs = {}
-- Ensure that tables end up as array/object (esp. when they are empty)
local tdata = {description="", params={}, sets={}}
local isObject = { __tostring = function() return "JSON object" end } isObject.__index = isObject
local isArray = { __tostring = function() return "JSON array" end } isArray.__index = isArray
setmetatable(tdata.params, isObject)
setmetatable(tdata.sets, isArray)
onGetKey = onGetKey or function( prefix, alias, param )
local key, key2, tdkey, tdkey2
key = prefix .. (alias or param)
key2 = prefix .. param
tdkey = key .. '-td'
tdkey2 = key2 .. '-td'
return tdkey, tdkey2, key, key2
end
local extractData = function( pi, number )
local prefix = number or ''
local ppv, paramVal
local key1, key2, key3, key4
local paramKey, paramTable, processKey
if number then
paramKey = mw.text.trim( pargs[number] )
if '' == paramKey then
paramKey = tostring( number )
end
paramTable = {}
if asParamArray then
paramTable.key = paramKey
table.insert(tdata.params, paramTable)
else
tdata.params[paramKey] = paramTable
end
end
for p, info in pairs( pi ) do
key1, key2, key3, key4 = onGetKey(prefix, info.alias, p)
paramVal = nil
processKey = function(key)
if paramVal ~= nil then return end
local plain, multilingual = pargs[key], i18nTemplateArgs[key]
paramVal = multilingual or plain
end
processKey( key1 )
processKey( key2 )
processKey( key3 )
processKey( key4 )
-- Ensure presence of entry in content language
ppv = pargs[key1] or pargs[key2] or pargs[key3] or pargs[key4] or info.default
if 'table' == type( paramVal ) then
if (nil == paramVal[contentLangcode]) then
paramVal[contentLangcode] = ppv
end
else
paramVal = ppv
end
if 'function' == type( info.extract ) then
if 'string' == type( paramVal ) then
paramVal = mw.text.trim( paramVal )
if '' == paramVal then
paramVal = nil
end
end
paramVal = info.extract( pargs, number, paramVal )
end
local insertValue = function()
if number then
paramTable[p] = paramVal
else
tdata[p] = paramVal
end
end
if info.selection then
if info.selection[paramVal] then
insertValue()
end
elseif 'InterfaceText' == info.t then
if ({ table=1, string=1 })[type( paramVal )] then
insertValue()
end
else
local paramType = type( paramVal )
if 'string' == info.t and 'string' == paramType then
paramVal = mw.text.trim( paramVal )
if '' ~= paramVal then
insertValue()
end
elseif 'boolean' == info.t then
paramVal = tobool(paramVal)
insertValue()
elseif 'number' == info.t then
paramVal = tonumber(paramVal)
insertValue()
elseif paramType == info.t then
insertValue()
elseif paramType == 'nil' then
-- Do nothing
elseif not laxtype and 'string' == info.t and 'table' == paramType then
-- Convert multilingual object into content language string
paramVal = paramVal[contentLangcode]
insertValue()
else
if laxtype then
insertValue()
else
error( p .. ': Is of type ' .. paramType .. ' but should be of type ' .. (info.t or 'unknown'), 1 )
end
end
end
end
-- Now, treat sets
if sets then
key1 = prefix .. 'set-td'
key2 = prefix .. 'set'
paramVal = pargs[key1] or pargs[key2]
if paramVal then
local found = false
for i, s in ipairs( tdata.sets ) do
if s.label == paramVal then
table.insert( s.params, p )
found = true
end
end
if not found then
table.insert( tdata.sets, {
label = paramVal,
params = { p }
} )
end
end
end
end
-- First, analyse the structure of the provided arguments
for a, v in pairs( pargs ) do
if unstrip then
v = mw.text.unstrip( v )
pargs[a] = v
end
if type( a ) == 'number' then
table.insert( templateArgs, a )
else
local argSplit = mw.text.split( a, '-', true )
local argUnitl = {}
local argAfter = {}
local isTDArg = false
local containsTD = a:find( '-td', 1, true )
for i, part in ipairs( argSplit ) do
if isTDArg or (containsTD == nil and i > 1) then
-- This is likely a language version
table.insert( argAfter, part )
else
table.insert( argUnitl, part )
end
if part == 'td' then
isTDArg = true
end
end
if #argAfter > 0 then
argUnitl = table.concat( argUnitl, '-' )
argAfter = table.concat( argAfter, '-' )
i18nTemplateArgs[argUnitl] = i18nTemplateArgs[argUnitl] or {}
i18nTemplateArgs[argUnitl][argAfter] = v
end
end
end
-- Then, start building the actual template
if processDesc then
extractData( paraminfoTemplate )
end
if processParams then
-- Ensure that `templateArgs` contains indicies in ascending order
table.sort( templateArgs )
for i, number in pairs( templateArgs ) do
extractData( paraminfoTLParams, number )
end
end
return tdata, #templateArgs
end
------------------------------------------------------
------------ CUSTOM PARAMETER TABLE PART -------------
------------------------------------------------------
-- A custom key-pref-function
local customOnGetKey = function( prefix, alias, param )
local key, key2, tdkey, tdkey2
key = prefix .. (alias or param)
key2 = prefix .. param
tdkey = key .. '-td'
tdkey2 = key2 .. '-td'
return key2, key, tdkey2, tdkey
end
local toUserLanguage = function(input)
if type(input) == 'table' then
input = require( 'Module:LangSwitch' )._langSwitch( input, userLang ) or ''
end
return input
end
function p.description(frame)
local pargs = ( frame:getParent() or {} ).args or {}
-- Initialize the language-related stuff
initLangModule(frame)
local tdata, paramLen
tdata, paramLen = p.args2table(pargs, customOnGetKey, 'description')
return toUserLanguage(tdata.description)
end
function p.paramtable(frame)
local pargs = ( frame:getParent() or {} ).args or {}
local tdata, paramLen
if 'only' == pargs.useTemplateData then
return 'param table - output suppressed'
end
-- Initialize the language-related stuff
initLangModule(frame)
tdata, paramLen = p.args2table(pargs, customOnGetKey, 'paramtable')
if 0 == paramLen then
return ''
end
local row, rows = '', {}
local renderCell = function(wikitext, colspan)
local colspan, oTd = colspan or 1, '<td>'
if colspan > 1 then
oTd = '<td colspan="' .. colspan .. '">'
end
row = table.concat({ row, oTd, wikitext, '</td>' })
end
-- Create the header
for i, field in ipairs( tableLayout ) do
local style = ' style="width:' .. field.width .. '"'
local colspan = ''
if field.cols then
colspan = ' colspan="' .. field.cols .. '"'
end
local th = '<th' .. style .. colspan .. '>'
row = row .. th .. msg(field.col) .. '</th>'
end
table.insert(rows, row)
-- Now transform the Lua-table into an HTML-table
for i, item in ipairs( tdata.params ) do
row = ''
for i2, field in ipairs( tableLayout ) do
field.extract(item, renderCell, toUserLanguage)
end
table.insert(rows, row)
end
return '<table class="wikitable templatebox-table"><tr>' .. table.concat(rows, '</tr><tr>') .. '</tr></table>'
end
------------------------------------------------------
----------------- TEMPLATEDATA PART ------------------
------------------------------------------------------
-- A real parser/transformer would look differently but it would likely be much more complex
-- The TemplateData-portion for [[Template:TemplateBox]]
function p.templatedata(frame)
local tdata
local args = frame.args or {}
local formatting = args.formatting
local pargs = ( frame:getParent() or {} ).args or {}
local useTemplateData = pargs.useTemplateData
if (formatting == 'pretty' and useTemplateData ~= 'export') or
(not useTemplateData) or
(useTemplateData == 'export' and formatting ~= 'pretty') then
local warning = "Warning: Module:TemplateBox - templatedata invoked but not requested by user (setting useTemplateData=1)."
mw.log(warning)
tdata = '{"description":"' .. warning .. '","params":{},"sets":[]}'
return tdata
end
-- Load the JSON-Module which will convert LUA tables into valid JSON
local JSON = require('Module:JSON')
JSON.strictTypes = true
-- Obtain the object containing info
tdata = p.args2table(pargs, nil, 'templatedata')
-- And finally return the result
if formatting == 'pretty' then
return JSON:encode_pretty(tdata)
else
return JSON:encode(tdata)
end
end
return p
lq3ttl7b8yfpr6ylrpjfuvykdq3wtw3
74538
74537
2026-09-10T15:30:01Z
B722N
6898
1 revision imported from [[:commons:Module:TemplateBox]]: Importing the Support template
74537
Scribunto
text/plain
require('strict')
--[[
@exports
usagesample( frame )
argcount( frame )
args2table( args, onGetKey, forCustom )
paramtable( frame )
description( frame )
templatedata( frame )
]]
local p = {}
-- Helper function, not exposed
local function tobool(st)
if type( st ) == 'string' then
return st == 'true'
else
return not not st
end
end
-- Required to determine in which languages the interface texts without langcode are
local contentLangcode = mw.language.getContentLanguage():getCode()
-- Forward declaration
local msg, langIsInit, userLang
local messagePrefix = "templatedata-doc-"
local i18n = {}
i18n['params'] = "Template parameters"
i18n['param-name'] = "Parameter"
i18n['param-desc'] = "Description"
i18n['param-type'] = "Type"
i18n['param-default'] = "Default"
i18n['param-status'] = "Status"
i18n['param-status-optional'] = "optional"
i18n['param-status-required'] = "required"
i18n['param-status-suggested'] = "suggested"
i18n['param-status-deprecated'] = "deprecated"
i18n['param-default-empty'] = "empty"
local function initLangModule(frame)
if langIsInit then
return
end
userLang = frame:preprocess( '{{int:lang}}' )
--! From [[:de:Modul:Expr]]; by [[:de:User:PerfektesChaos]];
--! Derivative work: Rillke
msg = function( key )
-- Retrieve localized message string in content language
-- Precondition:
-- key -- string; message ID
-- Postcondition:
-- Return some message string
-- Uses:
-- > messagePrefix
-- > i18n
-- > userLang
-- mw.message.new()
local m = mw.message.new( messagePrefix .. key )
local r = false
if m:isBlank() then
r = i18n[ key ]
else
m:inLanguage( userLang )
r = m:plain()
end
if not r then
r = '((('.. key .. ')))'
end
return r
end -- msg()
langIsInit = true
end
-- A "hash" / table of everything TemplateData takes
-- to ease maintenance.
-- The type is automatically determined if t is omitted.
-- If the type does not match or can't be converted, an error will be thrown!
-- Available types (LUA-Types with exceptions):
-- InterfaceText, boolean, number, selection, table, string
-- selection*: - requires a selection-string of pipe-separated possibilities to be supplied
-- InterfaceText*: A free-form string (no wikitext) in the content-language of the wiki, or,
-- an object containing those strings keyed by language code.
local paraminfoTemplate = {
description = {
default = '',
t = 'InterfaceText',
alias = 'desc'
},
format = {
default = 'inline',
t = 'selection',
selection = 'inline|block',
alias = 'print',
extract = function(pargs, number, paramVal)
local m = { multi = 'block', one = 'inline', infobox = 'block' }
return m[paramVal] or 'inline'
end
}
}
local paraminfoTLParams = {
label = {
default = '',
t = 'InterfaceText'
},
required = {
default = false,
extract = function(pargs, number, paramVal)
local req = (pargs[number .. 'stat'] == 'required')
return tobool( paramVal or req )
end
},
suggested = {
default = false,
extract = function(pargs, number, paramVal)
local sugg = (pargs[number .. 'stat'] == 'suggested')
return tobool( paramVal or sugg )
end
},
description = {
default = '',
t = 'InterfaceText',
alias = 'd'
},
deprecated = {
default = false,
extract = function(pargs, number, paramVal)
local depr = (pargs[number .. 'stat'] == 'deprecated')
return tobool( paramVal or depr )
end
},
aliases = {
default = '',
t = 'table',
extract = function(pargs, number, paramVal)
local key = number .. 'aliases'
local tdkey = key .. '-td'
local aliases = pargs[tdkey] or pargs[key]
if aliases and mw.text.trim( aliases ) ~= '' then
local cleaned = {}
for m in mw.text.gsplit( aliases, '/', true ) do
cleaned[#cleaned+1] = mw.text.trim(m)
end
return cleaned
else
return nil
end
end
},
default = {
default = '',
t = 'string',
alias = 'def'
},
type = {
default = 'unknown',
t = 'selection',
selection = 'unknown|number|string|string/wiki-user-name|string/wiki-page-name|string/line|line|wiki-page-name|wiki-file-name|wiki-user-name|wiki-template-name|content|unbalanced-wikitext|date|url|boolean'
},
inherits = {
default = nil,
t = 'string'
},
autovalue = {
default = '',
t = 'string',
alias = 'av',
},
suggestedvalues = {
default = '',
t = 'table',
alias = 'sv',
extract = function(pargs, number, paramVal)
if paramVal == nil then
return nil
end
local cleaned = {}
for m in mw.text.gsplit( paramVal, '/', true ) do
cleaned[#cleaned+1] = mw.text.trim(m)
end
return cleaned
end,
},
-- sets will be treated differently because we can only have a plain structure in wikitext
}
local tableLayout = {
{
col = 'param-name',
width = '15%',
extract = function(item, renderCell, monolingual)
local alias, param = '', item.key
local aliasTT = '<span style="font-family: monospace; color:#777; border:1px solid #6A6A6A">'
param = '<code>' .. param .. '</code>'
if item.aliases then
alias = aliasTT .. table.concat(item.aliases, '</span><br />' .. aliasTT) .. '</span>'
param = table.concat({param, '<br /><div>', alias, '</div>'})
end
renderCell(param)
end
}, {
col = 'param-desc',
cols = 2,
width = '65%',
extract = function(item, renderCell, monolingual)
local label = item.label or ''
label = monolingual(label)
local labelLen = #label
local colspan = 2 - labelLen
if labelLen > 0 then
renderCell(label)
end
renderCell(monolingual(item.description), colspan)
end
}, {
col = 'param-default',
width = '10%',
extract = function(item, renderCell, monolingual)
local def = monolingual(item.default) or ''
if #def == 0 then
def = '<span class="mw-templatedata-doc-muted" style="color:#777; font-variant:small-caps">' .. msg('param-default-empty') .. '</span>'
end
renderCell(def)
end
}, {
col = 'param-status',
width = '10%',
extract = function(item, renderCell, monolingual)
local stat = msg('param-status-optional')
if item.required then
stat = '<b>' .. msg('param-status-required') .. '</b>'
elseif item.deprecated then
stat = msg('param-status-deprecated')
elseif item.suggested then
stat = msg('param-status-suggested')
end
renderCell(stat)
end
}
}
-- Initialize param info
-- Avoids having to add redundant information to the preceding tables
local function init( which )
local setDefault = function(v)
if v.t == nil and v.default ~= nil then
v.t = type( v.default )
end
if v.selection then
local selection = mw.text.split(v.selection, '|', true)
v.selection = {}
for _, sel in ipairs(selection) do
v.selection[sel] = true
end
end
end
for a, v in pairs( which ) do
setDefault(v)
end
end
local function initParamTables()
init( paraminfoTemplate )
init( paraminfoTLParams )
end
------------------------------------------------------
-------------------- USAGE PART ----------------------
------------------------------------------------------
function p.argcount( frame )
local pargs = ( frame:getParent() or {} ).args or {}
local ac = 0
for i, arg in pairs( pargs ) do
if ('number' == type(i)) then
ac = ac + 1
end
end
return ac
end
function p.usagesample( frame )
local pargs = ( frame:getParent() or {} ).args or {}
local multiline = (pargs.lines == 'multi' or pargs.print == 'multi' or pargs.print == 'infobox')
local align = pargs.print == 'infobox'
if not pargs.lines and not pargs.print and pargs.type == 'infobox' then
multiline = true
align = true
end
local sepStart = ' |'
local sepEnd = multiline and '\n' or ''
local sep = sepEnd
local subst = #(pargs.mustbesubst or '') > 0 and 'subst:' or ''
local beforeEqual = multiline and ' ' or ''
local equal = beforeEqual .. '= '
local templateTitle = pargs.name or ''
local args, argName, result = {}
local maxArgLen, eachArg = 0
sep = sep .. sepStart
local sparseIpairs = require('Module:TableTools').sparseIpairs
local comapareLegacyVal = function(val)
return val == 'optional-' or val == 'deprecated'
end
local shouldShow = function(i)
if comapareLegacyVal(pargs[i .. 'stat']) or
comapareLegacyVal(pargs[i .. 'stat-td']) or
pargs[i .. 'deprecated'] == true then
return false
end
return true
end
eachArg = function(cb)
for i, arg in sparseIpairs( pargs ) do
if ('number' == type(i)) then
argName = mw.text.trim( arg or '' )
if #argName == 0 then
argName = tostring(i)
end
if shouldShow(i) then
cb(argName)
end
end
end
end
if align then
eachArg(function( arg )
local argL = #arg
maxArgLen = argL > maxArgLen and argL or maxArgLen
end)
end
eachArg(function( arg )
local space = ''
if align then
space = (' '):rep(maxArgLen - #arg)
end
table.insert( args, argName .. space .. equal )
end)
if #args == 0 then
sep = ''
sepEnd = ''
sepStart = ''
end
if #templateTitle == 0 then
templateTitle = mw.title.getCurrentTitle().text
end
result = table.concat( args, sep )
result = table.concat({ mw.text.nowiki('{{'), subst, templateTitle, sep, result, sepEnd, '}}' })
if multiline then
-- Preserve whitespace in front of new lines
result = frame:callParserFunction{ name = '#tag', args = { 'poem', result } }
end
return result
end
------------------------------------------------------
------------------- GENERAL PART ---------------------
------------------------------------------------------
function p.args2table(args, onGetKey, consumer)
initParamTables()
local sets, asParamArray, laxtype, processParams, processDesc, unstrip
if 'paramtable' == consumer then
asParamArray = true
processParams = true
laxtype = true
elseif 'templatedata' == consumer then
sets = true
processParams = true
processDesc = true
unstrip = true
elseif 'description' == consumer then
processDesc = true
laxtype = true
end
-- All kind of strange stuff with the arguments is done, so play safe and make a copy
local pargs = mw.clone( args )
-- Array-like table containing all parameter-numbers that were passed
local templateArgs = {}
-- Arguments that are localized (i.e. the user passed 1desc-en=English description of parameter one)
local i18nTemplateArgs = {}
-- Ensure that tables end up as array/object (esp. when they are empty)
local tdata = {description="", params={}, sets={}}
local isObject = { __tostring = function() return "JSON object" end } isObject.__index = isObject
local isArray = { __tostring = function() return "JSON array" end } isArray.__index = isArray
setmetatable(tdata.params, isObject)
setmetatable(tdata.sets, isArray)
onGetKey = onGetKey or function( prefix, alias, param )
local key, key2, tdkey, tdkey2
key = prefix .. (alias or param)
key2 = prefix .. param
tdkey = key .. '-td'
tdkey2 = key2 .. '-td'
return tdkey, tdkey2, key, key2
end
local extractData = function( pi, number )
local prefix = number or ''
local ppv, paramVal
local key1, key2, key3, key4
local paramKey, paramTable, processKey
if number then
paramKey = mw.text.trim( pargs[number] )
if '' == paramKey then
paramKey = tostring( number )
end
paramTable = {}
if asParamArray then
paramTable.key = paramKey
table.insert(tdata.params, paramTable)
else
tdata.params[paramKey] = paramTable
end
end
for p, info in pairs( pi ) do
key1, key2, key3, key4 = onGetKey(prefix, info.alias, p)
paramVal = nil
processKey = function(key)
if paramVal ~= nil then return end
local plain, multilingual = pargs[key], i18nTemplateArgs[key]
paramVal = multilingual or plain
end
processKey( key1 )
processKey( key2 )
processKey( key3 )
processKey( key4 )
-- Ensure presence of entry in content language
ppv = pargs[key1] or pargs[key2] or pargs[key3] or pargs[key4] or info.default
if 'table' == type( paramVal ) then
if (nil == paramVal[contentLangcode]) then
paramVal[contentLangcode] = ppv
end
else
paramVal = ppv
end
if 'function' == type( info.extract ) then
if 'string' == type( paramVal ) then
paramVal = mw.text.trim( paramVal )
if '' == paramVal then
paramVal = nil
end
end
paramVal = info.extract( pargs, number, paramVal )
end
local insertValue = function()
if number then
paramTable[p] = paramVal
else
tdata[p] = paramVal
end
end
if info.selection then
if info.selection[paramVal] then
insertValue()
end
elseif 'InterfaceText' == info.t then
if ({ table=1, string=1 })[type( paramVal )] then
insertValue()
end
else
local paramType = type( paramVal )
if 'string' == info.t and 'string' == paramType then
paramVal = mw.text.trim( paramVal )
if '' ~= paramVal then
insertValue()
end
elseif 'boolean' == info.t then
paramVal = tobool(paramVal)
insertValue()
elseif 'number' == info.t then
paramVal = tonumber(paramVal)
insertValue()
elseif paramType == info.t then
insertValue()
elseif paramType == 'nil' then
-- Do nothing
elseif not laxtype and 'string' == info.t and 'table' == paramType then
-- Convert multilingual object into content language string
paramVal = paramVal[contentLangcode]
insertValue()
else
if laxtype then
insertValue()
else
error( p .. ': Is of type ' .. paramType .. ' but should be of type ' .. (info.t or 'unknown'), 1 )
end
end
end
end
-- Now, treat sets
if sets then
key1 = prefix .. 'set-td'
key2 = prefix .. 'set'
paramVal = pargs[key1] or pargs[key2]
if paramVal then
local found = false
for i, s in ipairs( tdata.sets ) do
if s.label == paramVal then
table.insert( s.params, p )
found = true
end
end
if not found then
table.insert( tdata.sets, {
label = paramVal,
params = { p }
} )
end
end
end
end
-- First, analyse the structure of the provided arguments
for a, v in pairs( pargs ) do
if unstrip then
v = mw.text.unstrip( v )
pargs[a] = v
end
if type( a ) == 'number' then
table.insert( templateArgs, a )
else
local argSplit = mw.text.split( a, '-', true )
local argUnitl = {}
local argAfter = {}
local isTDArg = false
local containsTD = a:find( '-td', 1, true )
for i, part in ipairs( argSplit ) do
if isTDArg or (containsTD == nil and i > 1) then
-- This is likely a language version
table.insert( argAfter, part )
else
table.insert( argUnitl, part )
end
if part == 'td' then
isTDArg = true
end
end
if #argAfter > 0 then
argUnitl = table.concat( argUnitl, '-' )
argAfter = table.concat( argAfter, '-' )
i18nTemplateArgs[argUnitl] = i18nTemplateArgs[argUnitl] or {}
i18nTemplateArgs[argUnitl][argAfter] = v
end
end
end
-- Then, start building the actual template
if processDesc then
extractData( paraminfoTemplate )
end
if processParams then
-- Ensure that `templateArgs` contains indicies in ascending order
table.sort( templateArgs )
for i, number in pairs( templateArgs ) do
extractData( paraminfoTLParams, number )
end
end
return tdata, #templateArgs
end
------------------------------------------------------
------------ CUSTOM PARAMETER TABLE PART -------------
------------------------------------------------------
-- A custom key-pref-function
local customOnGetKey = function( prefix, alias, param )
local key, key2, tdkey, tdkey2
key = prefix .. (alias or param)
key2 = prefix .. param
tdkey = key .. '-td'
tdkey2 = key2 .. '-td'
return key2, key, tdkey2, tdkey
end
local toUserLanguage = function(input)
if type(input) == 'table' then
input = require( 'Module:LangSwitch' )._langSwitch( input, userLang ) or ''
end
return input
end
function p.description(frame)
local pargs = ( frame:getParent() or {} ).args or {}
-- Initialize the language-related stuff
initLangModule(frame)
local tdata, paramLen
tdata, paramLen = p.args2table(pargs, customOnGetKey, 'description')
return toUserLanguage(tdata.description)
end
function p.paramtable(frame)
local pargs = ( frame:getParent() or {} ).args or {}
local tdata, paramLen
if 'only' == pargs.useTemplateData then
return 'param table - output suppressed'
end
-- Initialize the language-related stuff
initLangModule(frame)
tdata, paramLen = p.args2table(pargs, customOnGetKey, 'paramtable')
if 0 == paramLen then
return ''
end
local row, rows = '', {}
local renderCell = function(wikitext, colspan)
local colspan, oTd = colspan or 1, '<td>'
if colspan > 1 then
oTd = '<td colspan="' .. colspan .. '">'
end
row = table.concat({ row, oTd, wikitext, '</td>' })
end
-- Create the header
for i, field in ipairs( tableLayout ) do
local style = ' style="width:' .. field.width .. '"'
local colspan = ''
if field.cols then
colspan = ' colspan="' .. field.cols .. '"'
end
local th = '<th' .. style .. colspan .. '>'
row = row .. th .. msg(field.col) .. '</th>'
end
table.insert(rows, row)
-- Now transform the Lua-table into an HTML-table
for i, item in ipairs( tdata.params ) do
row = ''
for i2, field in ipairs( tableLayout ) do
field.extract(item, renderCell, toUserLanguage)
end
table.insert(rows, row)
end
return '<table class="wikitable templatebox-table"><tr>' .. table.concat(rows, '</tr><tr>') .. '</tr></table>'
end
------------------------------------------------------
----------------- TEMPLATEDATA PART ------------------
------------------------------------------------------
-- A real parser/transformer would look differently but it would likely be much more complex
-- The TemplateData-portion for [[Template:TemplateBox]]
function p.templatedata(frame)
local tdata
local args = frame.args or {}
local formatting = args.formatting
local pargs = ( frame:getParent() or {} ).args or {}
local useTemplateData = pargs.useTemplateData
if (formatting == 'pretty' and useTemplateData ~= 'export') or
(not useTemplateData) or
(useTemplateData == 'export' and formatting ~= 'pretty') then
local warning = "Warning: Module:TemplateBox - templatedata invoked but not requested by user (setting useTemplateData=1)."
mw.log(warning)
tdata = '{"description":"' .. warning .. '","params":{},"sets":[]}'
return tdata
end
-- Load the JSON-Module which will convert LUA tables into valid JSON
local JSON = require('Module:JSON')
JSON.strictTypes = true
-- Obtain the object containing info
tdata = p.args2table(pargs, nil, 'templatedata')
-- And finally return the result
if formatting == 'pretty' then
return JSON:encode_pretty(tdata)
else
return JSON:encode(tdata)
end
end
return p
lq3ttl7b8yfpr6ylrpjfuvykdq3wtw3
Template:Hatnote/styles.css
10
15815
74543
2020-06-23T03:10:53Z
Great Brightstar
11752
74543
sanitized-css
text/css
.hatnote {
font-style: italic;
}
.hatnote i,
.hatnote.noitalic {
font-style: normal;
}
div.hatnote {
padding-left: 1.6em;
margin-bottom: 0.5em;
}
div.hatnote + div.hatnote {
margin-top: -0.5em;
}
/* https://phabricator.wikimedia.org/T180396#5317728 */
@media print {
.hatnote {
display: none;
}
}
ofp8h3ha89g7h8348miovtl3qe0nu8b
74544
74543
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Template:Hatnote/styles.css]]: Importing the Support template
74543
sanitized-css
text/css
.hatnote {
font-style: italic;
}
.hatnote i,
.hatnote.noitalic {
font-style: normal;
}
div.hatnote {
padding-left: 1.6em;
margin-bottom: 0.5em;
}
div.hatnote + div.hatnote {
margin-top: -0.5em;
}
/* https://phabricator.wikimedia.org/T180396#5317728 */
@media print {
.hatnote {
display: none;
}
}
ofp8h3ha89g7h8348miovtl3qe0nu8b
Template:Protected
10
15816
74545
2025-06-24T14:36:10Z
Jarekt
11742
Fulfilling [[Template:Edit request|edit request]] by [[User:WOSlinker|WOSlinker]].
74545
wikitext
text/x-wiki
{{#switch:{{{demo-edit|{{PROTECTIONLEVEL:edit}}}}}
| sysop=
{{#ifeq:{{{icon}}}|no||<indicator name="protected">[[File:Full-protection-shackle-block.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text1}}]]</indicator>}}
<table class="protected" style="direction: {{#dir:{{int:Lang}}}}; background:var(--background-color-base,#fff); border:1px solid var(--border-color-base, #aaa); color: inherit; padding:.2em; margin:.5em auto;">
<tr>
<td style="padding-right:4px; padding-left:4px;">[[File:Full-protection-shackle-block.svg|40px|link=COM:P|Protected]]</td>
<td>'''{{{{tSwitch|protected/text}}|text1}} {{#if:{{{1|}}}|{{{{tSwitch|protected/text}}|reason|reason={{{1}}}}}|{{{{tSwitch|protected/text}}|default-reason}}}}'''<br /><span style="font-size:90%;">{{{note|{{{{tSwitch|protected/text}}|text2}} }}}</span></td>
</tr>
</table>{{#if:{{{demo-edit|}}}{{{demo-upload|}}}||{{{category|{{#switch:{{NAMESPACE}}|{{ns:6}}=[[Category:Protected files]]|{{ns:2}}|{{ns:3}}|{{ns:10}}=|[[Category:Protected pages]]}} }}} }}
| templateeditor=
<indicator name="protected">[[File:Template-protection-shackle-brackets 2.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text1}}]]</indicator>
| editautopatrolprotected =
<indicator name="protected">[[File:Extended-protection-shackle-account-pro-plus.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text1}}]]</indicator>
| autoconfirmed=
<indicator name="protected">[[File:Semi-protection-shackle.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text2}}]]</indicator>
| #default=
{{#ifeq:{{NAMESPACE}}|{{{demo-ns|{{ns:6}}}}}
| {{#switch:{{{demo-upload|{{PROTECTIONLEVEL:upload}}}}}
| sysop=
<indicator name="protected">[[File:Upload-protection-shackle.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text3}}]]</indicator>{{#if:{{{demo-edit|}}}{{{demo-upload|}}}||{{{category|[[Category:Upload protected files]]}}} }}
| autoconfirmed=
<indicator name="protected">[[File:Semi-protection-shackle.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text4}}]]</indicator>
| #default={{ifsandbox|1=|2=
<div class="error">{{{{tSwitch|protected/text}}|error-text}}</div>{{#if:{{{demo-edit|}}}{{{demo-upload|}}}||{{{category|[[Category:Unprotected pages using protection templates]]}}} }}}}
}}
|{{ifsandbox|1=|2=<div class="error">{{{{tSwitch|protected/text}}|error-text}}</div>{{#if:{{{demo-edit|}}}{{{demo-upload|}}}||{{{category|[[Category:Unprotected pages using protection templates]]}}} }}}}
}}
}}<noinclude>
{{documentation}}
</noinclude>
5kmjaainuxuugszozwto8567j5by9zi
74546
74545
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Template:Protected]]: Importing the Support template
74545
wikitext
text/x-wiki
{{#switch:{{{demo-edit|{{PROTECTIONLEVEL:edit}}}}}
| sysop=
{{#ifeq:{{{icon}}}|no||<indicator name="protected">[[File:Full-protection-shackle-block.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text1}}]]</indicator>}}
<table class="protected" style="direction: {{#dir:{{int:Lang}}}}; background:var(--background-color-base,#fff); border:1px solid var(--border-color-base, #aaa); color: inherit; padding:.2em; margin:.5em auto;">
<tr>
<td style="padding-right:4px; padding-left:4px;">[[File:Full-protection-shackle-block.svg|40px|link=COM:P|Protected]]</td>
<td>'''{{{{tSwitch|protected/text}}|text1}} {{#if:{{{1|}}}|{{{{tSwitch|protected/text}}|reason|reason={{{1}}}}}|{{{{tSwitch|protected/text}}|default-reason}}}}'''<br /><span style="font-size:90%;">{{{note|{{{{tSwitch|protected/text}}|text2}} }}}</span></td>
</tr>
</table>{{#if:{{{demo-edit|}}}{{{demo-upload|}}}||{{{category|{{#switch:{{NAMESPACE}}|{{ns:6}}=[[Category:Protected files]]|{{ns:2}}|{{ns:3}}|{{ns:10}}=|[[Category:Protected pages]]}} }}} }}
| templateeditor=
<indicator name="protected">[[File:Template-protection-shackle-brackets 2.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text1}}]]</indicator>
| editautopatrolprotected =
<indicator name="protected">[[File:Extended-protection-shackle-account-pro-plus.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text1}}]]</indicator>
| autoconfirmed=
<indicator name="protected">[[File:Semi-protection-shackle.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text2}}]]</indicator>
| #default=
{{#ifeq:{{NAMESPACE}}|{{{demo-ns|{{ns:6}}}}}
| {{#switch:{{{demo-upload|{{PROTECTIONLEVEL:upload}}}}}
| sysop=
<indicator name="protected">[[File:Upload-protection-shackle.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text3}}]]</indicator>{{#if:{{{demo-edit|}}}{{{demo-upload|}}}||{{{category|[[Category:Upload protected files]]}}} }}
| autoconfirmed=
<indicator name="protected">[[File:Semi-protection-shackle.svg|20px|link=Special:MyLanguage/Commons:Protection policy|{{{{tSwitch|protected/text}}|img-text4}}]]</indicator>
| #default={{ifsandbox|1=|2=
<div class="error">{{{{tSwitch|protected/text}}|error-text}}</div>{{#if:{{{demo-edit|}}}{{{demo-upload|}}}||{{{category|[[Category:Unprotected pages using protection templates]]}}} }}}}
}}
|{{ifsandbox|1=|2=<div class="error">{{{{tSwitch|protected/text}}|error-text}}</div>{{#if:{{{demo-edit|}}}{{{demo-upload|}}}||{{{category|[[Category:Unprotected pages using protection templates]]}}} }}}}
}}
}}<noinclude>
{{documentation}}
</noinclude>
5kmjaainuxuugszozwto8567j5by9zi
Template:Protected/text/en
10
15817
74547
2021-08-11T00:01:10Z
FuzzyBot
6845
Updating to match new version of source page
74547
wikitext
text/x-wiki
<languages />
<onlyinclude>{{#switch:{{{1}}}
|text1=This {{namespace}} has been protected
|default-reason=from editing to prevent vandalism.
|reason=because {{{reason}}}.
|text2=Please discuss changes on the [[{{TALKPAGENAME}}|talk page]] or [[COM:AN/P|request unprotection]].
|img-text1=This page is protected against editing.
|img-text2=This page is semi-protected against editing.
|img-text3=This page is protected against reuploading.
|img-text4=This page is semi-protected against reuploading.
|img-text5=This page is template protected against editing.
|error-text=Error: This page is not currently protected. Please [[COM:AN/P|request protection]] or remove the protection template.
}}</onlyinclude>
{{translated tag|protection}}
a8hctd2og10pss98b6165t99nma6npo
74548
74547
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Template:Protected/text/en]]: Importing the Support template
74547
wikitext
text/x-wiki
<languages />
<onlyinclude>{{#switch:{{{1}}}
|text1=This {{namespace}} has been protected
|default-reason=from editing to prevent vandalism.
|reason=because {{{reason}}}.
|text2=Please discuss changes on the [[{{TALKPAGENAME}}|talk page]] or [[COM:AN/P|request unprotection]].
|img-text1=This page is protected against editing.
|img-text2=This page is semi-protected against editing.
|img-text3=This page is protected against reuploading.
|img-text4=This page is semi-protected against reuploading.
|img-text5=This page is template protected against editing.
|error-text=Error: This page is not currently protected. Please [[COM:AN/P|request protection]] or remove the protection template.
}}</onlyinclude>
{{translated tag|protection}}
a8hctd2og10pss98b6165t99nma6npo
Template:TSwitch
10
15818
74549
2011-07-03T11:55:09Z
Rd232
11753
[[Category:Internationalization templates]]
74549
wikitext
text/x-wiki
{{{1}}}/{{#ifexist:Template:{{{1}}}/{{int:lang}}|{{int:lang}}|{{CONTENTLANG}}}}<noinclude>
{{documentation}}
[[Category:Internationalization templates]]
</noinclude>
fspzjhnvtdgna6dqto4p5wevtobyfgc
74550
74549
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Template:TSwitch]]: Importing the Support template
74549
wikitext
text/x-wiki
{{{1}}}/{{#ifexist:Template:{{{1}}}/{{int:lang}}|{{int:lang}}|{{CONTENTLANG}}}}<noinclude>
{{documentation}}
[[Category:Internationalization templates]]
</noinclude>
fspzjhnvtdgna6dqto4p5wevtobyfgc
Module:JSON
828
15819
74551
2019-07-16T11:19:14Z
4nn1l2
4271
Changed protection level for "[[Module:JSON]]": downgraded protection level per [[Special:Permalink/357548402|consensus]] ([Move=Allow only template editors and administrators] (indefinite) [Edit=Allow only template editors and administrators] (indefinite))
74551
Scribunto
text/plain
-- -*- coding: utf-8 -*-
--
-- Copyright 2010-2012 Jeffrey Friedl
-- http://regex.info/blog/
--
local VERSION = 20111207.5 -- version history at end of file
local OBJDEF = { VERSION = VERSION }
--
-- Simple JSON encoding and decoding in pure Lua.
-- http://www.json.org/
--
--
-- JSON = (loadfile "JSON.lua")() -- one-time load of the routines
--
-- local lua_value = JSON:decode(raw_json_text)
--
-- local raw_json_text = JSON:encode(lua_table_or_value)
-- local pretty_json_text = JSON:encode_pretty(lua_table_or_value) -- "pretty printed" version for human readability
--
--
-- DECODING
--
-- JSON = (loadfile "JSON.lua")() -- one-time load of the routines
--
-- local lua_value = JSON:decode(raw_json_text)
--
-- If the JSON text is for an object or an array, e.g.
-- { "what": "books", "count": 3 }
-- or
-- [ "Larry", "Curly", "Moe" ]
--
-- the result is a Lua table, e.g.
-- { what = "books", count = 3 }
-- or
-- { "Larry", "Curly", "Moe" }
--
--
-- The encode and decode routines accept an optional second argument, "etc", which is not used
-- during encoding or decoding, but upon error is passed along to error handlers. It can be of any
-- type (including nil).
--
-- With most errors during decoding, this code calls
--
-- JSON:onDecodeError(message, text, location, etc)
--
-- with a message about the error, and if known, the JSON text being parsed and the byte count
-- where the problem was discovered. You can replace the default JSON:onDecodeError() with your
-- own function.
--
-- The default onDecodeError() merely augments the message with data about the text and the
-- location if known (and if a second 'etc' argument had been provided to decode(), its value is
-- tacked onto the message as well), and then calls JSON.assert(), which itself defaults to Lua's
-- built-in assert(), and can also be overridden.
--
-- For example, in an Adobe Lightroom plugin, you might use something like
--
-- function JSON:onDecodeError(message, text, location, etc)
-- LrErrors.throwUserError("Internal Error: invalid JSON data")
-- end
--
-- or even just
--
-- function JSON.assert(message)
-- LrErrors.throwUserError("Internal Error: " .. message)
-- end
--
-- If JSON:decode() is passed a nil, this is called instead:
--
-- JSON:onDecodeOfNilError(message, nil, nil, etc)
--
-- and if JSON:decode() is passed HTML instead of JSON, this is called:
--
-- JSON:onDecodeOfHTMLError(message, text, nil, etc)
--
-- The use of the fourth 'etc' argument allows stronger coordination between decoding and error
-- reporting, especially when you provide your own error-handling routines. Continuing with the
-- the Adobe Lightroom plugin example:
--
-- function JSON:onDecodeError(message, text, location, etc)
-- local note = "Internal Error: invalid JSON data"
-- if type(etc) = 'table' and etc.photo then
-- note = note .. " while processing for " .. etc.photo:getFormattedMetadata('fileName')
-- end
-- LrErrors.throwUserError(note)
-- end
--
-- :
-- :
--
-- for i, photo in ipairs(photosToProcess) do
-- :
-- :
-- local data = JSON:decode(someJsonText, { photo = photo })
-- :
-- :
-- end
--
--
--
--
-- DECODING AND STRICT TYPES
--
-- Because both JSON objects and JSON arrays are converted to Lua tables, it's not normally
-- possible to tell which a Lua table came from, or guarantee decode-encode round-trip
-- equivalency.
--
-- However, if you enable strictTypes, e.g.
--
-- JSON = (loadfile "JSON.lua")() --load the routines
-- JSON.strictTypes = true
--
-- then the Lua table resulting from the decoding of a JSON object or JSON array is marked via Lua
-- metatable, so that when re-encoded with JSON:encode() it ends up as the appropriate JSON type.
--
-- (This is not the default because other routines may not work well with tables that have a
-- metatable set, for example, Lightroom API calls.)
--
--
-- ENCODING
--
-- JSON = (loadfile "JSON.lua")() -- one-time load of the routines
--
-- local raw_json_text = JSON:encode(lua_table_or_value)
-- local pretty_json_text = JSON:encode_pretty(lua_table_or_value) -- "pretty printed" version for human readability
-- On error during encoding, this code calls:
--
-- JSON:onEncodeError(message, etc)
--
-- which you can override in your local JSON object.
--
--
-- SUMMARY OF METHODS YOU CAN OVERRIDE IN YOUR LOCAL LUA JSON OBJECT
--
-- assert
-- onDecodeError
-- onDecodeOfNilError
-- onDecodeOfHTMLError
-- onEncodeError
--
-- If you want to create a separate Lua JSON object with its own error handlers,
-- you can reload JSON.lua or use the :new() method.
--
---------------------------------------------------------------------------
local author = "-[ JSON.lua package by Jeffrey Friedl (http://regex.info/blog/lua/json), version " .. tostring(VERSION) .. " ]-"
local isArray = { __tostring = function() return "JSON array" end } isArray.__index = isArray
local isObject = { __tostring = function() return "JSON object" end } isObject.__index = isObject
function OBJDEF:newArray(tbl)
return setmetatable(tbl or {}, isArray)
end
function OBJDEF:newObject(tbl)
return setmetatable(tbl or {}, isObject)
end
local function unicode_codepoint_as_utf8(codepoint)
--
-- codepoint is a number
--
if codepoint <= 127 then
return string.char(codepoint)
elseif codepoint <= 2047 then
--
-- 110yyyxx 10xxxxxx <-- useful notation from http://en.wikipedia.org/wiki/Utf8
--
local highpart = math.floor(codepoint / 0x40)
local lowpart = codepoint - (0x40 * highpart)
return string.char(0xC0 + highpart,
0x80 + lowpart)
elseif codepoint <= 65535 then
--
-- 1110yyyy 10yyyyxx 10xxxxxx
--
local highpart = math.floor(codepoint / 0x1000)
local remainder = codepoint - 0x1000 * highpart
local midpart = math.floor(remainder / 0x40)
local lowpart = remainder - 0x40 * midpart
highpart = 0xE0 + highpart
midpart = 0x80 + midpart
lowpart = 0x80 + lowpart
--
-- Check for an invalid character (thanks Andy R. at Adobe).
-- See table 3.7, page 93, in http://www.unicode.org/versions/Unicode5.2.0/ch03.pdf#G28070
--
if ( highpart == 0xE0 and midpart < 0xA0 ) or
( highpart == 0xED and midpart > 0x9F ) or
( highpart == 0xF0 and midpart < 0x90 ) or
( highpart == 0xF4 and midpart > 0x8F )
then
return "?"
else
return string.char(highpart,
midpart,
lowpart)
end
else
--
-- 11110zzz 10zzyyyy 10yyyyxx 10xxxxxx
--
local highpart = math.floor(codepoint / 0x40000)
local remainder = codepoint - 0x40000 * highpart
local midA = math.floor(remainder / 0x1000)
remainder = remainder - 0x1000 * midA
local midB = math.floor(remainder / 0x40)
local lowpart = remainder - 0x40 * midB
return string.char(0xF0 + highpart,
0x80 + midA,
0x80 + midB,
0x80 + lowpart)
end
end
function OBJDEF:onDecodeError(message, text, location, etc)
if text then
if location then
message = string.format("%s at char %d of: %s", message, location, text)
else
message = string.format("%s: %s", message, text)
end
end
if etc ~= nil then
message = message .. " (" .. OBJDEF:encode(etc) .. ")"
end
if self.assert then
self.assert(false, message)
else
assert(false, message)
end
end
OBJDEF.onDecodeOfNilError = OBJDEF.onDecodeError
OBJDEF.onDecodeOfHTMLError = OBJDEF.onDecodeError
function OBJDEF:onEncodeError(message, etc)
if etc ~= nil then
message = message .. " (" .. OBJDEF:encode(etc) .. ")"
end
if self.assert then
self.assert(false, message)
else
assert(false, message)
end
end
local function grok_number(self, text, start, etc)
--
-- Grab the integer part
--
local integer_part = text:match('^-?[1-9]%d*', start)
or text:match("^-?0", start)
if not integer_part then
self:onDecodeError("expected number", text, start, etc)
end
local i = start + integer_part:len()
--
-- Grab an optional decimal part
--
local decimal_part = text:match('^%.%d+', i) or ""
i = i + decimal_part:len()
--
-- Grab an optional exponential part
--
local exponent_part = text:match('^[eE][-+]?%d+', i) or ""
i = i + exponent_part:len()
local full_number_text = integer_part .. decimal_part .. exponent_part
local as_number = tonumber(full_number_text)
if not as_number then
self:onDecodeError("bad number", text, start, etc)
end
return as_number, i
end
local function grok_string(self, text, start, etc)
if text:sub(start,start) ~= '"' then
self:onDecodeError("expected string's opening quote", text, start, etc)
end
local i = start + 1 -- +1 to bypass the initial quote
local text_len = text:len()
local VALUE = ""
while i <= text_len do
local c = text:sub(i,i)
if c == '"' then
return VALUE, i + 1
end
if c ~= '\\' then
VALUE = VALUE .. c
i = i + 1
elseif text:match('^\\b', i) then
VALUE = VALUE .. "\b"
i = i + 2
elseif text:match('^\\f', i) then
VALUE = VALUE .. "\f"
i = i + 2
elseif text:match('^\\n', i) then
VALUE = VALUE .. "\n"
i = i + 2
elseif text:match('^\\r', i) then
VALUE = VALUE .. "\r"
i = i + 2
elseif text:match('^\\t', i) then
VALUE = VALUE .. "\t"
i = i + 2
else
local hex = text:match('^\\u([0123456789aAbBcCdDeEfF][0123456789aAbBcCdDeEfF][0123456789aAbBcCdDeEfF][0123456789aAbBcCdDeEfF])', i)
if hex then
i = i + 6 -- bypass what we just read
-- We have a Unicode codepoint. It could be standalone, or if in the proper range and
-- followed by another in a specific range, it'll be a two-code surrogate pair.
local codepoint = tonumber(hex, 16)
if codepoint >= 0xD800 and codepoint <= 0xDBFF then
-- it's a hi surrogate... see whether we have a following low
local lo_surrogate = text:match('^\\u([dD][cdefCDEF][0123456789aAbBcCdDeEfF][0123456789aAbBcCdDeEfF])', i)
if lo_surrogate then
i = i + 6 -- bypass the low surrogate we just read
codepoint = 0x2400 + (codepoint - 0xD800) * 0x400 + tonumber(lo_surrogate, 16)
else
-- not a proper low, so we'll just leave the first codepoint as is and spit it out.
end
end
VALUE = VALUE .. unicode_codepoint_as_utf8(codepoint)
else
-- just pass through what's escaped
VALUE = VALUE .. text:match('^\\(.)', i)
i = i + 2
end
end
end
self:onDecodeError("unclosed string", text, start, etc)
end
local function skip_whitespace(text, start)
local match_start, match_end = text:find("^[ \n\r\t]+", start) -- [http://www.ietf.org/rfc/rfc4627.txt] Section 2
if match_end then
return match_end + 1
else
return start
end
end
local grok_one -- assigned later
local function grok_object(self, text, start, etc)
if not text:sub(start,start) == '{' then
self:onDecodeError("expected '{'", text, start, etc)
end
local i = skip_whitespace(text, start + 1) -- +1 to skip the '{'
local VALUE = self.strictTypes and self:newObject { } or { }
if text:sub(i,i) == '}' then
return VALUE, i + 1
end
local text_len = text:len()
while i <= text_len do
local key, new_i = grok_string(self, text, i, etc)
i = skip_whitespace(text, new_i)
if text:sub(i, i) ~= ':' then
self:onDecodeError("expected colon", text, i, etc)
end
i = skip_whitespace(text, i + 1)
local val, new_i = grok_one(self, text, i)
VALUE[key] = val
--
-- Expect now either '}' to end things, or a ',' to allow us to continue.
--
i = skip_whitespace(text, new_i)
local c = text:sub(i,i)
if c == '}' then
return VALUE, i + 1
end
if text:sub(i, i) ~= ',' then
self:onDecodeError("expected comma or '}'", text, i, etc)
end
i = skip_whitespace(text, i + 1)
end
self:onDecodeError("unclosed '{'", text, start, etc)
end
local function grok_array(self, text, start, etc)
if not text:sub(start,start) == '[' then
self:onDecodeError("expected '['", text, start, etc)
end
local i = skip_whitespace(text, start + 1) -- +1 to skip the '['
local VALUE = self.strictTypes and self:newArray { } or { }
if text:sub(i,i) == ']' then
return VALUE, i + 1
end
local text_len = text:len()
while i <= text_len do
local val, new_i = grok_one(self, text, i)
table.insert(VALUE, val)
i = skip_whitespace(text, new_i)
--
-- Expect now either ']' to end things, or a ',' to allow us to continue.
--
local c = text:sub(i,i)
if c == ']' then
return VALUE, i + 1
end
if text:sub(i, i) ~= ',' then
self:onDecodeError("expected comma or '['", text, i, etc)
end
i = skip_whitespace(text, i + 1)
end
self:onDecodeError("unclosed '['", text, start, etc)
end
grok_one = function(self, text, start, etc)
-- Skip any whitespace
start = skip_whitespace(text, start)
if start > text:len() then
self:onDecodeError("unexpected end of string", text, nil, etc)
end
if text:find('^"', start) then
return grok_string(self, text, start, etc)
elseif text:find('^[-0123456789 ]', start) then
return grok_number(self, text, start, etc)
elseif text:find('^%{', start) then
return grok_object(self, text, start, etc)
elseif text:find('^%[', start) then
return grok_array(self, text, start, etc)
elseif text:find('^true', start) then
return true, start + 4
elseif text:find('^false', start) then
return false, start + 5
elseif text:find('^null', start) then
return nil, start + 4
else
self:onDecodeError("can't parse JSON", text, start, etc)
end
end
function OBJDEF:decode(text, etc)
if type(self) ~= 'table' or self.__index ~= OBJDEF then
OBJDEF:onDecodeError("JSON:decode must be called in method format", nil, nil, etc)
end
if text == nil then
self:onDecodeOfNilError(string.format("nil passed to JSON:decode()"), nil, nil, etc)
elseif type(text) ~= 'string' then
self:onDecodeError(string.format("expected string argument to JSON:decode(), got %s", type(text)), nil, nil, etc)
end
if text:match('^%s*$') then
return nil
end
if text:match('^%s*<') then
-- Can't be JSON... we'll assume it's HTML
self:onDecodeOfHTMLError(string.format("html passed to JSON:decode()"), text, nil, etc)
end
--
-- Ensure that it's not UTF-32 or UTF-16.
-- Those are perfectly valid encodings for JSON (as per RFC 4627 section 3),
-- but this package can't handle them.
--
if text:sub(1,1):byte() == 0 or (text:len() >= 2 and text:sub(2,2):byte() == 0) then
self:onDecodeError("JSON package groks only UTF-8, sorry", text, nil, etc)
end
local success, value = pcall(grok_one, self, text, 1, etc)
if success then
return value
else
-- should never get here... JSON parse errors should have been caught earlier
assert(false, value)
return nil
end
end
local function backslash_replacement_function(c)
if c == "\n" then
return "\\n"
elseif c == "\r" then
return "\\r"
elseif c == "\t" then
return "\\t"
elseif c == "\b" then
return "\\b"
elseif c == "\f" then
return "\\f"
elseif c == '"' then
return '\\"'
elseif c == '\\' then
return '\\\\'
else
return string.format("\\u%04x", c:byte())
end
end
local chars_to_be_escaped_in_JSON_string
= '['
.. '"' -- class sub-pattern to match a double quote
.. '%\\' -- class sub-pattern to match a backslash
.. '%z' -- class sub-pattern to match a null
.. '\001' .. '-' .. '\031' -- class sub-pattern to match control characters
.. ']'
local function json_string_literal(value)
local newval = value:gsub(chars_to_be_escaped_in_JSON_string, backslash_replacement_function)
return '"' .. newval .. '"'
end
local function object_or_array(self, T, etc)
--
-- We need to inspect all the keys... if there are any strings, we'll convert to a JSON
-- object. If there are only numbers, it's a JSON array.
--
-- If we'll be converting to a JSON object, we'll want to sort the keys so that the
-- end result is deterministic.
--
local string_keys = { }
local seen_number_key = false
local maximum_number_key
for key in pairs(T) do
if type(key) == 'number' then
seen_number_key = true
if not maximum_number_key or maximum_number_key < key then
maximum_number_key = key
end
elseif type(key) == 'string' then
table.insert(string_keys, key)
else
self:onEncodeError("can't encode table with a key of type " .. type(key), etc)
end
end
if seen_number_key and #string_keys > 0 then
--
-- Mixed key types... don't know what to do, so bail
--
self:onEncodeError("a table with both numeric and string keys could be an object or array; aborting", etc)
elseif #string_keys == 0 then
--
-- An array
--
if seen_number_key then
return nil, maximum_number_key -- an array
else
--
-- An empty table...
--
if tostring(T) == "JSON array" then
return nil
elseif tostring(T) == "JSON object" then
return { }
else
-- have to guess, so we'll pick array, since empty arrays are likely more common than empty objects
return nil
end
end
else
--
-- An object, so return a list of keys
--
table.sort(string_keys)
return string_keys
end
end
--
-- Encode
--
local encode_value -- must predeclare because it calls itself
function encode_value(self, value, parents, etc)
if value == nil then
return 'null'
end
if type(value) == 'string' then
return json_string_literal(value)
elseif type(value) == 'number' then
if value ~= value then
--
-- NaN (Not a Number).
-- JSON has no NaN, so we have to fudge the best we can. This should really be a package option.
--
return "null"
elseif value >= math.huge then
--
-- Positive infinity. JSON has no INF, so we have to fudge the best we can. This should
-- really be a package option. Note: at least with some implementations, positive infinity
-- is both ">= math.huge" and "<= -math.huge", which makes no sense but that's how it is.
-- Negative infinity is properly "<= -math.huge". So, we must be sure to check the ">="
-- case first.
--
return "1e+9999"
elseif value <= -math.huge then
--
-- Negative infinity.
-- JSON has no INF, so we have to fudge the best we can. This should really be a package option.
--
return "-1e+9999"
else
return tostring(value)
end
elseif type(value) == 'boolean' then
return tostring(value)
elseif type(value) ~= 'table' then
self:onEncodeError("can't convert " .. type(value) .. " to JSON", etc)
else
--
-- A table to be converted to either a JSON object or array.
--
local T = value
if parents[T] then
self:onEncodeError("table " .. tostring(T) .. " is a child of itself", etc)
else
parents[T] = true
end
local result_value
local object_keys, maximum_number_key = object_or_array(self, T, etc)
if maximum_number_key then
--
-- An array...
--
local ITEMS = { }
for i = 1, maximum_number_key do
table.insert(ITEMS, encode_value(self, T[i], parents, etc))
end
result_value = "[" .. table.concat(ITEMS, ",") .. "]"
elseif object_keys then
--
-- An object
--
--
-- We'll always sort the keys, so that comparisons can be made on
-- the results, etc. The actual order is not particularly
-- important (e.g. it doesn't matter what character set we sort
-- as); it's only important that it be deterministic... the same
-- every time.
--
local PARTS = { }
for _, key in ipairs(object_keys) do
local encoded_key = encode_value(self, tostring(key), parents, etc)
local encoded_val = encode_value(self, T[key], parents, etc)
table.insert(PARTS, string.format("%s:%s", encoded_key, encoded_val))
end
result_value = "{" .. table.concat(PARTS, ",") .. "}"
else
--
-- An empty array/object... we'll treat it as an array, though it should really be an option
--
result_value = "[]"
end
parents[T] = false
return result_value
end
end
local encode_pretty_value -- must predeclare because it calls itself
function encode_pretty_value(self, value, parents, indent, etc)
if type(value) == 'string' then
return json_string_literal(value)
elseif type(value) == 'number' then
return tostring(value)
elseif type(value) == 'boolean' then
return tostring(value)
elseif type(value) == 'nil' then
return 'null'
elseif type(value) ~= 'table' then
self:onEncodeError("can't convert " .. type(value) .. " to JSON", etc)
else
--
-- A table to be converted to either a JSON object or array.
--
local T = value
if parents[T] then
self:onEncodeError("table " .. tostring(T) .. " is a child of itself", etc)
end
parents[T] = true
local result_value
local object_keys = object_or_array(self, T, etc)
if not object_keys then
--
-- An array...
--
local ITEMS = { }
for i = 1, #T do
table.insert(ITEMS, encode_pretty_value(self, T[i], parents, indent, etc))
end
result_value = "[ " .. table.concat(ITEMS, ", ") .. " ]"
else
--
-- An object -- can keys be numbers?
--
local KEYS = { }
local max_key_length = 0
for _, key in ipairs(object_keys) do
local encoded = encode_pretty_value(self, tostring(key), parents, "", etc)
max_key_length = math.max(max_key_length, #encoded)
table.insert(KEYS, encoded)
end
local key_indent = indent .. " "
local subtable_indent = indent .. string.rep(" ", max_key_length + 2 + 4)
local FORMAT = "%s%" .. tostring(max_key_length) .. "s: %s"
local COMBINED_PARTS = { }
for i, key in ipairs(object_keys) do
local encoded_val = encode_pretty_value(self, T[key], parents, subtable_indent, etc)
table.insert(COMBINED_PARTS, string.format(FORMAT, key_indent, KEYS[i], encoded_val))
end
result_value = "{\n" .. table.concat(COMBINED_PARTS, ",\n") .. "\n" .. indent .. "}"
end
parents[T] = false
return result_value
end
end
function OBJDEF:encode(value, etc)
if type(self) ~= 'table' or self.__index ~= OBJDEF then
OBJDEF:onEncodeError("JSON:encode must be called in method format", etc)
end
local parents = {}
return encode_value(self, value, parents, etc)
end
function OBJDEF:encode_pretty(value, etc)
local parents = {}
local subtable_indent = ""
return encode_pretty_value(self, value, parents, subtable_indent, etc)
end
function OBJDEF.__tostring()
return "JSON encode/decode package"
end
OBJDEF.__index = OBJDEF
function OBJDEF:new(args)
local new = { }
if args then
for key, val in pairs(args) do
new[key] = val
end
end
return setmetatable(new, OBJDEF)
end
return OBJDEF:new()
--
-- Version history:
--
-- 20111207.5 Added support for the 'etc' arguments, for better error reporting.
--
-- 20110731.4 More feedback from David Kolf on how to make the tests for Nan/Infinity system independent.
--
-- 20110730.3 Incorporated feedback from David Kolf at http://lua-users.org/wiki/JsonModules:
--
-- * When encoding lua for JSON, Sparse numeric arrays are now handled by
-- spitting out full arrays, such that
-- JSON:encode({"one", "two", [10] = "ten"})
-- returns
-- ["one","two",null,null,null,null,null,null,null,"ten"]
--
-- In 20100810.2 and earlier, only up to the first non-null value would have been retained.
--
-- * When encoding lua for JSON, numeric value NaN gets spit out as null, and infinity as "1+e9999".
-- Version 20100810.2 and earlier created invalid JSON in both cases.
--
-- * Unicode surrogate pairs are now detected when decoding JSON.
--
-- 20100810.2 added some checking to ensure that an invalid Unicode character couldn't leak in to the UTF-8 encoding
--
-- 20100731.1 initial public release
--
nqdruubyrcu63gzr0jf2wskw1uuufic
74552
74551
2026-09-10T15:30:02Z
B722N
6898
1 revision imported from [[:commons:Module:JSON]]: Importing the Support template
74551
Scribunto
text/plain
-- -*- coding: utf-8 -*-
--
-- Copyright 2010-2012 Jeffrey Friedl
-- http://regex.info/blog/
--
local VERSION = 20111207.5 -- version history at end of file
local OBJDEF = { VERSION = VERSION }
--
-- Simple JSON encoding and decoding in pure Lua.
-- http://www.json.org/
--
--
-- JSON = (loadfile "JSON.lua")() -- one-time load of the routines
--
-- local lua_value = JSON:decode(raw_json_text)
--
-- local raw_json_text = JSON:encode(lua_table_or_value)
-- local pretty_json_text = JSON:encode_pretty(lua_table_or_value) -- "pretty printed" version for human readability
--
--
-- DECODING
--
-- JSON = (loadfile "JSON.lua")() -- one-time load of the routines
--
-- local lua_value = JSON:decode(raw_json_text)
--
-- If the JSON text is for an object or an array, e.g.
-- { "what": "books", "count": 3 }
-- or
-- [ "Larry", "Curly", "Moe" ]
--
-- the result is a Lua table, e.g.
-- { what = "books", count = 3 }
-- or
-- { "Larry", "Curly", "Moe" }
--
--
-- The encode and decode routines accept an optional second argument, "etc", which is not used
-- during encoding or decoding, but upon error is passed along to error handlers. It can be of any
-- type (including nil).
--
-- With most errors during decoding, this code calls
--
-- JSON:onDecodeError(message, text, location, etc)
--
-- with a message about the error, and if known, the JSON text being parsed and the byte count
-- where the problem was discovered. You can replace the default JSON:onDecodeError() with your
-- own function.
--
-- The default onDecodeError() merely augments the message with data about the text and the
-- location if known (and if a second 'etc' argument had been provided to decode(), its value is
-- tacked onto the message as well), and then calls JSON.assert(), which itself defaults to Lua's
-- built-in assert(), and can also be overridden.
--
-- For example, in an Adobe Lightroom plugin, you might use something like
--
-- function JSON:onDecodeError(message, text, location, etc)
-- LrErrors.throwUserError("Internal Error: invalid JSON data")
-- end
--
-- or even just
--
-- function JSON.assert(message)
-- LrErrors.throwUserError("Internal Error: " .. message)
-- end
--
-- If JSON:decode() is passed a nil, this is called instead:
--
-- JSON:onDecodeOfNilError(message, nil, nil, etc)
--
-- and if JSON:decode() is passed HTML instead of JSON, this is called:
--
-- JSON:onDecodeOfHTMLError(message, text, nil, etc)
--
-- The use of the fourth 'etc' argument allows stronger coordination between decoding and error
-- reporting, especially when you provide your own error-handling routines. Continuing with the
-- the Adobe Lightroom plugin example:
--
-- function JSON:onDecodeError(message, text, location, etc)
-- local note = "Internal Error: invalid JSON data"
-- if type(etc) = 'table' and etc.photo then
-- note = note .. " while processing for " .. etc.photo:getFormattedMetadata('fileName')
-- end
-- LrErrors.throwUserError(note)
-- end
--
-- :
-- :
--
-- for i, photo in ipairs(photosToProcess) do
-- :
-- :
-- local data = JSON:decode(someJsonText, { photo = photo })
-- :
-- :
-- end
--
--
--
--
-- DECODING AND STRICT TYPES
--
-- Because both JSON objects and JSON arrays are converted to Lua tables, it's not normally
-- possible to tell which a Lua table came from, or guarantee decode-encode round-trip
-- equivalency.
--
-- However, if you enable strictTypes, e.g.
--
-- JSON = (loadfile "JSON.lua")() --load the routines
-- JSON.strictTypes = true
--
-- then the Lua table resulting from the decoding of a JSON object or JSON array is marked via Lua
-- metatable, so that when re-encoded with JSON:encode() it ends up as the appropriate JSON type.
--
-- (This is not the default because other routines may not work well with tables that have a
-- metatable set, for example, Lightroom API calls.)
--
--
-- ENCODING
--
-- JSON = (loadfile "JSON.lua")() -- one-time load of the routines
--
-- local raw_json_text = JSON:encode(lua_table_or_value)
-- local pretty_json_text = JSON:encode_pretty(lua_table_or_value) -- "pretty printed" version for human readability
-- On error during encoding, this code calls:
--
-- JSON:onEncodeError(message, etc)
--
-- which you can override in your local JSON object.
--
--
-- SUMMARY OF METHODS YOU CAN OVERRIDE IN YOUR LOCAL LUA JSON OBJECT
--
-- assert
-- onDecodeError
-- onDecodeOfNilError
-- onDecodeOfHTMLError
-- onEncodeError
--
-- If you want to create a separate Lua JSON object with its own error handlers,
-- you can reload JSON.lua or use the :new() method.
--
---------------------------------------------------------------------------
local author = "-[ JSON.lua package by Jeffrey Friedl (http://regex.info/blog/lua/json), version " .. tostring(VERSION) .. " ]-"
local isArray = { __tostring = function() return "JSON array" end } isArray.__index = isArray
local isObject = { __tostring = function() return "JSON object" end } isObject.__index = isObject
function OBJDEF:newArray(tbl)
return setmetatable(tbl or {}, isArray)
end
function OBJDEF:newObject(tbl)
return setmetatable(tbl or {}, isObject)
end
local function unicode_codepoint_as_utf8(codepoint)
--
-- codepoint is a number
--
if codepoint <= 127 then
return string.char(codepoint)
elseif codepoint <= 2047 then
--
-- 110yyyxx 10xxxxxx <-- useful notation from http://en.wikipedia.org/wiki/Utf8
--
local highpart = math.floor(codepoint / 0x40)
local lowpart = codepoint - (0x40 * highpart)
return string.char(0xC0 + highpart,
0x80 + lowpart)
elseif codepoint <= 65535 then
--
-- 1110yyyy 10yyyyxx 10xxxxxx
--
local highpart = math.floor(codepoint / 0x1000)
local remainder = codepoint - 0x1000 * highpart
local midpart = math.floor(remainder / 0x40)
local lowpart = remainder - 0x40 * midpart
highpart = 0xE0 + highpart
midpart = 0x80 + midpart
lowpart = 0x80 + lowpart
--
-- Check for an invalid character (thanks Andy R. at Adobe).
-- See table 3.7, page 93, in http://www.unicode.org/versions/Unicode5.2.0/ch03.pdf#G28070
--
if ( highpart == 0xE0 and midpart < 0xA0 ) or
( highpart == 0xED and midpart > 0x9F ) or
( highpart == 0xF0 and midpart < 0x90 ) or
( highpart == 0xF4 and midpart > 0x8F )
then
return "?"
else
return string.char(highpart,
midpart,
lowpart)
end
else
--
-- 11110zzz 10zzyyyy 10yyyyxx 10xxxxxx
--
local highpart = math.floor(codepoint / 0x40000)
local remainder = codepoint - 0x40000 * highpart
local midA = math.floor(remainder / 0x1000)
remainder = remainder - 0x1000 * midA
local midB = math.floor(remainder / 0x40)
local lowpart = remainder - 0x40 * midB
return string.char(0xF0 + highpart,
0x80 + midA,
0x80 + midB,
0x80 + lowpart)
end
end
function OBJDEF:onDecodeError(message, text, location, etc)
if text then
if location then
message = string.format("%s at char %d of: %s", message, location, text)
else
message = string.format("%s: %s", message, text)
end
end
if etc ~= nil then
message = message .. " (" .. OBJDEF:encode(etc) .. ")"
end
if self.assert then
self.assert(false, message)
else
assert(false, message)
end
end
OBJDEF.onDecodeOfNilError = OBJDEF.onDecodeError
OBJDEF.onDecodeOfHTMLError = OBJDEF.onDecodeError
function OBJDEF:onEncodeError(message, etc)
if etc ~= nil then
message = message .. " (" .. OBJDEF:encode(etc) .. ")"
end
if self.assert then
self.assert(false, message)
else
assert(false, message)
end
end
local function grok_number(self, text, start, etc)
--
-- Grab the integer part
--
local integer_part = text:match('^-?[1-9]%d*', start)
or text:match("^-?0", start)
if not integer_part then
self:onDecodeError("expected number", text, start, etc)
end
local i = start + integer_part:len()
--
-- Grab an optional decimal part
--
local decimal_part = text:match('^%.%d+', i) or ""
i = i + decimal_part:len()
--
-- Grab an optional exponential part
--
local exponent_part = text:match('^[eE][-+]?%d+', i) or ""
i = i + exponent_part:len()
local full_number_text = integer_part .. decimal_part .. exponent_part
local as_number = tonumber(full_number_text)
if not as_number then
self:onDecodeError("bad number", text, start, etc)
end
return as_number, i
end
local function grok_string(self, text, start, etc)
if text:sub(start,start) ~= '"' then
self:onDecodeError("expected string's opening quote", text, start, etc)
end
local i = start + 1 -- +1 to bypass the initial quote
local text_len = text:len()
local VALUE = ""
while i <= text_len do
local c = text:sub(i,i)
if c == '"' then
return VALUE, i + 1
end
if c ~= '\\' then
VALUE = VALUE .. c
i = i + 1
elseif text:match('^\\b', i) then
VALUE = VALUE .. "\b"
i = i + 2
elseif text:match('^\\f', i) then
VALUE = VALUE .. "\f"
i = i + 2
elseif text:match('^\\n', i) then
VALUE = VALUE .. "\n"
i = i + 2
elseif text:match('^\\r', i) then
VALUE = VALUE .. "\r"
i = i + 2
elseif text:match('^\\t', i) then
VALUE = VALUE .. "\t"
i = i + 2
else
local hex = text:match('^\\u([0123456789aAbBcCdDeEfF][0123456789aAbBcCdDeEfF][0123456789aAbBcCdDeEfF][0123456789aAbBcCdDeEfF])', i)
if hex then
i = i + 6 -- bypass what we just read
-- We have a Unicode codepoint. It could be standalone, or if in the proper range and
-- followed by another in a specific range, it'll be a two-code surrogate pair.
local codepoint = tonumber(hex, 16)
if codepoint >= 0xD800 and codepoint <= 0xDBFF then
-- it's a hi surrogate... see whether we have a following low
local lo_surrogate = text:match('^\\u([dD][cdefCDEF][0123456789aAbBcCdDeEfF][0123456789aAbBcCdDeEfF])', i)
if lo_surrogate then
i = i + 6 -- bypass the low surrogate we just read
codepoint = 0x2400 + (codepoint - 0xD800) * 0x400 + tonumber(lo_surrogate, 16)
else
-- not a proper low, so we'll just leave the first codepoint as is and spit it out.
end
end
VALUE = VALUE .. unicode_codepoint_as_utf8(codepoint)
else
-- just pass through what's escaped
VALUE = VALUE .. text:match('^\\(.)', i)
i = i + 2
end
end
end
self:onDecodeError("unclosed string", text, start, etc)
end
local function skip_whitespace(text, start)
local match_start, match_end = text:find("^[ \n\r\t]+", start) -- [http://www.ietf.org/rfc/rfc4627.txt] Section 2
if match_end then
return match_end + 1
else
return start
end
end
local grok_one -- assigned later
local function grok_object(self, text, start, etc)
if not text:sub(start,start) == '{' then
self:onDecodeError("expected '{'", text, start, etc)
end
local i = skip_whitespace(text, start + 1) -- +1 to skip the '{'
local VALUE = self.strictTypes and self:newObject { } or { }
if text:sub(i,i) == '}' then
return VALUE, i + 1
end
local text_len = text:len()
while i <= text_len do
local key, new_i = grok_string(self, text, i, etc)
i = skip_whitespace(text, new_i)
if text:sub(i, i) ~= ':' then
self:onDecodeError("expected colon", text, i, etc)
end
i = skip_whitespace(text, i + 1)
local val, new_i = grok_one(self, text, i)
VALUE[key] = val
--
-- Expect now either '}' to end things, or a ',' to allow us to continue.
--
i = skip_whitespace(text, new_i)
local c = text:sub(i,i)
if c == '}' then
return VALUE, i + 1
end
if text:sub(i, i) ~= ',' then
self:onDecodeError("expected comma or '}'", text, i, etc)
end
i = skip_whitespace(text, i + 1)
end
self:onDecodeError("unclosed '{'", text, start, etc)
end
local function grok_array(self, text, start, etc)
if not text:sub(start,start) == '[' then
self:onDecodeError("expected '['", text, start, etc)
end
local i = skip_whitespace(text, start + 1) -- +1 to skip the '['
local VALUE = self.strictTypes and self:newArray { } or { }
if text:sub(i,i) == ']' then
return VALUE, i + 1
end
local text_len = text:len()
while i <= text_len do
local val, new_i = grok_one(self, text, i)
table.insert(VALUE, val)
i = skip_whitespace(text, new_i)
--
-- Expect now either ']' to end things, or a ',' to allow us to continue.
--
local c = text:sub(i,i)
if c == ']' then
return VALUE, i + 1
end
if text:sub(i, i) ~= ',' then
self:onDecodeError("expected comma or '['", text, i, etc)
end
i = skip_whitespace(text, i + 1)
end
self:onDecodeError("unclosed '['", text, start, etc)
end
grok_one = function(self, text, start, etc)
-- Skip any whitespace
start = skip_whitespace(text, start)
if start > text:len() then
self:onDecodeError("unexpected end of string", text, nil, etc)
end
if text:find('^"', start) then
return grok_string(self, text, start, etc)
elseif text:find('^[-0123456789 ]', start) then
return grok_number(self, text, start, etc)
elseif text:find('^%{', start) then
return grok_object(self, text, start, etc)
elseif text:find('^%[', start) then
return grok_array(self, text, start, etc)
elseif text:find('^true', start) then
return true, start + 4
elseif text:find('^false', start) then
return false, start + 5
elseif text:find('^null', start) then
return nil, start + 4
else
self:onDecodeError("can't parse JSON", text, start, etc)
end
end
function OBJDEF:decode(text, etc)
if type(self) ~= 'table' or self.__index ~= OBJDEF then
OBJDEF:onDecodeError("JSON:decode must be called in method format", nil, nil, etc)
end
if text == nil then
self:onDecodeOfNilError(string.format("nil passed to JSON:decode()"), nil, nil, etc)
elseif type(text) ~= 'string' then
self:onDecodeError(string.format("expected string argument to JSON:decode(), got %s", type(text)), nil, nil, etc)
end
if text:match('^%s*$') then
return nil
end
if text:match('^%s*<') then
-- Can't be JSON... we'll assume it's HTML
self:onDecodeOfHTMLError(string.format("html passed to JSON:decode()"), text, nil, etc)
end
--
-- Ensure that it's not UTF-32 or UTF-16.
-- Those are perfectly valid encodings for JSON (as per RFC 4627 section 3),
-- but this package can't handle them.
--
if text:sub(1,1):byte() == 0 or (text:len() >= 2 and text:sub(2,2):byte() == 0) then
self:onDecodeError("JSON package groks only UTF-8, sorry", text, nil, etc)
end
local success, value = pcall(grok_one, self, text, 1, etc)
if success then
return value
else
-- should never get here... JSON parse errors should have been caught earlier
assert(false, value)
return nil
end
end
local function backslash_replacement_function(c)
if c == "\n" then
return "\\n"
elseif c == "\r" then
return "\\r"
elseif c == "\t" then
return "\\t"
elseif c == "\b" then
return "\\b"
elseif c == "\f" then
return "\\f"
elseif c == '"' then
return '\\"'
elseif c == '\\' then
return '\\\\'
else
return string.format("\\u%04x", c:byte())
end
end
local chars_to_be_escaped_in_JSON_string
= '['
.. '"' -- class sub-pattern to match a double quote
.. '%\\' -- class sub-pattern to match a backslash
.. '%z' -- class sub-pattern to match a null
.. '\001' .. '-' .. '\031' -- class sub-pattern to match control characters
.. ']'
local function json_string_literal(value)
local newval = value:gsub(chars_to_be_escaped_in_JSON_string, backslash_replacement_function)
return '"' .. newval .. '"'
end
local function object_or_array(self, T, etc)
--
-- We need to inspect all the keys... if there are any strings, we'll convert to a JSON
-- object. If there are only numbers, it's a JSON array.
--
-- If we'll be converting to a JSON object, we'll want to sort the keys so that the
-- end result is deterministic.
--
local string_keys = { }
local seen_number_key = false
local maximum_number_key
for key in pairs(T) do
if type(key) == 'number' then
seen_number_key = true
if not maximum_number_key or maximum_number_key < key then
maximum_number_key = key
end
elseif type(key) == 'string' then
table.insert(string_keys, key)
else
self:onEncodeError("can't encode table with a key of type " .. type(key), etc)
end
end
if seen_number_key and #string_keys > 0 then
--
-- Mixed key types... don't know what to do, so bail
--
self:onEncodeError("a table with both numeric and string keys could be an object or array; aborting", etc)
elseif #string_keys == 0 then
--
-- An array
--
if seen_number_key then
return nil, maximum_number_key -- an array
else
--
-- An empty table...
--
if tostring(T) == "JSON array" then
return nil
elseif tostring(T) == "JSON object" then
return { }
else
-- have to guess, so we'll pick array, since empty arrays are likely more common than empty objects
return nil
end
end
else
--
-- An object, so return a list of keys
--
table.sort(string_keys)
return string_keys
end
end
--
-- Encode
--
local encode_value -- must predeclare because it calls itself
function encode_value(self, value, parents, etc)
if value == nil then
return 'null'
end
if type(value) == 'string' then
return json_string_literal(value)
elseif type(value) == 'number' then
if value ~= value then
--
-- NaN (Not a Number).
-- JSON has no NaN, so we have to fudge the best we can. This should really be a package option.
--
return "null"
elseif value >= math.huge then
--
-- Positive infinity. JSON has no INF, so we have to fudge the best we can. This should
-- really be a package option. Note: at least with some implementations, positive infinity
-- is both ">= math.huge" and "<= -math.huge", which makes no sense but that's how it is.
-- Negative infinity is properly "<= -math.huge". So, we must be sure to check the ">="
-- case first.
--
return "1e+9999"
elseif value <= -math.huge then
--
-- Negative infinity.
-- JSON has no INF, so we have to fudge the best we can. This should really be a package option.
--
return "-1e+9999"
else
return tostring(value)
end
elseif type(value) == 'boolean' then
return tostring(value)
elseif type(value) ~= 'table' then
self:onEncodeError("can't convert " .. type(value) .. " to JSON", etc)
else
--
-- A table to be converted to either a JSON object or array.
--
local T = value
if parents[T] then
self:onEncodeError("table " .. tostring(T) .. " is a child of itself", etc)
else
parents[T] = true
end
local result_value
local object_keys, maximum_number_key = object_or_array(self, T, etc)
if maximum_number_key then
--
-- An array...
--
local ITEMS = { }
for i = 1, maximum_number_key do
table.insert(ITEMS, encode_value(self, T[i], parents, etc))
end
result_value = "[" .. table.concat(ITEMS, ",") .. "]"
elseif object_keys then
--
-- An object
--
--
-- We'll always sort the keys, so that comparisons can be made on
-- the results, etc. The actual order is not particularly
-- important (e.g. it doesn't matter what character set we sort
-- as); it's only important that it be deterministic... the same
-- every time.
--
local PARTS = { }
for _, key in ipairs(object_keys) do
local encoded_key = encode_value(self, tostring(key), parents, etc)
local encoded_val = encode_value(self, T[key], parents, etc)
table.insert(PARTS, string.format("%s:%s", encoded_key, encoded_val))
end
result_value = "{" .. table.concat(PARTS, ",") .. "}"
else
--
-- An empty array/object... we'll treat it as an array, though it should really be an option
--
result_value = "[]"
end
parents[T] = false
return result_value
end
end
local encode_pretty_value -- must predeclare because it calls itself
function encode_pretty_value(self, value, parents, indent, etc)
if type(value) == 'string' then
return json_string_literal(value)
elseif type(value) == 'number' then
return tostring(value)
elseif type(value) == 'boolean' then
return tostring(value)
elseif type(value) == 'nil' then
return 'null'
elseif type(value) ~= 'table' then
self:onEncodeError("can't convert " .. type(value) .. " to JSON", etc)
else
--
-- A table to be converted to either a JSON object or array.
--
local T = value
if parents[T] then
self:onEncodeError("table " .. tostring(T) .. " is a child of itself", etc)
end
parents[T] = true
local result_value
local object_keys = object_or_array(self, T, etc)
if not object_keys then
--
-- An array...
--
local ITEMS = { }
for i = 1, #T do
table.insert(ITEMS, encode_pretty_value(self, T[i], parents, indent, etc))
end
result_value = "[ " .. table.concat(ITEMS, ", ") .. " ]"
else
--
-- An object -- can keys be numbers?
--
local KEYS = { }
local max_key_length = 0
for _, key in ipairs(object_keys) do
local encoded = encode_pretty_value(self, tostring(key), parents, "", etc)
max_key_length = math.max(max_key_length, #encoded)
table.insert(KEYS, encoded)
end
local key_indent = indent .. " "
local subtable_indent = indent .. string.rep(" ", max_key_length + 2 + 4)
local FORMAT = "%s%" .. tostring(max_key_length) .. "s: %s"
local COMBINED_PARTS = { }
for i, key in ipairs(object_keys) do
local encoded_val = encode_pretty_value(self, T[key], parents, subtable_indent, etc)
table.insert(COMBINED_PARTS, string.format(FORMAT, key_indent, KEYS[i], encoded_val))
end
result_value = "{\n" .. table.concat(COMBINED_PARTS, ",\n") .. "\n" .. indent .. "}"
end
parents[T] = false
return result_value
end
end
function OBJDEF:encode(value, etc)
if type(self) ~= 'table' or self.__index ~= OBJDEF then
OBJDEF:onEncodeError("JSON:encode must be called in method format", etc)
end
local parents = {}
return encode_value(self, value, parents, etc)
end
function OBJDEF:encode_pretty(value, etc)
local parents = {}
local subtable_indent = ""
return encode_pretty_value(self, value, parents, subtable_indent, etc)
end
function OBJDEF.__tostring()
return "JSON encode/decode package"
end
OBJDEF.__index = OBJDEF
function OBJDEF:new(args)
local new = { }
if args then
for key, val in pairs(args) do
new[key] = val
end
end
return setmetatable(new, OBJDEF)
end
return OBJDEF:new()
--
-- Version history:
--
-- 20111207.5 Added support for the 'etc' arguments, for better error reporting.
--
-- 20110731.4 More feedback from David Kolf on how to make the tests for Nan/Infinity system independent.
--
-- 20110730.3 Incorporated feedback from David Kolf at http://lua-users.org/wiki/JsonModules:
--
-- * When encoding lua for JSON, Sparse numeric arrays are now handled by
-- spitting out full arrays, such that
-- JSON:encode({"one", "two", [10] = "ten"})
-- returns
-- ["one","two",null,null,null,null,null,null,null,"ten"]
--
-- In 20100810.2 and earlier, only up to the first non-null value would have been retained.
--
-- * When encoding lua for JSON, numeric value NaN gets spit out as null, and infinity as "1+e9999".
-- Version 20100810.2 and earlier created invalid JSON in both cases.
--
-- * Unicode surrogate pairs are now detected when decoding JSON.
--
-- 20100810.2 added some checking to ensure that an invalid Unicode character couldn't leak in to the UTF-8 encoding
--
-- 20100731.1 initial public release
--
nqdruubyrcu63gzr0jf2wskw1uuufic
Template:Delist
10
15820
74567
2025-12-06T17:32:05Z
Aciarium
11755
Made symbol non-clickable
74567
wikitext
text/x-wiki
[[Image:Symbol oppose vote.svg |15px |link=]] '''<bdi>{{{1|{{ucfirst:{{i18n/delist|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}} }} }} }} }}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}<noinclude>
22vk3hhrlbm0ysb3pak3dez4moz0nd9
74568
74567
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:Delist]]: Importing the Support template
74567
wikitext
text/x-wiki
[[Image:Symbol oppose vote.svg |15px |link=]] '''<bdi>{{{1|{{ucfirst:{{i18n/delist|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}} }} }} }} }}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}<noinclude>
22vk3hhrlbm0ysb3pak3dez4moz0nd9
Template:I18n/delist
10
15821
74569
2026-07-30T20:51:41Z
TadejM
11747
74569
wikitext
text/x-wiki
{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = حذف
|be-tarask = выкрасьліць
|cs = vyřadit
|de = abwählen
|en = delist
|eo = mallistigi
|es = suprimir
|fa = حذف از فهرست
|fi = poistettava
|fr = rayer
|frr = fersteeg
|fy = skrasse
|hi = सूची से हटाएँ
|hr = Ukloniti s popisa
|hy = տնտեսել
|it = togli dalla lista
|ja = 除去
|ko = 해제
|mk = отстрани
|ml = പട്ടികയിൽ നിന്ന് നീക്കുക
|nl = schrappen
|pl = wykreślić
|pt = suprimido
|ru = исключить
|sl= Odstranimo
|sv = avlista
|th = ถอดถอน
|tr = listeden çıkarılsın
|zh = 除名
}}<noinclude>
{{documentation|i18n/doc}}
[[Category:Internationalization templates using LangSwitch|{{PAGENAME}}]]
</noinclude>
s41hg0zs7vz0trp5msldtw2bh9xcckv
74570
74569
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:I18n/delist]]: Importing the Support template
74569
wikitext
text/x-wiki
{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = حذف
|be-tarask = выкрасьліць
|cs = vyřadit
|de = abwählen
|en = delist
|eo = mallistigi
|es = suprimir
|fa = حذف از فهرست
|fi = poistettava
|fr = rayer
|frr = fersteeg
|fy = skrasse
|hi = सूची से हटाएँ
|hr = Ukloniti s popisa
|hy = տնտեսել
|it = togli dalla lista
|ja = 除去
|ko = 해제
|mk = отстрани
|ml = പട്ടികയിൽ നിന്ന് നീക്കുക
|nl = schrappen
|pl = wykreślić
|pt = suprimido
|ru = исключить
|sl= Odstranimo
|sv = avlista
|th = ถอดถอน
|tr = listeden çıkarılsın
|zh = 除名
}}<noinclude>
{{documentation|i18n/doc}}
[[Category:Internationalization templates using LangSwitch|{{PAGENAME}}]]
</noinclude>
s41hg0zs7vz0trp5msldtw2bh9xcckv
Template:Weak support
10
15822
74571
2025-12-30T13:26:25Z
Lucas Werkmeister
11746
fulfilling edit request by [[User:痛]] – update |zh-hans= + |zh-hant= for consistency with other similar voting templates such as [[Template:weak keep]], [[Template:weak delete]], [[Template:weak oppose]]
74571
wikitext
text/x-wiki
[[File:{{#ifeq:{{{2}}}|H|Symbol support vote-stroked|GA candidate}}.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = دعم ضعيف
| az = Qismi dəstək
| bar= Eher scho ois ned
| be | be-x-old | be-tarask = Схільны падтрымаць
| bn = দুর্বল সমর্থন
| bs = Slabo za
| cs = Slabě pro
| da = Svag støtte
| de = Knappes Pro
| en = {{#ifeq:{{{2}}}|H|Half|Weak}} support
| eo = Malforta subteno
| es = Algo a favor
| eu = Alde, neurri batean
| fa = کمی موافق
| fi = Varovainen kannatus
| fr = Plutôt pour
| fy = Swak foar
| gl = Concordo levemente
| gu = નબળું સમર્થન
| hi = {{#ifeq:{{{2}}}|H|आधा|दुर्बल}} समर्थन
| hr = Blago za
| hu = Gyengén támogatom
| it = Lievemente favorevole
| ja = 賛成寄り
| ka = მხარდაჭერისაკენ ვიხრები
| kk = Жай қолдаймын
| ko = 약한 찬성
| ky = Алсыз колдойм
| mk = Слабо за
| ml = ദുർബല പിന്തുണ
| nl = Zwak voor
| nn = Noko for
| no = Noe for
| pl = Słabe za
| prg = Kussals enlāika
| pt = Levemente a favor
| ro = Puțin pentru
| ru = Склонен поддержать
| hy = Թույլ կողմ
| sco= Weak support
| sk = Slabo za
| sl = Šibko za.
| sr = Слабо за
| sv = Stödjer svagt
| th = เห็นด้วยเล็กน้อย
| tl = Hindi masyadong suportado
| tr = Kısmi destek
| uk = Слабка підтримка
| vi = Không ủng hộ cho lắm
| zh-hans = 倾向支持
| zh-hant = 傾向支持
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
lbijmiaam3noud0eusawzsjakjp9vgm
74572
74571
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:Weak_support]]: Importing the Support template
74571
wikitext
text/x-wiki
[[File:{{#ifeq:{{{2}}}|H|Symbol support vote-stroked|GA candidate}}.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = دعم ضعيف
| az = Qismi dəstək
| bar= Eher scho ois ned
| be | be-x-old | be-tarask = Схільны падтрымаць
| bn = দুর্বল সমর্থন
| bs = Slabo za
| cs = Slabě pro
| da = Svag støtte
| de = Knappes Pro
| en = {{#ifeq:{{{2}}}|H|Half|Weak}} support
| eo = Malforta subteno
| es = Algo a favor
| eu = Alde, neurri batean
| fa = کمی موافق
| fi = Varovainen kannatus
| fr = Plutôt pour
| fy = Swak foar
| gl = Concordo levemente
| gu = નબળું સમર્થન
| hi = {{#ifeq:{{{2}}}|H|आधा|दुर्बल}} समर्थन
| hr = Blago za
| hu = Gyengén támogatom
| it = Lievemente favorevole
| ja = 賛成寄り
| ka = მხარდაჭერისაკენ ვიხრები
| kk = Жай қолдаймын
| ko = 약한 찬성
| ky = Алсыз колдойм
| mk = Слабо за
| ml = ദുർബല പിന്തുണ
| nl = Zwak voor
| nn = Noko for
| no = Noe for
| pl = Słabe za
| prg = Kussals enlāika
| pt = Levemente a favor
| ro = Puțin pentru
| ru = Склонен поддержать
| hy = Թույլ կողմ
| sco= Weak support
| sk = Slabo za
| sl = Šibko za.
| sr = Слабо за
| sv = Stödjer svagt
| th = เห็นด้วยเล็กน้อย
| tl = Hindi masyadong suportado
| tr = Kısmi destek
| uk = Слабка підтримка
| vi = Không ủng hộ cho lắm
| zh-hans = 倾向支持
| zh-hant = 傾向支持
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
lbijmiaam3noud0eusawzsjakjp9vgm
Template:Withdraw
10
15823
74573
2025-11-05T05:15:50Z
Ch
11741
+nb see [[Template talk:Withdraw#Norwegian (bokmål) translation]]
74573
wikitext
text/x-wiki
[[File:Pictogram voting delete.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = أسحب ترشيحي
|az = Göstərdiyim namizədliyi geri götürürəm
|be|be-x-old|be-tarask = Скасоўваю ўласную кандыдатуру
|bg = Аз оттеглям моята номинация
|bn = আমি আমার মনোনয়ন প্রত্যাহার করলাম
|bs = Povlačim svoju nominaciju
|cs = Stahuji svou nominaci
|da = Jeg trækker min udnævnelse tilbage
|de = Ich ziehe meine Nominierung zurück
|en = I withdraw my nomination
|eo = Mi reprenas mian proponon
|es = Retiro mi nominación
|eu = Hautagaitza erretiratzea erabaki dut
|fa = نامزدیام را پس میگیرم
|fr = Je retire ma candidature
|fy = Ik lûk myn nominaasje werom
|gl = Retiro a miña proposta
|hi = मैं अपना नामांकन वापस लेता/लेती हूँ
|hr = Povlačim prijedlog
|hu = Visszavonom a jelölést
|hy = Ես հանում եմ իմ թեկնածությունը
|it = Ritiro la mia candidatura
|ja = 取り下げ
|kk = Мен үміткерлігімнен бас тартамын
|ko = 의견을 철회합니다
|ky = Номинациямдан баш тартам
|mk = Го повлекувам предлогот
|ml = ഞാൻ ചെയ്ത നാമനിർദ്ദേശം പിൻവലിക്കുന്നു
|nb = Jeg trekker tilbake nominasjonen
|nl = Ik trek mijn nominatie terug
|nn = Eg tek attende nominasjonen
|pl = Wycofuję swoją nominację
|prg= As eliminijja etrīnksnan
|pt = Retiro a minha nomeação
|ro = Îmi retrag nominalizarea
|ru = Я снимаю свою номинацию
|sco= A withdraw ma nomination
|sl = Umikam svoj predlog
|sv = Jag tar tillbaka min nominering
|th = ขอถอนการเสนอชื่อ
|tl = Binabawi ko na ang aking nominasyon
|tr = Gösterdiğim adaylığı geri alıyorum
|uk = Я знімаю свою номінацію
|zh-hans = 我撤销提名
|zh-hant = 我撤銷提名
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
k2aiwcfj4o4yu7crozcvaeb7wth91l7
74574
74573
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:Withdraw]]: Importing the Support template
74573
wikitext
text/x-wiki
[[File:Pictogram voting delete.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = أسحب ترشيحي
|az = Göstərdiyim namizədliyi geri götürürəm
|be|be-x-old|be-tarask = Скасоўваю ўласную кандыдатуру
|bg = Аз оттеглям моята номинация
|bn = আমি আমার মনোনয়ন প্রত্যাহার করলাম
|bs = Povlačim svoju nominaciju
|cs = Stahuji svou nominaci
|da = Jeg trækker min udnævnelse tilbage
|de = Ich ziehe meine Nominierung zurück
|en = I withdraw my nomination
|eo = Mi reprenas mian proponon
|es = Retiro mi nominación
|eu = Hautagaitza erretiratzea erabaki dut
|fa = نامزدیام را پس میگیرم
|fr = Je retire ma candidature
|fy = Ik lûk myn nominaasje werom
|gl = Retiro a miña proposta
|hi = मैं अपना नामांकन वापस लेता/लेती हूँ
|hr = Povlačim prijedlog
|hu = Visszavonom a jelölést
|hy = Ես հանում եմ իմ թեկնածությունը
|it = Ritiro la mia candidatura
|ja = 取り下げ
|kk = Мен үміткерлігімнен бас тартамын
|ko = 의견을 철회합니다
|ky = Номинациямдан баш тартам
|mk = Го повлекувам предлогот
|ml = ഞാൻ ചെയ്ത നാമനിർദ്ദേശം പിൻവലിക്കുന്നു
|nb = Jeg trekker tilbake nominasjonen
|nl = Ik trek mijn nominatie terug
|nn = Eg tek attende nominasjonen
|pl = Wycofuję swoją nominację
|prg= As eliminijja etrīnksnan
|pt = Retiro a minha nomeação
|ro = Îmi retrag nominalizarea
|ru = Я снимаю свою номинацию
|sco= A withdraw ma nomination
|sl = Umikam svoj predlog
|sv = Jag tar tillbaka min nominering
|th = ขอถอนการเสนอชื่อ
|tl = Binabawi ko na ang aking nominasyon
|tr = Gösterdiğim adaylığı geri alıyorum
|uk = Я знімаю свою номінацію
|zh-hans = 我撤销提名
|zh-hant = 我撤銷提名
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
k2aiwcfj4o4yu7crozcvaeb7wth91l7
Template:Abstain
10
15824
74575
2025-08-25T21:17:20Z
Mohammed Qays
11748
74575
wikitext
text/x-wiki
[[File:Symbol abstain vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = امتنع
| az = Bitərəf
| be-tarask = Устрымліваюся
| bn = বিরত
| bs = Uzdržan
| cs = Zdržuji se
| da = Afstår
| de = Enthaltung
| en = Abstain
| eo = Sindeteno
| es = Me abstengo
| eu = Abstenitzen naiz
| fa = خودداریکردن
| fi = Pidättäydyn
| fr = Abstention
| fy = Unthâlding
| gl = Abstención
| hi = प्रविरत
| hr = Suzdržan
| hy = Չափավորություն
| it = Astenuto
| ja = 棄権
| ko = 기권
| mk = Воздржан
| ml = വിട്ടുനിൽക്കുന്നു
| nl = Onthouding
| nn = Avstår
| pl = Wstrzymuję się
| prg= Etlāika si
| pt = Abstenção
| ro = Abținere
| ru = Воздерживаюсь
| sl = Vzdržim se.
| sr = Уздржан
| sv = Avstår
| th = ละเว้น
| tr = Çekimser
| uk = Утримуюсь
| zh-hans = 弃权
| zh-hant = 棄權
}} }}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
fxzaqy249wrmpamqmytq2dk2riewy0w
74576
74575
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:Abstain]]: Importing the Support template
74575
wikitext
text/x-wiki
[[File:Symbol abstain vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = امتنع
| az = Bitərəf
| be-tarask = Устрымліваюся
| bn = বিরত
| bs = Uzdržan
| cs = Zdržuji se
| da = Afstår
| de = Enthaltung
| en = Abstain
| eo = Sindeteno
| es = Me abstengo
| eu = Abstenitzen naiz
| fa = خودداریکردن
| fi = Pidättäydyn
| fr = Abstention
| fy = Unthâlding
| gl = Abstención
| hi = प्रविरत
| hr = Suzdržan
| hy = Չափավորություն
| it = Astenuto
| ja = 棄権
| ko = 기권
| mk = Воздржан
| ml = വിട്ടുനിൽക്കുന്നു
| nl = Onthouding
| nn = Avstår
| pl = Wstrzymuję się
| prg= Etlāika si
| pt = Abstenção
| ro = Abținere
| ru = Воздерживаюсь
| sl = Vzdržim se.
| sr = Уздржан
| sv = Avstår
| th = ละเว้น
| tr = Çekimser
| uk = Утримуюсь
| zh-hans = 弃权
| zh-hant = 棄權
}} }}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
fxzaqy249wrmpamqmytq2dk2riewy0w
Template:Agree
10
15825
74577
2025-09-20T04:25:25Z
Ch
11741
74577
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = أتفق
| az = Dəstəkləyirəm
| be | be-x-old | be-tarask = Згодны
| bn = একমত
| bs = Slažem se
| cs = Souhlasím
| da = Enig
| de = Einverstanden
| en = Agree
| eo = Konsenti
| es = De acuerdo
| eu = Bat nator
| fa = تأیید
| fi = Hyväksyn<!-- TAI myönnyn TAI yhdyn mielipiteeseen TAI sopii -->
| fr = D'accord
| fy = Mei iens
| ga = Aontaigh
| gl = De acordo
| gu = સંમત
| he = מסכים
| hi = सहमत
| hr = Slažem se
| hu = Egyetértek
| hy = Համաձայնվել
| it = Concordo
| ja = 同意
| ka = თანახმა ვარ
| kk = Келісемін
| ko = 동의함
| ky = Макул
| mk = Се согласувам
| ml = അനുകൂലിക്കുന്നു
| my = သဘောတူ
| nl = Mee eens
| nn = Samd
| pl = Zgadzam się
| prg = Senwaitjai
| pt = Concordo
| ro = De acord
| ru = Согласен
| sco= Agree
| sk = Ponechať
| sl = Strinjam se.
| sr = Слажем се
| sv = Håller med
| th = เห็นด้วย
| tl = Sumasang-ayon
| tr = Katılıyorum
| uk = Згодний
| vec = Concordo
| vi = Đồng ý
| zh = 同意
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
kv4k25lrzlmpniowqf4txq3bzcgav77
74578
74577
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:Agree]]: Importing the Support template
74577
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = أتفق
| az = Dəstəkləyirəm
| be | be-x-old | be-tarask = Згодны
| bn = একমত
| bs = Slažem se
| cs = Souhlasím
| da = Enig
| de = Einverstanden
| en = Agree
| eo = Konsenti
| es = De acuerdo
| eu = Bat nator
| fa = تأیید
| fi = Hyväksyn<!-- TAI myönnyn TAI yhdyn mielipiteeseen TAI sopii -->
| fr = D'accord
| fy = Mei iens
| ga = Aontaigh
| gl = De acordo
| gu = સંમત
| he = מסכים
| hi = सहमत
| hr = Slažem se
| hu = Egyetértek
| hy = Համաձայնվել
| it = Concordo
| ja = 同意
| ka = თანახმა ვარ
| kk = Келісемін
| ko = 동의함
| ky = Макул
| mk = Се согласувам
| ml = അനുകൂലിക്കുന്നു
| my = သဘောတူ
| nl = Mee eens
| nn = Samd
| pl = Zgadzam się
| prg = Senwaitjai
| pt = Concordo
| ro = De acord
| ru = Согласен
| sco= Agree
| sk = Ponechať
| sl = Strinjam se.
| sr = Слажем се
| sv = Håller med
| th = เห็นด้วย
| tl = Sumasang-ayon
| tr = Katılıyorum
| uk = Згодний
| vec = Concordo
| vi = Đồng ý
| zh = 同意
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
kv4k25lrzlmpniowqf4txq3bzcgav77
Template:Delistandreplace
10
15826
74579
2026-07-30T20:51:01Z
TadejM
11747
+sl
74579
wikitext
text/x-wiki
[[File:Symbol redirect vote.svg |15px |link=]] '''<bdi>{{{1|{{LangSwitch<!--
-->|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
-->|ar =شطب واستبدال<!--
-->|be-tarask = Выкрасьліць і замяніць<!--
-->|cs = Vyřadit a nahradit<!--
-->|en = Delist and replace<!--
-->|eo = Mallistigi kaj anstataŭigi<!--
-->|es = Suprimir y reemplazar<!--
-->|eu = Ezabatu eta ordeztu<!--
-->|fr = Supprimer et remplacer<!--
-->|de = Abwählen und ersetzen<!--
-->|fa = حذف از فهرست و جایگزیننمودن<!--
-->|fy = Skrasse en ferfange<!--
-->|hr = Ukloniti s popisa i zamijeniti<!--
-->|hy = Տնտեսեք և փոխարինեք<!--
-->|ko = 해제 후 대체<!--
-->|it = Togli dalla lista e rimpiazza<!--
-->|ja = 除去・置換<!--
-->|mk = Отстрани и замени<!--
-->|ml = നീക്കംചെയ്തശേഷം മാറ്റിച്ചേർക്കുക<!--
-->|nl = Schrappen en vervangen<!--
-->|pt = Suprimido e substituído<!--
-->|ru = Исключить и заменить<!--
-->|sl = Odstranimo in nadomestimo<!--
-->|th = ถูกถอดถอนออกและแทนที่แล้ว<!--
-->|tr = Listeden kaldırılsın ve değiştirilsin<!--
-->|prg = Delisti be etdeīktan<!--
-->|zh-hans = 除名并替换<!--
-->|zh-hant = 除名並替換<!--
-->|default={{ucfirst:{{conj|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}} }} | {{i18n/delist|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}} }} }} | {{replace|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}} }} }} }} }}<!--
-->}} }}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}<noinclude>
1obfs5wkrcq4g8bfecrvrd93topjbuy
74580
74579
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:Delistandreplace]]: Importing the Support template
74579
wikitext
text/x-wiki
[[File:Symbol redirect vote.svg |15px |link=]] '''<bdi>{{{1|{{LangSwitch<!--
-->|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
-->|ar =شطب واستبدال<!--
-->|be-tarask = Выкрасьліць і замяніць<!--
-->|cs = Vyřadit a nahradit<!--
-->|en = Delist and replace<!--
-->|eo = Mallistigi kaj anstataŭigi<!--
-->|es = Suprimir y reemplazar<!--
-->|eu = Ezabatu eta ordeztu<!--
-->|fr = Supprimer et remplacer<!--
-->|de = Abwählen und ersetzen<!--
-->|fa = حذف از فهرست و جایگزیننمودن<!--
-->|fy = Skrasse en ferfange<!--
-->|hr = Ukloniti s popisa i zamijeniti<!--
-->|hy = Տնտեսեք և փոխարինեք<!--
-->|ko = 해제 후 대체<!--
-->|it = Togli dalla lista e rimpiazza<!--
-->|ja = 除去・置換<!--
-->|mk = Отстрани и замени<!--
-->|ml = നീക്കംചെയ്തശേഷം മാറ്റിച്ചേർക്കുക<!--
-->|nl = Schrappen en vervangen<!--
-->|pt = Suprimido e substituído<!--
-->|ru = Исключить и заменить<!--
-->|sl = Odstranimo in nadomestimo<!--
-->|th = ถูกถอดถอนออกและแทนที่แล้ว<!--
-->|tr = Listeden kaldırılsın ve değiştirilsin<!--
-->|prg = Delisti be etdeīktan<!--
-->|zh-hans = 除名并替换<!--
-->|zh-hant = 除名並替換<!--
-->|default={{ucfirst:{{conj|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}} }} | {{i18n/delist|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}} }} }} | {{replace|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}} }} }} }} }}<!--
-->}} }}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}<noinclude>
1obfs5wkrcq4g8bfecrvrd93topjbuy
Template:Flower
10
15827
74581
2026-07-30T20:50:08Z
TadejM
11747
74581
wikitext
text/x-wiki
[[File:Symbol flower.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar=زهرة لك!
|bg=Едно цвете за теб!
|bn=আপনার জন্য একটি ফুল!
|de=Eine Blume für dich!
|en=A flower for you!
|eo=Jen floro por vi!
|es=Una flor para ti!
|eu=Lili bat zuretzat!
|fr=Une fleur pour toi!
|hi=आपके लिए एक फूल!
|it=Un fiore per te!
|ja=お花をどうぞ!
|ko=당신을 위한 꽃!
|ky=Сиз үчүн гүл!
|pt-br=Uma flor para você!
|ro=O floare pentru tine!
|ru=Цветок для тебя!
|sl=Cvetlica zate!
|sv=Du får en blomma av mig!
|tr=Sizin için bir çiçek!
|vi=Tặng bạn một bông hoa!
|zh=送您一朵花!
|prg=Kwēitjas pēr tebbei!
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
be5meu7jfpuyuz9k33dma1nm91em1th
74582
74581
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:Flower]]: Importing the Support template
74581
wikitext
text/x-wiki
[[File:Symbol flower.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar=زهرة لك!
|bg=Едно цвете за теб!
|bn=আপনার জন্য একটি ফুল!
|de=Eine Blume für dich!
|en=A flower for you!
|eo=Jen floro por vi!
|es=Una flor para ti!
|eu=Lili bat zuretzat!
|fr=Une fleur pour toi!
|hi=आपके लिए एक फूल!
|it=Un fiore per te!
|ja=お花をどうぞ!
|ko=당신을 위한 꽃!
|ky=Сиз үчүн гүл!
|pt-br=Uma flor para você!
|ro=O floare pentru tine!
|ru=Цветок для тебя!
|sl=Cvetlica zate!
|sv=Du får en blomma av mig!
|tr=Sizin için bir çiçek!
|vi=Tặng bạn một bông hoa!
|zh=送您一朵花!
|prg=Kwēitjas pēr tebbei!
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
be5meu7jfpuyuz9k33dma1nm91em1th
Template:Great
10
15828
74583
2026-07-30T20:48:14Z
TadejM
11747
+sl
74583
wikitext
text/x-wiki
[[File:Thumbs-up-icon.svg|15px|class=skin-invert|link=]] '''{{{1|{{LangSwitch
|ar=رائع!
|be-tarask=Выдатна!
|bn=দুর্দান্ত!
|de=Super!
|en=Great!
|eo=Bonege!
|es=¡Excelente!
|eu=Bikain!
|fi=Mainiota!
|fr=Super!
|hi=बढ़िया!
|hr=Odlično!
|it=Grande!
|ja=良いですね!
|ko=좋아요!
|ky=Мыкты!
|mk=Одлично!
|ml=ഗംഭീരം!
|nl=Super goed!
|pl=Wspaniale!
|pt=Excelente!
|ro=Grozav!
|ru=Великолепно!
|sl=Odlično!
|sr=Одлично!
|sv=Jättebra!
|th=ยอดเยี่ยม!!!
|tl=Magaling!
|tr=Harika!
|vec=Beła!
|vi=Tuyệt!
|zh=很好!
|prg=Rīkiwiskan!
|default=Great!
}}}}} '''<noinclude>
{{Documentation|Template:Polling template}}
[[Category:Image with comment templates]]
</noinclude>
e3ro8dw1arvad5k03iozj4o6223e2lk
74584
74583
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:Great]]: Importing the Support template
74583
wikitext
text/x-wiki
[[File:Thumbs-up-icon.svg|15px|class=skin-invert|link=]] '''{{{1|{{LangSwitch
|ar=رائع!
|be-tarask=Выдатна!
|bn=দুর্দান্ত!
|de=Super!
|en=Great!
|eo=Bonege!
|es=¡Excelente!
|eu=Bikain!
|fi=Mainiota!
|fr=Super!
|hi=बढ़िया!
|hr=Odlično!
|it=Grande!
|ja=良いですね!
|ko=좋아요!
|ky=Мыкты!
|mk=Одлично!
|ml=ഗംഭീരം!
|nl=Super goed!
|pl=Wspaniale!
|pt=Excelente!
|ro=Grozav!
|ru=Великолепно!
|sl=Odlično!
|sr=Одлично!
|sv=Jättebra!
|th=ยอดเยี่ยม!!!
|tl=Magaling!
|tr=Harika!
|vec=Beła!
|vi=Tuyệt!
|zh=很好!
|prg=Rīkiwiskan!
|default=Great!
}}}}} '''<noinclude>
{{Documentation|Template:Polling template}}
[[Category:Image with comment templates]]
</noinclude>
e3ro8dw1arvad5k03iozj4o6223e2lk
Template:Half done
10
15829
74585
2026-07-30T20:45:45Z
TadejM
11747
+sl
74585
wikitext
text/x-wiki
[[File:yellow check.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch<!--
--> | lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
--> | ar = منجز جزئياً <!--
--> | bn = অর্ধেক করা হয়েছে<!--
--> | de = Halb erledigt<!--
--> | en = Half done<!--
--> | eo = Duone farita<!--
--> | es = Hecho parcialmente<!--
--> | it = Fatto a metà<!--
--> | fa = نیمهکاره انجام شد<!--
--> | hi = आधा हुआ<!--
--> | ja = 一部完了<!--
--> | ko = 일부 완료 <!--
—-> | ky = Жарым-жартылай аткарылды <!—-
--> | nl = Deels gedaan<!--
--> | pt = Feito parcialmente<!--
--> | ru = Сделано частично<!--
--> | sl = Napol urejeno<!--
--> | sr = Делимично урађено<!--
--> | sv = Delvis utfört<!--
--> | th = สำเร็จครึ่งหนึ่ง<!--
--> | tr = Yarısı yapıldı<!--
--> | vi = Xong phân nửa<!--
--> | zh = 完成一半<!--
--> | prg = Puswangīnuns<!--
-->}}}}}</bdi>'''<noinclude>
{{Documentation|Template:Polling template}}</noinclude>
1qdcgfya8l8uyfnod4u3tfbeocvu1a1
74586
74585
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:Half_done]]: Importing the Support template
74585
wikitext
text/x-wiki
[[File:yellow check.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch<!--
--> | lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
--> | ar = منجز جزئياً <!--
--> | bn = অর্ধেক করা হয়েছে<!--
--> | de = Halb erledigt<!--
--> | en = Half done<!--
--> | eo = Duone farita<!--
--> | es = Hecho parcialmente<!--
--> | it = Fatto a metà<!--
--> | fa = نیمهکاره انجام شد<!--
--> | hi = आधा हुआ<!--
--> | ja = 一部完了<!--
--> | ko = 일부 완료 <!--
—-> | ky = Жарым-жартылай аткарылды <!—-
--> | nl = Deels gedaan<!--
--> | pt = Feito parcialmente<!--
--> | ru = Сделано частично<!--
--> | sl = Napol urejeno<!--
--> | sr = Делимично урађено<!--
--> | sv = Delvis utfört<!--
--> | th = สำเร็จครึ่งหนึ่ง<!--
--> | tr = Yarısı yapıldı<!--
--> | vi = Xong phân nửa<!--
--> | zh = 完成一半<!--
--> | prg = Puswangīnuns<!--
-->}}}}}</bdi>'''<noinclude>
{{Documentation|Template:Polling template}}</noinclude>
1qdcgfya8l8uyfnod4u3tfbeocvu1a1
Template:On hold
10
15830
74587
2026-07-30T20:25:26Z
TadejM
11747
+sl
74587
wikitext
text/x-wiki
[[File:Time2wait.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar=بالإنتظار
|be-tarask = Прыпынена
|bn=অপেক্ষা করুন
|de=Abwartend
|en=On hold
|eo=Atendante
|es=En espera
|eu=Zain nago
|fa=در انتظار
|fi=Hallinnassa
|fr=En attente
|hi=विचाराधीन
|hr=Na čekanju
|hy=Ընթացքի մեջ
|it=In attesa
|ja=保留
|ko=보류
|mk=На чекање
|ml=കാത്തുനിൽക്കൂ
|pl=Odłożyć na później
|prg=Preistalinna
|pt=Em espera
|ro=În așteptare
|ru=В ожидании
|sl=Na čakanju
|sr=На чекању
|sq=Në pritje
|sv=Väntande
|th=รอผล
|tr=Beklemede
|zh-hans=搁置
|zh-hant=擱置
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
diz0s19qmwq2oggy9qoeej5f6f4rttw
74588
74587
2026-09-10T15:30:03Z
B722N
6898
1 revision imported from [[:commons:Template:On_hold]]: Importing the Support template
74587
wikitext
text/x-wiki
[[File:Time2wait.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar=بالإنتظار
|be-tarask = Прыпынена
|bn=অপেক্ষা করুন
|de=Abwartend
|en=On hold
|eo=Atendante
|es=En espera
|eu=Zain nago
|fa=در انتظار
|fi=Hallinnassa
|fr=En attente
|hi=विचाराधीन
|hr=Na čekanju
|hy=Ընթացքի մեջ
|it=In attesa
|ja=保留
|ko=보류
|mk=На чекање
|ml=കാത്തുനിൽക്കൂ
|pl=Odłożyć na później
|prg=Preistalinna
|pt=Em espera
|ro=În așteptare
|ru=В ожидании
|sl=Na čakanju
|sr=На чекању
|sq=Në pritje
|sv=Väntande
|th=รอผล
|tr=Beklemede
|zh-hans=搁置
|zh-hant=擱置
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
diz0s19qmwq2oggy9qoeej5f6f4rttw
Template:Polling template
10
15831
74589
2026-04-14T23:18:46Z
Iketsi
1442
typo
74589
wikitext
text/x-wiki
<noinclude>{{Protected|small=yes}}</noinclude>
{{TemplateBox
|1 = 1
|1label-en = text
|1d-be-tarask = Неабавязковы парамэтар, які дазваляе перавызначыць тэкст паведамленьня.
|1d-cs = Výjimečně používaný volitelný parametr, který umožňuje přepisovat standardní zprávu.
|1d-de = Der selten benutzte optionale Parameter erlaubt es, die Standardtextnachricht zu überschreiben.
|1d-en = Rarely used optional parameter allows to overwrite the default text message
|1d-ru = Необязательный параметр, заменяет текст сообщения.
|1d-zh-hans = 很少使用的选填参数,覆盖默认消息文字
|1type = line
|1stat = optional-
|2 = lang
|2label-en = language
|2d-be-tarask = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki> (дзе xx — код мовы ISO 639-2) дзеля вываду пэўнай мовай.
|2d-de = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki> (wobei xx der ISO 639-2-Sprachencode ist) für die Ausgabe in der gewünschten Sprache.
|2d-en = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki> (where xx is ISO 639-2 language code) for output in the specified language.
|2d-zh-hans = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki>(xx为ISO 639-2语言代码)用于输出特定语言。
|2type = line
|2stat = optional-
|name = {{BASEPAGENAME}}
|desc-be-tarask = Гэта ''шаблён галасаваньня''. Калі ласка, дадавайце свае лякалізацыі. Любую дапамогу ў абнаўленьні перакладаў можна запытваць на [[Commons:Administrators' noticeboard|старонцы запытаў да адміністратараў]].
|desc-cs = Toto je ''hlasovací šablona''. Neváhejte přidat překlady šablony. O jakoukoliv pomoc s editací těchto překladů můžete žádat na [[Commons:Administrators' noticeboard|nástěnce správců]].
|desc-de = Dies ist eine ''Abstimmungsvorlage''. Es kann jederzeit eine Übersetzung hinzugefügt werden. Jegliche Hilfe zur Aktualisierung dieser Übersetzung kann über [[Commons:Administrators' noticeboard|Administratorenanfragen]] angefordert werden.
|desc-en = This is a ''[[Commons:Polling templates|polling template]]''.<br>
<span style="font-weight:lighter">Feel free to add language translations. Any help in updating these translations may be requested at the [[Commons:Administrators' noticeboard|Administrators' Noticeboard]].</span>
|desc-td-en = This is a polling template.
|desc-pl = To jest ''szablon głosowania''. Możesz pomóc przetłumaczyć go na inne języki. W wypadku zabezpieczonych szablonów o umieszczeniu tłumaczenia można prosić na [[Commons:Administrators' noticeboard|stronie próśb do administratorów]].
|desc-pt = Esta é uma ''predefinição de votação''. Sinta-se livre para adicionar traduções notras línguas. Qualquer ajuda na actualização destas traduções pode ser solicitada nos [[Commons:Administrators' noticeboard|pedidos aos administradores]].
|desc-ru = Это ''шаблон для голосования''. Вы можете помочь, добавив язык в шаблон, а если шаблон защищён, напишите на [[Commons:Administrators' noticeboard|странице запросов к администраторам]].
|desc-th = นี่คือแม่แบบลงคะแนน หากต้องการเพิ่มภาษาของคุณ กรุณาส่งคำขอที่[[Commons:Administrators' noticeboard|หน้าแจ้งผู้ดูแลระบบ]]
|desc-zh-hans = 这是一个[[Commons:Polling templates|投票模板]]。请随意添加语言翻译。任何更新这些译文的帮助可以在[[Commons:Administrators' noticeboard|管理员通知栏]]请求。
|namespace = all
|usergroup = all
|usage-notes = {{#switch:{{BASEPAGENAME}}
<!-- same order as in [[Template:Polling template/see also]] -->
|Support = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? --><br>
{{mbox|image=none|text=''{{tl|Sup}}'' redirects here. For the actual '''''sup'''erscript template'', see {{tl|Exp}} or {{tl|Sup sub}}.|margin=0em|type=message}}
|Strong support = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak support = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Agree = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Unsupport = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Withdraw = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Oppose = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Strong oppose = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak oppose = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Disagree = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Neutral = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? --><br>
{{mbox|image=none|text=''{{tl|Vn}}'' (Vote neutral) redirects here. For the '''''v'''ernacular '''n'''ames template'', see {{tl|VN}}.|margin=0em|type=message}}
|Abstain = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|No proposal = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Comment = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Info = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Warning sign = This template is for use on [[Wikipedia:talk pages|talk pages]] to highlight the importance / warn. It is used to visually draw attention inline in a message, to a warning about something, such as a coding difficulty to watch out for, inappropriate editor behavior, etc.<br>{{warnsign}} Not to be mixed with {{tl|warning}}!
|Vote wait = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|On hold = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Question = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Request = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote keep = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote speedykeep = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak keep = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
<!-- |Vote keep category = usage-notes for this polling template are defined on its own doc page: [[Template:Vote keep category/doc]] -->
<!-- |Vote merge = usage-notes for this polling template are defined on its own doc page: [[Template:Vote merge/doc]]-->
|Vote move = {{tl|Vote move}} is for files; the template {{tl|Vote rename category}} is for categories<br>{{warnsign}} Not to be mixed with {{tl|move}}!
|Vote rename category = * Use <code><nowiki>{{Vote rename category|||A|B}}</nowiki></code> which renders to {{Vote rename category|||A|B}}
* Use <code><nowiki>{{Vote rename category|from=A|to=B}}</nowiki></code> for the same
* or use the "shorthand" <code>{{tlx|Vrnc|A|B}}</code>
* for files use the template {{tl|Vote move}}
|Vote redirect = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
<!-- |Vote disambiguate category = usage-notes for this polling template are defined on its own doc page: [[Template:Vote disambiguate category/doc]]-->
|Restore = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Delist = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Delistandreplace = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote delete = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote speedy = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak delete = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Resolved = {{tl|Resolved}} is a [[Commons:Polling templates|Polling templates]]; the template {{tl|Section resolved}} marks a thread on a talk page as resolved but also enables ''automatic archiving'' of selected threads.
|Resolved by consensus = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Resolved without objection = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Unresolved discussion = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|No consensus = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Already done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Half done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Not done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Skip = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Great = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Flower = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
}}
|type = formatting
|example = <includeonly>Hello World!</includeonly>
|i18n-method = switch
|i18n-desc = For {{tl|Done}}, see [[translatewiki:Special:Translations/MediaWiki:feedback-close|translatewiki.net]].<br>For {{tl|Not done}}, see {{tl|I18n/not done}}.
|i18n-mediawiki-msg =
|i18n-subpage =
|seealso = {{#switch:{{BASEPAGENAME}}<!-- same order as in [[Template:Polling template/see also]] -->
|Support = {{Distinguish|text={{tl|Smallsup}} – for the text formatting template}}
|Strong support =
|Weak support =
|Agree =
|Unsupport =
|Withdraw =
|Oppose =
|Strong oppose =
|Weak oppose =
|Disagree =
|Neutral =
|Abstain =
|No proposal =
|Comment =
|Info =
|Warning sign =
|Vote wait = {{Distinguish|text={{T|Wait}} – for the work-in-progress template}}
|On hold =
|Question =
|Request =
|Vote keep =
|Vote speedykeep =
|Weak keep =
<!-- |Vote keep category = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vote keep category/doc]] -->
<!-- |Vote merge = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vote merge/doc]] -->
|Vote move =
<!-- |Vote rename category = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vrnc/doc]] -->
|Vote redirect =
<!-- |Vote disambiguate category = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vote disambiguate category/doc]] -->
|Restore =
|Delist =
|Delistandreplace =
|Vote delete =
|Vote speedy =
|Weak delete =
|Resolved =
|Resolved by consensus =
|Resolved without objection =
|Unresolved discussion =
|No consensus =
|Done =
|Already done =
|Half done =
|Not done =
|Skip =
|Great =
|Flower =
}}
{{polling template/see also}}
|setscats =
|print = one
|shorthand = {{#switch:{{BASEPAGENAME}}<!-- same order as in [[Template:Polling template/see also]] -->
|Support = {{tl|S}}, {{tl|Sup}}, {{tl|Yes}}, {{tl|Pro}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ASupport&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Strong support = {{tl|SSupport}}, {{tl|Strong pro}}, {{tl|Love}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AStrong+support&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak support = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+support&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Agree = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Unsupport = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Withdraw = {{tl|Wdn}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWithdraw&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Oppose = {{tl|O}}, {{tl|Opp}}, {{tl|Contra}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AOppose&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Strong oppose = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AStrong+oppose&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak oppose = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+oppose&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Disagree = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Neutral = {{tl|N}}, {{tl|Vn}}, {{tl|Neu}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANeutral&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Abstain = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|No proposal = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANo+proposal&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Comment = {{tl|Com}}, {{tl|Cmt}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AComment&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Info = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Warning sign = {{tl|Warnsign}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWarning+sign&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote wait = {{tl|Vw}}, {{tl|VW}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+wait&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|On hold = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AOn+hold&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Question = {{tl|?}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AQuestion&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Request = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote keep = {{tl|K}}, {{tl|Vk}}, {{tl|Keep}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+keep&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote speedykeep = {{tl|Vsk}}, {{tl|Speedykeep}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+speedykeep&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak keep = {{tl|Wk}}, {{tl|Vwk}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+keep&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
<!-- |Vote keep category = shorthands for this polling template are defined on its own doc page: [[Template:Vote keep category/doc]] -->
<!-- |Vote merge = shorthands for this polling template are defined on its own doc page: [[Template:Vote merge/doc]] -->
|Vote move = {{tl|Vote move}} is for files; the template {{tl|Vote rename category}} is for categories<br>{{warnsign}} Not to be mixed with {{tl|move}}!
<!-- |Vote rename category = {{Vrnc}} is not only a shorthand, so it is listed under usage-notes, see also its own doc page: [[Template:Vrnc/doc]] -->
|Vote redirect = {{tl|Vrd}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+redirect&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
<!-- |Vote disambiguate category = shorthands for this polling template are defined on its own doc page: [[Template:Vote disambiguate category/doc]] -->
|Restore = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Delist = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Delistandreplace = {{tl|Dar}}, {{tl|D&R}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ADelistandreplace&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote delete = {{tl|Vd}}, {{tl|VD}}, {{tl|Remove}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+delete&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote speedy = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+speedy&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak delete = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+delete&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Resolved = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Resolved by consensus = {{tl|Resolved bc}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AResolved+by+consensus&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Resolved without objection = {{tl|Resolved wo}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AResolved+without+objection&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Unresolved discussion = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AUnresolved+discussion&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|No consensus = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANo+consensus&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Done = {{tl|☑}}, {{tl|D}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Already done = {{tl|Adone}}, {{tl|Already}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AAlready+done&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Half done = {{tl|Hdone}}, {{tl|Half}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AHalf+done&namespace=10&hidetrans=1&hidelinks=1 check here]</small><br>or use the shorthand {{tl|Partly}} (equal to <nowiki>{{Half done|Partly done}}</nowiki>) which renders {{Partly}}<br>or use the shorthand {{tl|Mostly}} (equal to <nowiki>{{Half done|Mostly done}}</nowiki>) which renders {{Mostly}}
|Not done = {{tl|Nd}}, {{tl|Ndone}}, {{tl|Notdone}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANot+done&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Skip = {{tl|Skip}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ASkip&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Great = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Flower = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
}}
|useTemplateData = only
}}<includeonly>
== {{LangSwitch|be-tarask=Іншыя прыклады|de=Weitere Beispiele|th=ตัวอย่างเพิ่มเติม|en=More examples}} ==
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>}}</nowiki></code> : {{LangSwitch
|be-tarask=Адлюструе назву на зададзенай у наладах карыстальніка мове:
|cs=Zobrazí název šablony v závislosti na uživatelském nastavení jazyka:
|de=es wird der Name in der vom Benutzer eingestellten Sprache angezeigt:
|en=Will try to display the label in the user's desired language:
|th=จะแสดงชื่อในภาษาที่ผู้ใช้เลือก:
|zh-hans=将显示用户设置指定语言的名称:
}} {{ {{BASEPAGENAME}} }}
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=</nowiki>{{LangSwitch|be-tarask=pl|cs=pl|fr=pl|en=pl|th=pl}}<nowiki>}}</nowiki></code> : {{LangSwitch
|be-tarask=Заўсёды адлюстроўвацьме назву па-польску:
|cs=Vždy zobrazí název v polštině:
|de=es wird immmer der polnischsprachige Name angezeigt:
|en=Try displaying the label in Polish (falling back to another language if the label isn't defined for that language):
|th=จะแสดงในภาษาโปแลนด์เสมอ:
|zh-hans=将始终显示波兰语的名称:
}} {{ {{BASEPAGENAME}}|lang={{LangSwitch|be-tarask=pl|cs=pl|fr=pl|en=pl|th=pl}}}}
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|{{LangSwitch|be-tarask=Вітаем|cs=Ahoj|de=Hallo|en=hello|th=สวัสดี}}<nowiki>}}</nowiki></code> : {{LangSwitch
|be-tarask=Побач са стандартнай выявай адлюструецца ўласны тэкст:
|cs=Ponechá ikonu, ale zobrazí vlastní text:
|de=es wird das Icon beibehalten aber mit der eigenen Mitteilung:
|en=Will only keep the icon and replace the default label with a custom message (which must not contain equal signs ("=")):
|th=แสดงไอคอนเช่นเดิมแต่เปลี่ยนข้อความ:
|zh-hans=将保留图标,并添加自定义消息:
}} {{ {{BASEPAGENAME}}|{{LangSwitch|be-tarask=Вітаем|cs=Ahoj|de=Hallo|en=hello|th=สวัสดี}}}}
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|}}</nowiki></code> : {{LangSwitch
|be-tarask=Адлюструецца толькі стандартная выява бяз тэксту:
|cs=Zobrazí ikonu bez textu:
|de=es wird das Icon beibehalten aber ohne Mitteilung:
|en=Will only display the icon (without a label):
|th=จะมีไอคอนแต่ไม่มีข้อความ:
|zh-hans=将保留图标,但不显示消息文字:
}} {{ {{BASEPAGENAME}}|}}</includeonly>
<includeonly>
[[Category:Polling templates]]
[[Category:Internationalization templates using LangSwitch]]
[[Category:Internationalised message templates]]</includeonly>
<noinclude>
{{Documentation}}
[[Category:Internationalised documentation templates]]
[[Category:Template namespace templates]]</noinclude>
nqkivhdqcylzw3h1rdn3lig2bzzgb5e
74590
74589
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Polling_template]]: Importing the Support template
74589
wikitext
text/x-wiki
<noinclude>{{Protected|small=yes}}</noinclude>
{{TemplateBox
|1 = 1
|1label-en = text
|1d-be-tarask = Неабавязковы парамэтар, які дазваляе перавызначыць тэкст паведамленьня.
|1d-cs = Výjimečně používaný volitelný parametr, který umožňuje přepisovat standardní zprávu.
|1d-de = Der selten benutzte optionale Parameter erlaubt es, die Standardtextnachricht zu überschreiben.
|1d-en = Rarely used optional parameter allows to overwrite the default text message
|1d-ru = Необязательный параметр, заменяет текст сообщения.
|1d-zh-hans = 很少使用的选填参数,覆盖默认消息文字
|1type = line
|1stat = optional-
|2 = lang
|2label-en = language
|2d-be-tarask = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki> (дзе xx — код мовы ISO 639-2) дзеля вываду пэўнай мовай.
|2d-de = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki> (wobei xx der ISO 639-2-Sprachencode ist) für die Ausgabe in der gewünschten Sprache.
|2d-en = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki> (where xx is ISO 639-2 language code) for output in the specified language.
|2d-zh-hans = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki>(xx为ISO 639-2语言代码)用于输出特定语言。
|2type = line
|2stat = optional-
|name = {{BASEPAGENAME}}
|desc-be-tarask = Гэта ''шаблён галасаваньня''. Калі ласка, дадавайце свае лякалізацыі. Любую дапамогу ў абнаўленьні перакладаў можна запытваць на [[Commons:Administrators' noticeboard|старонцы запытаў да адміністратараў]].
|desc-cs = Toto je ''hlasovací šablona''. Neváhejte přidat překlady šablony. O jakoukoliv pomoc s editací těchto překladů můžete žádat na [[Commons:Administrators' noticeboard|nástěnce správců]].
|desc-de = Dies ist eine ''Abstimmungsvorlage''. Es kann jederzeit eine Übersetzung hinzugefügt werden. Jegliche Hilfe zur Aktualisierung dieser Übersetzung kann über [[Commons:Administrators' noticeboard|Administratorenanfragen]] angefordert werden.
|desc-en = This is a ''[[Commons:Polling templates|polling template]]''.<br>
<span style="font-weight:lighter">Feel free to add language translations. Any help in updating these translations may be requested at the [[Commons:Administrators' noticeboard|Administrators' Noticeboard]].</span>
|desc-td-en = This is a polling template.
|desc-pl = To jest ''szablon głosowania''. Możesz pomóc przetłumaczyć go na inne języki. W wypadku zabezpieczonych szablonów o umieszczeniu tłumaczenia można prosić na [[Commons:Administrators' noticeboard|stronie próśb do administratorów]].
|desc-pt = Esta é uma ''predefinição de votação''. Sinta-se livre para adicionar traduções notras línguas. Qualquer ajuda na actualização destas traduções pode ser solicitada nos [[Commons:Administrators' noticeboard|pedidos aos administradores]].
|desc-ru = Это ''шаблон для голосования''. Вы можете помочь, добавив язык в шаблон, а если шаблон защищён, напишите на [[Commons:Administrators' noticeboard|странице запросов к администраторам]].
|desc-th = นี่คือแม่แบบลงคะแนน หากต้องการเพิ่มภาษาของคุณ กรุณาส่งคำขอที่[[Commons:Administrators' noticeboard|หน้าแจ้งผู้ดูแลระบบ]]
|desc-zh-hans = 这是一个[[Commons:Polling templates|投票模板]]。请随意添加语言翻译。任何更新这些译文的帮助可以在[[Commons:Administrators' noticeboard|管理员通知栏]]请求。
|namespace = all
|usergroup = all
|usage-notes = {{#switch:{{BASEPAGENAME}}
<!-- same order as in [[Template:Polling template/see also]] -->
|Support = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? --><br>
{{mbox|image=none|text=''{{tl|Sup}}'' redirects here. For the actual '''''sup'''erscript template'', see {{tl|Exp}} or {{tl|Sup sub}}.|margin=0em|type=message}}
|Strong support = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak support = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Agree = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Unsupport = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Withdraw = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Oppose = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Strong oppose = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak oppose = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Disagree = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Neutral = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? --><br>
{{mbox|image=none|text=''{{tl|Vn}}'' (Vote neutral) redirects here. For the '''''v'''ernacular '''n'''ames template'', see {{tl|VN}}.|margin=0em|type=message}}
|Abstain = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|No proposal = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Comment = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Info = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Warning sign = This template is for use on [[Wikipedia:talk pages|talk pages]] to highlight the importance / warn. It is used to visually draw attention inline in a message, to a warning about something, such as a coding difficulty to watch out for, inappropriate editor behavior, etc.<br>{{warnsign}} Not to be mixed with {{tl|warning}}!
|Vote wait = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|On hold = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Question = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Request = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote keep = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote speedykeep = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak keep = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
<!-- |Vote keep category = usage-notes for this polling template are defined on its own doc page: [[Template:Vote keep category/doc]] -->
<!-- |Vote merge = usage-notes for this polling template are defined on its own doc page: [[Template:Vote merge/doc]]-->
|Vote move = {{tl|Vote move}} is for files; the template {{tl|Vote rename category}} is for categories<br>{{warnsign}} Not to be mixed with {{tl|move}}!
|Vote rename category = * Use <code><nowiki>{{Vote rename category|||A|B}}</nowiki></code> which renders to {{Vote rename category|||A|B}}
* Use <code><nowiki>{{Vote rename category|from=A|to=B}}</nowiki></code> for the same
* or use the "shorthand" <code>{{tlx|Vrnc|A|B}}</code>
* for files use the template {{tl|Vote move}}
|Vote redirect = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
<!-- |Vote disambiguate category = usage-notes for this polling template are defined on its own doc page: [[Template:Vote disambiguate category/doc]]-->
|Restore = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Delist = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Delistandreplace = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote delete = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote speedy = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak delete = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Resolved = {{tl|Resolved}} is a [[Commons:Polling templates|Polling templates]]; the template {{tl|Section resolved}} marks a thread on a talk page as resolved but also enables ''automatic archiving'' of selected threads.
|Resolved by consensus = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Resolved without objection = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Unresolved discussion = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|No consensus = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Already done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Half done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Not done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Skip = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Great = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Flower = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
}}
|type = formatting
|example = <includeonly>Hello World!</includeonly>
|i18n-method = switch
|i18n-desc = For {{tl|Done}}, see [[translatewiki:Special:Translations/MediaWiki:feedback-close|translatewiki.net]].<br>For {{tl|Not done}}, see {{tl|I18n/not done}}.
|i18n-mediawiki-msg =
|i18n-subpage =
|seealso = {{#switch:{{BASEPAGENAME}}<!-- same order as in [[Template:Polling template/see also]] -->
|Support = {{Distinguish|text={{tl|Smallsup}} – for the text formatting template}}
|Strong support =
|Weak support =
|Agree =
|Unsupport =
|Withdraw =
|Oppose =
|Strong oppose =
|Weak oppose =
|Disagree =
|Neutral =
|Abstain =
|No proposal =
|Comment =
|Info =
|Warning sign =
|Vote wait = {{Distinguish|text={{T|Wait}} – for the work-in-progress template}}
|On hold =
|Question =
|Request =
|Vote keep =
|Vote speedykeep =
|Weak keep =
<!-- |Vote keep category = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vote keep category/doc]] -->
<!-- |Vote merge = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vote merge/doc]] -->
|Vote move =
<!-- |Vote rename category = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vrnc/doc]] -->
|Vote redirect =
<!-- |Vote disambiguate category = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vote disambiguate category/doc]] -->
|Restore =
|Delist =
|Delistandreplace =
|Vote delete =
|Vote speedy =
|Weak delete =
|Resolved =
|Resolved by consensus =
|Resolved without objection =
|Unresolved discussion =
|No consensus =
|Done =
|Already done =
|Half done =
|Not done =
|Skip =
|Great =
|Flower =
}}
{{polling template/see also}}
|setscats =
|print = one
|shorthand = {{#switch:{{BASEPAGENAME}}<!-- same order as in [[Template:Polling template/see also]] -->
|Support = {{tl|S}}, {{tl|Sup}}, {{tl|Yes}}, {{tl|Pro}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ASupport&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Strong support = {{tl|SSupport}}, {{tl|Strong pro}}, {{tl|Love}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AStrong+support&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak support = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+support&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Agree = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Unsupport = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Withdraw = {{tl|Wdn}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWithdraw&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Oppose = {{tl|O}}, {{tl|Opp}}, {{tl|Contra}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AOppose&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Strong oppose = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AStrong+oppose&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak oppose = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+oppose&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Disagree = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Neutral = {{tl|N}}, {{tl|Vn}}, {{tl|Neu}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANeutral&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Abstain = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|No proposal = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANo+proposal&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Comment = {{tl|Com}}, {{tl|Cmt}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AComment&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Info = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Warning sign = {{tl|Warnsign}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWarning+sign&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote wait = {{tl|Vw}}, {{tl|VW}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+wait&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|On hold = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AOn+hold&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Question = {{tl|?}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AQuestion&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Request = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote keep = {{tl|K}}, {{tl|Vk}}, {{tl|Keep}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+keep&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote speedykeep = {{tl|Vsk}}, {{tl|Speedykeep}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+speedykeep&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak keep = {{tl|Wk}}, {{tl|Vwk}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+keep&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
<!-- |Vote keep category = shorthands for this polling template are defined on its own doc page: [[Template:Vote keep category/doc]] -->
<!-- |Vote merge = shorthands for this polling template are defined on its own doc page: [[Template:Vote merge/doc]] -->
|Vote move = {{tl|Vote move}} is for files; the template {{tl|Vote rename category}} is for categories<br>{{warnsign}} Not to be mixed with {{tl|move}}!
<!-- |Vote rename category = {{Vrnc}} is not only a shorthand, so it is listed under usage-notes, see also its own doc page: [[Template:Vrnc/doc]] -->
|Vote redirect = {{tl|Vrd}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+redirect&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
<!-- |Vote disambiguate category = shorthands for this polling template are defined on its own doc page: [[Template:Vote disambiguate category/doc]] -->
|Restore = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Delist = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Delistandreplace = {{tl|Dar}}, {{tl|D&R}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ADelistandreplace&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote delete = {{tl|Vd}}, {{tl|VD}}, {{tl|Remove}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+delete&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote speedy = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+speedy&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak delete = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+delete&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Resolved = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Resolved by consensus = {{tl|Resolved bc}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AResolved+by+consensus&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Resolved without objection = {{tl|Resolved wo}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AResolved+without+objection&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Unresolved discussion = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AUnresolved+discussion&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|No consensus = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANo+consensus&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Done = {{tl|☑}}, {{tl|D}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Already done = {{tl|Adone}}, {{tl|Already}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AAlready+done&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Half done = {{tl|Hdone}}, {{tl|Half}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AHalf+done&namespace=10&hidetrans=1&hidelinks=1 check here]</small><br>or use the shorthand {{tl|Partly}} (equal to <nowiki>{{Half done|Partly done}}</nowiki>) which renders {{Partly}}<br>or use the shorthand {{tl|Mostly}} (equal to <nowiki>{{Half done|Mostly done}}</nowiki>) which renders {{Mostly}}
|Not done = {{tl|Nd}}, {{tl|Ndone}}, {{tl|Notdone}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANot+done&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Skip = {{tl|Skip}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ASkip&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Great = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Flower = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
}}
|useTemplateData = only
}}<includeonly>
== {{LangSwitch|be-tarask=Іншыя прыклады|de=Weitere Beispiele|th=ตัวอย่างเพิ่มเติม|en=More examples}} ==
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>}}</nowiki></code> : {{LangSwitch
|be-tarask=Адлюструе назву на зададзенай у наладах карыстальніка мове:
|cs=Zobrazí název šablony v závislosti na uživatelském nastavení jazyka:
|de=es wird der Name in der vom Benutzer eingestellten Sprache angezeigt:
|en=Will try to display the label in the user's desired language:
|th=จะแสดงชื่อในภาษาที่ผู้ใช้เลือก:
|zh-hans=将显示用户设置指定语言的名称:
}} {{ {{BASEPAGENAME}} }}
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=</nowiki>{{LangSwitch|be-tarask=pl|cs=pl|fr=pl|en=pl|th=pl}}<nowiki>}}</nowiki></code> : {{LangSwitch
|be-tarask=Заўсёды адлюстроўвацьме назву па-польску:
|cs=Vždy zobrazí název v polštině:
|de=es wird immmer der polnischsprachige Name angezeigt:
|en=Try displaying the label in Polish (falling back to another language if the label isn't defined for that language):
|th=จะแสดงในภาษาโปแลนด์เสมอ:
|zh-hans=将始终显示波兰语的名称:
}} {{ {{BASEPAGENAME}}|lang={{LangSwitch|be-tarask=pl|cs=pl|fr=pl|en=pl|th=pl}}}}
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|{{LangSwitch|be-tarask=Вітаем|cs=Ahoj|de=Hallo|en=hello|th=สวัสดี}}<nowiki>}}</nowiki></code> : {{LangSwitch
|be-tarask=Побач са стандартнай выявай адлюструецца ўласны тэкст:
|cs=Ponechá ikonu, ale zobrazí vlastní text:
|de=es wird das Icon beibehalten aber mit der eigenen Mitteilung:
|en=Will only keep the icon and replace the default label with a custom message (which must not contain equal signs ("=")):
|th=แสดงไอคอนเช่นเดิมแต่เปลี่ยนข้อความ:
|zh-hans=将保留图标,并添加自定义消息:
}} {{ {{BASEPAGENAME}}|{{LangSwitch|be-tarask=Вітаем|cs=Ahoj|de=Hallo|en=hello|th=สวัสดี}}}}
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|}}</nowiki></code> : {{LangSwitch
|be-tarask=Адлюструецца толькі стандартная выява бяз тэксту:
|cs=Zobrazí ikonu bez textu:
|de=es wird das Icon beibehalten aber ohne Mitteilung:
|en=Will only display the icon (without a label):
|th=จะมีไอคอนแต่ไม่มีข้อความ:
|zh-hans=将保留图标,但不显示消息文字:
}} {{ {{BASEPAGENAME}}|}}</includeonly>
<includeonly>
[[Category:Polling templates]]
[[Category:Internationalization templates using LangSwitch]]
[[Category:Internationalised message templates]]</includeonly>
<noinclude>
{{Documentation}}
[[Category:Internationalised documentation templates]]
[[Category:Template namespace templates]]</noinclude>
nqkivhdqcylzw3h1rdn3lig2bzzgb5e
Template:Request
10
15832
74591
2024-09-29T13:41:20Z
Kxeon
11750
prūsiskan
74591
wikitext
text/x-wiki
[[File:Pictogram voting question-blue.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch<!--
-->| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
--> | ar = طلب<!--
--> | az = İstək<!--
--> | be | be-x-old | be-tarask = Просьба<!--
--> | bg = Заявка<!--
--> | bs = Zahtjev<!--
--> | bn = অনুরোধ<!--
--> | cs = Žádost<!--
--> | da = Anmodning<!--
--> | de = Anfrage<!--
--> | en = Request<!--
-->| eo = Peto<!--
--> | es = Petición<!--
-->| eu = Eskaera<!--
--> | fa =درخواست<!--
--> | fi = Pyyntö<!--
--> | fr = Requête<!--
-->| fy = Fersyk<!--
--> | ga = Iarratas<!--
--> | gl = Solicitude<!--
--> | it = Richiesta<!--
--> | hi = अनुरोध<!--
--> | hr = Zahtjev<!--
--> | hu = Kérés<!--
--> | hy = Դիմում<!--
--> | ja = 依頼<!--
--> | ka = თხოვნა<!--
--> | kk = Сұраныс<!--
--> | ko = 요청<!--
--> | mk = Молба<!--
--> | ml = അഭ്യർത്ഥന<!--
--> | nl = Verzoek<!--
--> | nb = Forespørsel<!--
--> | nn = Førespurnad<!--
--> | pl = Prośba<!--
--> | pt = Pedido<!--
--> | ro = Solicitare<!--
--> | ru = Просьба<!--
--> | sco = Request<!--
--> | sk = Žiadosť<!--
--> | sl = Prošnja<!--
--> | sr = Захтев<!--
--> | sv = Önskemål<!--
--> | sq = Kërkesë<!--
--> | th = คำขอ<!--
--> | tl = Kahilingan<!--
--> | tr = İstek<!--
--> | uk = Запит<!--
--> | vi = Yêu cầu<!--
--> | prg = Madla<!--
--> | zh-hans = 请求<!--
--> | zh-hant = 請求<!--
-->}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
pklbxs3egzq1uhbfz31cfa2a5lm06m3
74592
74591
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Request]]: Importing the Support template
74591
wikitext
text/x-wiki
[[File:Pictogram voting question-blue.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch<!--
-->| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
--> | ar = طلب<!--
--> | az = İstək<!--
--> | be | be-x-old | be-tarask = Просьба<!--
--> | bg = Заявка<!--
--> | bs = Zahtjev<!--
--> | bn = অনুরোধ<!--
--> | cs = Žádost<!--
--> | da = Anmodning<!--
--> | de = Anfrage<!--
--> | en = Request<!--
-->| eo = Peto<!--
--> | es = Petición<!--
-->| eu = Eskaera<!--
--> | fa =درخواست<!--
--> | fi = Pyyntö<!--
--> | fr = Requête<!--
-->| fy = Fersyk<!--
--> | ga = Iarratas<!--
--> | gl = Solicitude<!--
--> | it = Richiesta<!--
--> | hi = अनुरोध<!--
--> | hr = Zahtjev<!--
--> | hu = Kérés<!--
--> | hy = Դիմում<!--
--> | ja = 依頼<!--
--> | ka = თხოვნა<!--
--> | kk = Сұраныс<!--
--> | ko = 요청<!--
--> | mk = Молба<!--
--> | ml = അഭ്യർത്ഥന<!--
--> | nl = Verzoek<!--
--> | nb = Forespørsel<!--
--> | nn = Førespurnad<!--
--> | pl = Prośba<!--
--> | pt = Pedido<!--
--> | ro = Solicitare<!--
--> | ru = Просьба<!--
--> | sco = Request<!--
--> | sk = Žiadosť<!--
--> | sl = Prošnja<!--
--> | sr = Захтев<!--
--> | sv = Önskemål<!--
--> | sq = Kërkesë<!--
--> | th = คำขอ<!--
--> | tl = Kahilingan<!--
--> | tr = İstek<!--
--> | uk = Запит<!--
--> | vi = Yêu cầu<!--
--> | prg = Madla<!--
--> | zh-hans = 请求<!--
--> | zh-hant = 請求<!--
-->}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
pklbxs3egzq1uhbfz31cfa2a5lm06m3
Template:Restore
10
15833
74593
2026-07-30T20:39:56Z
TadejM
11747
+sl
74593
wikitext
text/x-wiki
[[File:Symbol redirect vote.svg|15px|link=]]''' <bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar=استعاد
|be-tarask=Аднавіць
|cs=Obnovit
|bn=পুনরুদ্ধার করুন
|de=Wiederherstellen
|en=Restore
|eo=Restaŭri
|es=Restaurar
|eu=Berrezarri
|fr=Restaurer
|hi=पुनर्स्थापित करें
|hr=Vratiti
|it=Ripristinare
|ja=復元
|ko=복원
|mk=Поврати
|ml=പുനഃസ്ഥാപിക്കുക
|nl=Herstellen
|pl=Odtworzyć
|pt=Restaurar
|ro=Restaurare
|ru=Восстановить
|sl=Obnovimo
|sv=Återställ
|th=นำกลับ
|tr=Onarılsın
|prg=Etteikāis
|zh-hans=恢复
|zh-hant=恢復
|vi=Phục hồi
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
ednbe1qdqoo0o64r3r4i1jovxwdqr9l
74594
74593
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Restore]]: Importing the Support template
74593
wikitext
text/x-wiki
[[File:Symbol redirect vote.svg|15px|link=]]''' <bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar=استعاد
|be-tarask=Аднавіць
|cs=Obnovit
|bn=পুনরুদ্ধার করুন
|de=Wiederherstellen
|en=Restore
|eo=Restaŭri
|es=Restaurar
|eu=Berrezarri
|fr=Restaurer
|hi=पुनर्स्थापित करें
|hr=Vratiti
|it=Ripristinare
|ja=復元
|ko=복원
|mk=Поврати
|ml=പുനഃസ്ഥാപിക്കുക
|nl=Herstellen
|pl=Odtworzyć
|pt=Restaurar
|ro=Restaurare
|ru=Восстановить
|sl=Obnovimo
|sv=Återställ
|th=นำกลับ
|tr=Onarılsın
|prg=Etteikāis
|zh-hans=恢复
|zh-hant=恢復
|vi=Phục hồi
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
ednbe1qdqoo0o64r3r4i1jovxwdqr9l
Template:Strong oppose
10
15834
74595
2024-09-30T18:22:06Z
Matrix
8894
per https://commons.wikimedia.org/w/index.php?title=Commons%3AAdministrators%27_noticeboard&diff=930424171&oldid=930292955#Translations_of_Vote_Templates_into_Prussian_(prg)
74595
wikitext
text/x-wiki
[[File:Symbol oppose vote oversat.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = ضد بشدَّة
| az = Şiddətlə qarşıyam
| be-tarask = Катэгарычна супраць
| bg = Силно против
| bn = জোরালো বিরোধিতা
| bs = Strogo protiv
| cs = Silně proti
| de = klares Kontra
| en = Strong oppose
| eo = Forte kontraŭ
| es = Muy en contra
| eu = Aurka, erabat
| fa = مخالف شدید
| fi = Vahva vastustus
| fr = Contre fort
| fy = Sterk tsjin
| gl = Discordo completamente
| hi = प्रबल विरोध
| hu = Erősen ellenzem
| hr = Snažno protiv
| hy = Կտրականապես դեմ եմ
| it = Fortemente contrario
| ja = 強く反対
| ka = სასტიკი წინააღმდეგი
| kk = Қатты қарсымын
| ko = 강력 반대
| mk = Категорично против
| ml = കടുത്ത എതിർപ്പ്
| nl = Sterk tegen
| nn = Sterkt imot
| pl = Mocne przeciw
| prg= Spārts emprīkistatina
| pt = Discordo fortemente
| ro = Categoric contra
| ru = Категорически против
| sco= Strong oppose
| sl = Zelo proti.
| sr = Јако против
| sv = Starkt emot
| th = ไม่เห็นด้วยอย่างยิ่ง
| tl = Malakas na tutol
| tr = Şiddetle karşı
| uk = Категорично проти
| zh-hans = 强烈反对
| zh-hant = 強烈反對
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
l4z2z2spm1jevulae1wf2u355bbaop0
74596
74595
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Strong_oppose]]: Importing the Support template
74595
wikitext
text/x-wiki
[[File:Symbol oppose vote oversat.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = ضد بشدَّة
| az = Şiddətlə qarşıyam
| be-tarask = Катэгарычна супраць
| bg = Силно против
| bn = জোরালো বিরোধিতা
| bs = Strogo protiv
| cs = Silně proti
| de = klares Kontra
| en = Strong oppose
| eo = Forte kontraŭ
| es = Muy en contra
| eu = Aurka, erabat
| fa = مخالف شدید
| fi = Vahva vastustus
| fr = Contre fort
| fy = Sterk tsjin
| gl = Discordo completamente
| hi = प्रबल विरोध
| hu = Erősen ellenzem
| hr = Snažno protiv
| hy = Կտրականապես դեմ եմ
| it = Fortemente contrario
| ja = 強く反対
| ka = სასტიკი წინააღმდეგი
| kk = Қатты қарсымын
| ko = 강력 반대
| mk = Категорично против
| ml = കടുത്ത എതിർപ്പ്
| nl = Sterk tegen
| nn = Sterkt imot
| pl = Mocne przeciw
| prg= Spārts emprīkistatina
| pt = Discordo fortemente
| ro = Categoric contra
| ru = Категорически против
| sco= Strong oppose
| sl = Zelo proti.
| sr = Јако против
| sv = Starkt emot
| th = ไม่เห็นด้วยอย่างยิ่ง
| tl = Malakas na tutol
| tr = Şiddetle karşı
| uk = Категорично проти
| zh-hans = 强烈反对
| zh-hant = 強烈反對
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
l4z2z2spm1jevulae1wf2u355bbaop0
Template:Strong support
10
15835
74597
2025-09-20T04:24:23Z
Ch
11741
74597
wikitext
text/x-wiki
[[File:Symbol strong support vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch<!--
--> | lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
--> | ar = مع بشدَّة<!--
--> | az = Güclü dəstək<!--
--> | be | be-x-old | be-tarask = Горача падтрымліваю<!--
--> | bn = জোরালো সমর্থন<!--
--> | bs = Strogo za<!--
--> | cs = Silně pro<!--
--> | da = Stærk støtte<!--
--> | de = klares Pro<!--
--> | en = Strong support<!--
--> | eo = Forta subteno<!--
--> | es = Muy a favor<!--
--> | eu = Alde, erabat<!--
--> | fa = شدیداً موافق<!--
--> | fi = Vahva tukeni<!--
--> | fr = Pour fort<!--
--> | fy = Sterk foar<!--
--> | gl = Concordo completamente<!--
--> | hi = प्रबल समर्थन<!--
--> | hr = Snažno za<!--
--> | hu = Erősen támogatom<!--
--> | hy = Ես բացարձակապես համաձայն եմ<!--
--> | it = Fortemente favorevole<!--
--> | ja = 強く賛成<!--
--> | ka = ძლიერად მომხრე<!--
--> | kk = Нық қолдаймын<!--
--> | ko = 강력 찬성<!--
--> | ky = Толук колдойм<!--
--> | lij = Fortemente favorévole<!--
--> | mk = Апсолутно поддржувам<!--
--> | ml = ഉറച്ച പിന്തുണ<!--
--> | nds= Dor bün ik heel un deel för<!--
--> | nl = Sterk voor<!--
--> | nn = Sterkt for<!--
--> | pl = Mocne za<!--
--> | prg = Spārts enlāika<!--
--> | pt = Fortemente a favor<!--
--> | ro = Categoric pentru<!--
--> | ru = Абсолютно за<!--
--> | sco = Strong support<!--
--> | sk = Silne za<!--
--> | sl = Zelo za.<!--
--> | sr = Јако за<!--
--> | sv = Stödjer starkt<!--
--> | th = เห็นด้วยอย่างยิ่ง<!--
--> | tl = Suportadong suportado<!--
--> | tr = Güçlü destek<!--
--> | uk = Цілком згодний<!--
--> | vi = Ủng hộ mạnh<!--
--> | zh-hans = 强烈支持<!--
--> | zh-hant = 強烈支持<!--
-->}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
1pu9xlzfhp8ypqprigzc5upqi8xh04y
74598
74597
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Strong_support]]: Importing the Support template
74597
wikitext
text/x-wiki
[[File:Symbol strong support vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch<!--
--> | lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}<!--
--> | ar = مع بشدَّة<!--
--> | az = Güclü dəstək<!--
--> | be | be-x-old | be-tarask = Горача падтрымліваю<!--
--> | bn = জোরালো সমর্থন<!--
--> | bs = Strogo za<!--
--> | cs = Silně pro<!--
--> | da = Stærk støtte<!--
--> | de = klares Pro<!--
--> | en = Strong support<!--
--> | eo = Forta subteno<!--
--> | es = Muy a favor<!--
--> | eu = Alde, erabat<!--
--> | fa = شدیداً موافق<!--
--> | fi = Vahva tukeni<!--
--> | fr = Pour fort<!--
--> | fy = Sterk foar<!--
--> | gl = Concordo completamente<!--
--> | hi = प्रबल समर्थन<!--
--> | hr = Snažno za<!--
--> | hu = Erősen támogatom<!--
--> | hy = Ես բացարձակապես համաձայն եմ<!--
--> | it = Fortemente favorevole<!--
--> | ja = 強く賛成<!--
--> | ka = ძლიერად მომხრე<!--
--> | kk = Нық қолдаймын<!--
--> | ko = 강력 찬성<!--
--> | ky = Толук колдойм<!--
--> | lij = Fortemente favorévole<!--
--> | mk = Апсолутно поддржувам<!--
--> | ml = ഉറച്ച പിന്തുണ<!--
--> | nds= Dor bün ik heel un deel för<!--
--> | nl = Sterk voor<!--
--> | nn = Sterkt for<!--
--> | pl = Mocne za<!--
--> | prg = Spārts enlāika<!--
--> | pt = Fortemente a favor<!--
--> | ro = Categoric pentru<!--
--> | ru = Абсолютно за<!--
--> | sco = Strong support<!--
--> | sk = Silne za<!--
--> | sl = Zelo za.<!--
--> | sr = Јако за<!--
--> | sv = Stödjer starkt<!--
--> | th = เห็นด้วยอย่างยิ่ง<!--
--> | tl = Suportadong suportado<!--
--> | tr = Güçlü destek<!--
--> | uk = Цілком згодний<!--
--> | vi = Ủng hộ mạnh<!--
--> | zh-hans = 强烈支持<!--
--> | zh-hant = 強烈支持<!--
-->}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
1pu9xlzfhp8ypqprigzc5upqi8xh04y
Template:Unsupport
10
15836
74599
2025-12-06T17:32:58Z
Aciarium
11755
Made symbol non-clickable
74599
wikitext
text/x-wiki
[[File:Symbol_unsupport_vote.svg|15px|link=]] '''{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = أسحب دعمي
|be-tarask = Адклікаю сваю падтрымку
|bg = Аз оттеглям моята поддръжка
|bn = আমি আমার সমর্থন প্রত্যাহার করলাম
|bs = Povlačim svoju podršku
|da = Jeg trækker min støtte tilbage
|de = Ich ziehe mein Pro zurück
|en = I withdraw my support
|eo = Mi reprenas mian subtenon
|es = Retiro mi apoyo
|eu = Aldea erretiratzea erabaki dut
|fa = موافقتم را پس میگیرم
|fi = Peruutan kannatukseni
|fr = Je retire mon soutien
|hi = मैं अपना समर्थन वापस लेता/लेती हूँ
|hr = Povlačim podršku
|it = Non sono più favorevole
|ja = 賛成撤回
|ko = 찬성 취소
|ky = Колдоомдон баш тартам
|mk = Ја повлекувам поддршката
|ml = ഞാൻ പിന്തുണ പിൻവലിക്കുന്നു
|nl = Ik trek mijn steun in
|pl = Wycofuję swoje poparcie
|pt = Eu retiro o meu apoio
|ro = Îmi retrag susținerea
|ru = Отказываюсь поддерживать
|sl = Umikam svojo podporo
|sv = Stödjer ej längre
|th = ขอถอนการสนับสนุน
|tr = Desteğimi geri çekiyorum
|vi = Tôi xin được rút sự ủng hộ
|zh-hans = 我撤销支持
|zh-hant = 我撤銷支持
|prg = As eliminijja enlaikā
}}}}} '''<noinclude>{{Documentation|Template:Polling template}}<noinclude>
[[Category:Polling templates|Unsupport]]</noinclude>
ev1donwfjugej1m75pi1l1pp2b6cyoe
74600
74599
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Unsupport]]: Importing the Support template
74599
wikitext
text/x-wiki
[[File:Symbol_unsupport_vote.svg|15px|link=]] '''{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = أسحب دعمي
|be-tarask = Адклікаю сваю падтрымку
|bg = Аз оттеглям моята поддръжка
|bn = আমি আমার সমর্থন প্রত্যাহার করলাম
|bs = Povlačim svoju podršku
|da = Jeg trækker min støtte tilbage
|de = Ich ziehe mein Pro zurück
|en = I withdraw my support
|eo = Mi reprenas mian subtenon
|es = Retiro mi apoyo
|eu = Aldea erretiratzea erabaki dut
|fa = موافقتم را پس میگیرم
|fi = Peruutan kannatukseni
|fr = Je retire mon soutien
|hi = मैं अपना समर्थन वापस लेता/लेती हूँ
|hr = Povlačim podršku
|it = Non sono più favorevole
|ja = 賛成撤回
|ko = 찬성 취소
|ky = Колдоомдон баш тартам
|mk = Ја повлекувам поддршката
|ml = ഞാൻ പിന്തുണ പിൻവലിക്കുന്നു
|nl = Ik trek mijn steun in
|pl = Wycofuję swoje poparcie
|pt = Eu retiro o meu apoio
|ro = Îmi retrag susținerea
|ru = Отказываюсь поддерживать
|sl = Umikam svojo podporo
|sv = Stödjer ej längre
|th = ขอถอนการสนับสนุน
|tr = Desteğimi geri çekiyorum
|vi = Tôi xin được rút sự ủng hộ
|zh-hans = 我撤销支持
|zh-hant = 我撤銷支持
|prg = As eliminijja enlaikā
}}}}} '''<noinclude>{{Documentation|Template:Polling template}}<noinclude>
[[Category:Polling templates|Unsupport]]</noinclude>
ev1donwfjugej1m75pi1l1pp2b6cyoe
Template:Vote speedykeep
10
15837
74601
2026-07-30T20:52:14Z
TadejM
11747
updated sl
74601
wikitext
text/x-wiki
{{redirects|vsk}}<onlyinclude>[[File:Symbol speedy keep.svg|24px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = إبقاء سريع
|be |be-tarask = Пакінуць
|bn = দ্রুত রাখুন
|bs = Zadrži
|cs = Ponechat
|da = Behold
|de = Schnell behalten
|el = Διατήρηση
|en = Speedy keep
|eo = Konservi
|es = Manténgase ahora
|et = Säilitada
|eu = Gorde, erabat
|fa = بماند
|fi = Ei pois
|fr = Conserver immédiatement
|fy = Behâlde
|gl = Manter
|it = Mantenere
|hi = शीघ्र रखें
|hu = Maradjon
|he = להשאיר
|hr = Zadržati
|hy = Թողնել
|ja = 即時存続
|ka = შენარჩუნება
|kk = Қалдырылсын
|ko = 빠른 유지
|mk = Задржи
|ml = നിലനിർത്തുക
|nb = Hurtigbehold
|no = Hurtigbehold
|nl = Behouden
|nn = Tak vare på
|nds= Behollen
|pl = Natychmiast zostawić
|prg= Dīws palāikais
|pt = Manter rápido
|ro = Păstrare rapidă
|ru = Непременно оставить
|sk = Ponechať
|sl = Hitro ohranimo
|sr = Оставити
|sq = Mbaje
|sv = Snabbehåll
|tr = Hızlı kalsın
|th=ควรเก็บอย่างยิ่ง
|tl = Panatilihin
|uk = Залишити
|vi = Giữ gấp
|zh = 快速保留
}}}}}</bdi>'''</onlyinclude>{{Documentation|Template:Polling template}}
sb9ygl0ij7dg1skv0124w0c2nu0k037
74602
74601
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_speedykeep]]: Importing the Support template
74601
wikitext
text/x-wiki
{{redirects|vsk}}<onlyinclude>[[File:Symbol speedy keep.svg|24px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = إبقاء سريع
|be |be-tarask = Пакінуць
|bn = দ্রুত রাখুন
|bs = Zadrži
|cs = Ponechat
|da = Behold
|de = Schnell behalten
|el = Διατήρηση
|en = Speedy keep
|eo = Konservi
|es = Manténgase ahora
|et = Säilitada
|eu = Gorde, erabat
|fa = بماند
|fi = Ei pois
|fr = Conserver immédiatement
|fy = Behâlde
|gl = Manter
|it = Mantenere
|hi = शीघ्र रखें
|hu = Maradjon
|he = להשאיר
|hr = Zadržati
|hy = Թողնել
|ja = 即時存続
|ka = შენარჩუნება
|kk = Қалдырылсын
|ko = 빠른 유지
|mk = Задржи
|ml = നിലനിർത്തുക
|nb = Hurtigbehold
|no = Hurtigbehold
|nl = Behouden
|nn = Tak vare på
|nds= Behollen
|pl = Natychmiast zostawić
|prg= Dīws palāikais
|pt = Manter rápido
|ro = Păstrare rapidă
|ru = Непременно оставить
|sk = Ponechať
|sl = Hitro ohranimo
|sr = Оставити
|sq = Mbaje
|sv = Snabbehåll
|tr = Hızlı kalsın
|th=ควรเก็บอย่างยิ่ง
|tl = Panatilihin
|uk = Залишити
|vi = Giữ gấp
|zh = 快速保留
}}}}}</bdi>'''</onlyinclude>{{Documentation|Template:Polling template}}
sb9ygl0ij7dg1skv0124w0c2nu0k037
Template:Weak delete
10
15838
74603
2026-07-30T20:43:59Z
TadejM
11747
+sl
74603
wikitext
text/x-wiki
[[File:Symbol delete vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = حذف ضعيف
|be-tarask = Можна выдаліць
|de = Knapp für Löschen
|en = Weak delete
|eo = Dubokaze forigi
|es = Bórrese débilmente
|eu = Ezabatu, neurri batean
|hi = दुर्बल हटाएँ
|it = Cancellare con riserva
|ja = 削除寄り
|ko = 약한 삭제
|mk = Можеби за бришење
|ml = നീക്കംചെയ്യാൻ ദുർബല പിന്തുണ
|nl = Zwak verwijderen
|prg= Kussals palāikais
|ru = Можно удалить
|sl = Šibko izbrišimo
|sv = Radera eventuellt
|th = ยังไม่ควรลบ
|tr = Zayıf silinsin
|zh-hans = 倾向删除
|zh-hant = 傾向刪除
|default = Weak delete
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
t3yxapwyvvafrtm2qyhj9zxbe3qb18u
74604
74603
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Weak_delete]]: Importing the Support template
74603
wikitext
text/x-wiki
[[File:Symbol delete vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = حذف ضعيف
|be-tarask = Можна выдаліць
|de = Knapp für Löschen
|en = Weak delete
|eo = Dubokaze forigi
|es = Bórrese débilmente
|eu = Ezabatu, neurri batean
|hi = दुर्बल हटाएँ
|it = Cancellare con riserva
|ja = 削除寄り
|ko = 약한 삭제
|mk = Можеби за бришење
|ml = നീക്കംചെയ്യാൻ ദുർബല പിന്തുണ
|nl = Zwak verwijderen
|prg= Kussals palāikais
|ru = Можно удалить
|sl = Šibko izbrišimo
|sv = Radera eventuellt
|th = ยังไม่ควรลบ
|tr = Zayıf silinsin
|zh-hans = 倾向删除
|zh-hant = 傾向刪除
|default = Weak delete
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
t3yxapwyvvafrtm2qyhj9zxbe3qb18u
Template:Weak keep
10
15839
74605
2026-07-30T20:26:29Z
TadejM
11747
+sl
74605
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = إبقاء ضعيف
| be-tarask = Можна пакінуць
| de = Knapp für Behalten
| en = Weak keep
| eo = Dubokaze konservi
| es = Manténgase débilmente
| eu = Gorde, neurri batean
| fr = Plutôt conserver
| hi = दुर्बल रखें
| it = Mantenere con riserva
| ja = 存続寄り
| ko = 약한 유지
| mk = Можеби за задржување
| ml = സൂക്ഷിക്കാൻ ദുർബല പിന്തുണ
| nl = Zwak behouden
| prg= Kussals palāikais
| ru = Можно оставить
| sl = Šibko ohranimo
| sv = Behåll eventuellt
| tr = Zayıf kalsın
| th = น่าจะ
| zh-hans = 倾向保留
| zh-hant = 傾向保留
| default = Weak keep
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
9adwp7ei1ugublozf11i91yd51mhrlv
74606
74605
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Weak_keep]]: Importing the Support template
74605
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = إبقاء ضعيف
| be-tarask = Можна пакінуць
| de = Knapp für Behalten
| en = Weak keep
| eo = Dubokaze konservi
| es = Manténgase débilmente
| eu = Gorde, neurri batean
| fr = Plutôt conserver
| hi = दुर्बल रखें
| it = Mantenere con riserva
| ja = 存続寄り
| ko = 약한 유지
| mk = Можеби за задржување
| ml = സൂക്ഷിക്കാൻ ദുർബല പിന്തുണ
| nl = Zwak behouden
| prg= Kussals palāikais
| ru = Можно оставить
| sl = Šibko ohranimo
| sv = Behåll eventuellt
| tr = Zayıf kalsın
| th = น่าจะ
| zh-hans = 倾向保留
| zh-hant = 傾向保留
| default = Weak keep
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
9adwp7ei1ugublozf11i91yd51mhrlv
Template:Warning sign
10
15840
74607
2025-06-27T20:57:20Z
Tholme
11756
capital first letter as default from wikidata
74607
wikitext
text/x-wiki
[[File:Dialog-warning.svg|20px|link=|alt=Warning sign]] {{ucfirst:<strong>{{{1|{{LangSwitch
| default = {{ucfirst:{{label|Q1759104|link=-}}}}
| ar = تحذير
| ca = Advertència
| de = Warnung
| en = Warning
| es = Advertencia
| eu = Kontuz
| fi = Varoitus
| hi = चेतावनी
| it = Avvertimento
| ja = 警告
| ko = 경고
| mk = Предупредување
| ml = മുന്നറിയിപ്പ്
| nl = Waarschuwing
| pl = Ostrzeżenie
| pt = Aviso
| ro = Avertizare
| ru = Предупреждение
| sl = Opozorilo
| sr = Упозорење
| sv = Varning
| tl = Babala
| tr = Uyarı
| prg = Ēmpirsergīsenis
}}}}}</strong>}}<noinclude>
[[Category:Image with comment templates|{{PAGENAME}}]]
{{documentation|Template:Polling template}}</noinclude>
tsf0g7zb0s6axb7v776wx3qcx76i5l5
74608
74607
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Warning_sign]]: Importing the Support template
74607
wikitext
text/x-wiki
[[File:Dialog-warning.svg|20px|link=|alt=Warning sign]] {{ucfirst:<strong>{{{1|{{LangSwitch
| default = {{ucfirst:{{label|Q1759104|link=-}}}}
| ar = تحذير
| ca = Advertència
| de = Warnung
| en = Warning
| es = Advertencia
| eu = Kontuz
| fi = Varoitus
| hi = चेतावनी
| it = Avvertimento
| ja = 警告
| ko = 경고
| mk = Предупредување
| ml = മുന്നറിയിപ്പ്
| nl = Waarschuwing
| pl = Ostrzeżenie
| pt = Aviso
| ro = Avertizare
| ru = Предупреждение
| sl = Opozorilo
| sr = Упозорење
| sv = Varning
| tl = Babala
| tr = Uyarı
| prg = Ēmpirsergīsenis
}}}}}</strong>}}<noinclude>
[[Category:Image with comment templates|{{PAGENAME}}]]
{{documentation|Template:Polling template}}</noinclude>
tsf0g7zb0s6axb7v776wx3qcx76i5l5
Template:Vote move
10
15841
74609
2026-07-30T20:27:28Z
TadejM
11747
+sl
74609
wikitext
text/x-wiki
[[File:Symbol move vote.svg|15px]] '''{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| da = Flyt
| en = Move
| es = Renómbrese
| eu = Mugitu
| fa = منتقل شود
| fi = Siirrettävä
| it = Spostare
| ja = 移動
| ko = 이동
| mk = Премести
| ml = മാറ്റുക
| nl = Verplaats
| pl = Przenieść
| pt = Mover
| sl = Prestavimo
| tr = Taşınsın
| zh-hans = 移动
| zh-hant = 移動
}}}}}'''<noinclude>{{Documentation|Template:Polling template}}<noinclude><noinclude>[[Category:Polling templates|{{PAGENAME}}]]</noinclude>
bqozxpp5s75snliut0afaat5xg2vdy1
74610
74609
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_move]]: Importing the Support template
74609
wikitext
text/x-wiki
[[File:Symbol move vote.svg|15px]] '''{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| da = Flyt
| en = Move
| es = Renómbrese
| eu = Mugitu
| fa = منتقل شود
| fi = Siirrettävä
| it = Spostare
| ja = 移動
| ko = 이동
| mk = Премести
| ml = മാറ്റുക
| nl = Verplaats
| pl = Przenieść
| pt = Mover
| sl = Prestavimo
| tr = Taşınsın
| zh-hans = 移动
| zh-hant = 移動
}}}}}'''<noinclude>{{Documentation|Template:Polling template}}<noinclude><noinclude>[[Category:Polling templates|{{PAGENAME}}]]</noinclude>
bqozxpp5s75snliut0afaat5xg2vdy1
Template:Already done
10
15842
74611
2026-07-30T20:44:31Z
TadejM
11747
+sl
74611
wikitext
text/x-wiki
[[File:U2713.svg|15px|link=|alt=|class=skin-invert]]''' {{{{{|safesubst:}}}ucfirst:{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = نُفذ بالفعل
| bn = ইতোমধ্যে করা হয়েছে
| de = Schon erledigt
| en = Already done
| es = ya hecho
| fi = Tehty jo
| hi = पहले ही किया जा चुका है
| it = già fatto
| ja = 完了済み
| ko = 이미 완료
| mk = Веќе сторено
| ml = എപ്പോഴേ ചെയ്തു
| nl = Reeds gedaan
| prg= Jāu izpilninuns
| pt = Já feito
| sl = Že urejeno
| sr = Већ урађено
| sv = Redan gjort
| tr = Çoktan yapıldı
| zh = 已完成
}}
}}}}}'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
d8hp6160sci2no7i79fzmnfo1qaywo9
74612
74611
2026-09-10T15:30:04Z
B722N
6898
1 revision imported from [[:commons:Template:Already_done]]: Importing the Support template
74611
wikitext
text/x-wiki
[[File:U2713.svg|15px|link=|alt=|class=skin-invert]]''' {{{{{|safesubst:}}}ucfirst:{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = نُفذ بالفعل
| bn = ইতোমধ্যে করা হয়েছে
| de = Schon erledigt
| en = Already done
| es = ya hecho
| fi = Tehty jo
| hi = पहले ही किया जा चुका है
| it = già fatto
| ja = 完了済み
| ko = 이미 완료
| mk = Веќе сторено
| ml = എപ്പോഴേ ചെയ്തു
| nl = Reeds gedaan
| prg= Jāu izpilninuns
| pt = Já feito
| sl = Že urejeno
| sr = Већ урађено
| sv = Redan gjort
| tr = Çoktan yapıldı
| zh = 已完成
}}
}}}}}'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
d8hp6160sci2no7i79fzmnfo1qaywo9
Template:Vote rename category
10
15843
74613
2026-07-30T20:28:33Z
TadejM
11747
+sl
74613
wikitext
text/x-wiki
[[File:Symbol redirect vote.svg|15px|link=]]''' <bdi>{{#if:{{{1|}}}|{{{1}}}|{{LangSwitch
|lang = {{#if:{{{2|{{{lang|}}}}}}|{{{2|{{{lang}}}}}}|{{int:Lang}}}}
|ar=أعيد تسمية {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|التصنيف}} {{#if:{{{4|{{{to|}}}}}}|إلى|}}
|en=Rename {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|category}} {{#if:{{{4|{{{to|}}}}}}|to|}}
|eo=Alinomi kategorion {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|je nomo:|}}
|hi={{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}} को|श्रेणी को}} {{#if:{{{4|{{{to|}}}}}}|इसपर स्थानांतरित करें:|स्थानांतरित करें}}
|it=Rinomina la categoria {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|come:|}}
|ja=カテゴリ改名{{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|(| }}{{#if:{{{3|{{{from|}}}}}}|{{#if:{{{4|{{{to|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|改名元:{{cl|{{{3|{{{from}}}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|{{#if:{{{3|{{{from|}}}}}}| → |改名先:}}|}}
|ko=분류 이동 {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}| → |}}
|pl=Zmienić nazwę {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|na|}}
|pt=Renomear {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|como|}}
|sv=Byt namn på {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|kategorin}} {{#if:{{{4|{{{to|}}}}}}|till|}}
|tr=Kategori yeniden adlandırılsın {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|:|}}
|vi=Đổi tên {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|thể loại}} {{#if:{{{4|{{{to|}}}}}}|thành|}}
|prg=Etbilīsei {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|ēn|}}
|sl=Preimenujmo {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|kategorijo}} {{#if:{{{4|{{{to|}}}}}}|v|}}
|zh-hans=将{{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|分类}}重命名{{#if:{{{4|{{{to|}}}}}}|为|}}
|zh-hant=將{{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|分類}}重命名{{#if:{{{4|{{{to|}}}}}}|為|}}
}}}}</bdi> {{#if:{{{4|{{{to|}}}}}}|{{cl|{{{4|{{{to|}}}}}}}}|}}{{#if:{{{1|}}}| |{{LangSwitch|lang={{#if:{{{2|{{{lang|}}}}}}|{{{2|{{{lang}}}}}}|{{int:Lang}}}}|ja={{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|)| }}|default= }}}}'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
dlgab6fqwgu990bzrek35f567j9uasi
74614
74613
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_rename_category]]: Importing the Support template
74613
wikitext
text/x-wiki
[[File:Symbol redirect vote.svg|15px|link=]]''' <bdi>{{#if:{{{1|}}}|{{{1}}}|{{LangSwitch
|lang = {{#if:{{{2|{{{lang|}}}}}}|{{{2|{{{lang}}}}}}|{{int:Lang}}}}
|ar=أعيد تسمية {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|التصنيف}} {{#if:{{{4|{{{to|}}}}}}|إلى|}}
|en=Rename {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|category}} {{#if:{{{4|{{{to|}}}}}}|to|}}
|eo=Alinomi kategorion {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|je nomo:|}}
|hi={{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}} को|श्रेणी को}} {{#if:{{{4|{{{to|}}}}}}|इसपर स्थानांतरित करें:|स्थानांतरित करें}}
|it=Rinomina la categoria {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|come:|}}
|ja=カテゴリ改名{{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|(| }}{{#if:{{{3|{{{from|}}}}}}|{{#if:{{{4|{{{to|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|改名元:{{cl|{{{3|{{{from}}}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|{{#if:{{{3|{{{from|}}}}}}| → |改名先:}}|}}
|ko=분류 이동 {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}| → |}}
|pl=Zmienić nazwę {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|na|}}
|pt=Renomear {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|como|}}
|sv=Byt namn på {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|kategorin}} {{#if:{{{4|{{{to|}}}}}}|till|}}
|tr=Kategori yeniden adlandırılsın {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|:|}}
|vi=Đổi tên {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|thể loại}} {{#if:{{{4|{{{to|}}}}}}|thành|}}
|prg=Etbilīsei {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|ēn|}}
|sl=Preimenujmo {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|kategorijo}} {{#if:{{{4|{{{to|}}}}}}|v|}}
|zh-hans=将{{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|分类}}重命名{{#if:{{{4|{{{to|}}}}}}|为|}}
|zh-hant=將{{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|分類}}重命名{{#if:{{{4|{{{to|}}}}}}|為|}}
}}}}</bdi> {{#if:{{{4|{{{to|}}}}}}|{{cl|{{{4|{{{to|}}}}}}}}|}}{{#if:{{{1|}}}| |{{LangSwitch|lang={{#if:{{{2|{{{lang|}}}}}}|{{{2|{{{lang}}}}}}|{{int:Lang}}}}|ja={{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|)| }}|default= }}}}'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
dlgab6fqwgu990bzrek35f567j9uasi
Template:Strong keep
10
15844
74619
2026-07-30T20:26:57Z
TadejM
11747
+sl
74619
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = إبقاء بشدَّة
| en = Strong keep
| hi = प्रबल रखें
| ja = 積極的存続
| ko = 강력 유지
| prg = Spārts palāikais
| sl = Močno ohranimo
| zh/zh-hans/zh-cn = 强烈支持保留
| default = Strong keep
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
d5cwk145ieg3x1i3l6ky410koniny6i
74620
74619
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:Strong_keep]]: Importing the Support template
74619
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = إبقاء بشدَّة
| en = Strong keep
| hi = प्रबल रखें
| ja = 積極的存続
| ko = 강력 유지
| prg = Spārts palāikais
| sl = Močno ohranimo
| zh/zh-hans/zh-cn = 强烈支持保留
| default = Strong keep
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
d5cwk145ieg3x1i3l6ky410koniny6i
Template:Vote merge
10
15845
74621
2026-07-30T20:43:15Z
TadejM
11747
+sl
74621
wikitext
text/x-wiki
[[File:Symbol redirect vote.svg|15px|link=]]''' <bdi>{{LangSwitch
|lang={{#if:{{{3|{{{lang|}}}}}}|{{{3|{{{lang}}}}}}|{{int:Lang}}}}
|ar=دمج {{#if:{{{1|{{{from|}}}}}}|من:[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|إلى [[:Category:{{{2|{{{to|}}}}}}]]|}}
|en=Merge {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|into [[:Category:{{{2|{{{to|}}}}}}]]|}}
|es=Fusionar {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|con [[:Category:{{{2|{{{to|}}}}}}]]|}}
|hi={{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]] को|}} {{#if:{{{2|{{{to|}}}}}}|[[:Category:{{{2|{{{to|}}}}}}]] में|}} मर्ज करें
|it=Unire {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|con [[:Category:{{{2|{{{to|}}}}}}]]|}}
|ja=統合{{#if:{{{1|{{{from|{{{2|{{{to|}}}}}}}}}}}}|(| }}{{#if:{{{1|{{{from|}}}}}}|{{#if:{{{2|{{{to|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|統合元:[[:Category:{{{1|{{{from|}}}}}}]]}}|}}{{#if:{{{2|{{{to|}}}}}}|{{#if:{{{1|{{{from|}}}}}}| → [[:Category:{{{2|{{{to|}}}}}}]]|統合先:[[:Category:{{{2|{{{to|}}}}}}]]}}|}}{{#if:{{{1|{{{from|{{{2|{{{to|}}}}}}}}}}}}|)|}}
|ko=통합 {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}| → [[:Category:{{{2|{{{to|}}}}}}]]|}}
|pt=Mesclar {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|com [[:Category:{{{2|{{{to|}}}}}}]]|}}
|sl=Združimo {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|s/z [[:Category:{{{2|{{{to|}}}}}}]]|}}
|sv=Sammanfoga {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|med [[:Category:{{{2|{{{to|}}}}}}]]|}}
|vi=Hợp nhất {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|với [[:Category:{{{2|{{{to|}}}}}}]]|}}˚
|prg=Senlaījais {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|ēn [[:Category:{{{2|{{{to|}}}}}}]]|}}
|zh-hans=合并{{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}}{{#if:{{{2|{{{to|}}}}}}|至[[:Category:{{{2|{{{to|}}}}}}]]|}}
|zh-hant=合併{{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}}{{#if:{{{2|{{{to|}}}}}}|至[[:Category:{{{2|{{{to|}}}}}}]]|}}
}}</bdi>'''<noinclude>{{Documentation}}</noinclude>
fdu2p91ec08dgqebffzn63us4zo0g3w
74622
74621
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_merge]]: Importing the Support template
74621
wikitext
text/x-wiki
[[File:Symbol redirect vote.svg|15px|link=]]''' <bdi>{{LangSwitch
|lang={{#if:{{{3|{{{lang|}}}}}}|{{{3|{{{lang}}}}}}|{{int:Lang}}}}
|ar=دمج {{#if:{{{1|{{{from|}}}}}}|من:[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|إلى [[:Category:{{{2|{{{to|}}}}}}]]|}}
|en=Merge {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|into [[:Category:{{{2|{{{to|}}}}}}]]|}}
|es=Fusionar {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|con [[:Category:{{{2|{{{to|}}}}}}]]|}}
|hi={{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]] को|}} {{#if:{{{2|{{{to|}}}}}}|[[:Category:{{{2|{{{to|}}}}}}]] में|}} मर्ज करें
|it=Unire {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|con [[:Category:{{{2|{{{to|}}}}}}]]|}}
|ja=統合{{#if:{{{1|{{{from|{{{2|{{{to|}}}}}}}}}}}}|(| }}{{#if:{{{1|{{{from|}}}}}}|{{#if:{{{2|{{{to|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|統合元:[[:Category:{{{1|{{{from|}}}}}}]]}}|}}{{#if:{{{2|{{{to|}}}}}}|{{#if:{{{1|{{{from|}}}}}}| → [[:Category:{{{2|{{{to|}}}}}}]]|統合先:[[:Category:{{{2|{{{to|}}}}}}]]}}|}}{{#if:{{{1|{{{from|{{{2|{{{to|}}}}}}}}}}}}|)|}}
|ko=통합 {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}| → [[:Category:{{{2|{{{to|}}}}}}]]|}}
|pt=Mesclar {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|com [[:Category:{{{2|{{{to|}}}}}}]]|}}
|sl=Združimo {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|s/z [[:Category:{{{2|{{{to|}}}}}}]]|}}
|sv=Sammanfoga {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|med [[:Category:{{{2|{{{to|}}}}}}]]|}}
|vi=Hợp nhất {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|với [[:Category:{{{2|{{{to|}}}}}}]]|}}˚
|prg=Senlaījais {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|ēn [[:Category:{{{2|{{{to|}}}}}}]]|}}
|zh-hans=合并{{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}}{{#if:{{{2|{{{to|}}}}}}|至[[:Category:{{{2|{{{to|}}}}}}]]|}}
|zh-hant=合併{{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}}{{#if:{{{2|{{{to|}}}}}}|至[[:Category:{{{2|{{{to|}}}}}}]]|}}
}}</bdi>'''<noinclude>{{Documentation}}</noinclude>
fdu2p91ec08dgqebffzn63us4zo0g3w
Template:Resolved by consensus
10
15846
74623
2025-11-11T01:19:40Z
Yilku1
11757
74623
wikitext
text/x-wiki
[[File:Yes check.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| ar = حُلَّت المُشكلة بالتوافق
| bn = মীমাংসিত
| cs = Vyřešeno
| de = Erledigt
| en = Resolved by consensus
| eo = Solvita
| es = Resuelto por consenso
| eu = Adostasunez ebatziak
| fa = حل شد
| fi = Ratkaistu
| fr = Résolu par consensus
| gl = Resolto
| hi = सर्वसम्मति से हल हो गया
| hu = Megoldva
| it = Risolto
| ja = 解決済み(合意形成)
| ko = 합의에 의해 해결됨
| ky = Консенсус менен чечилди
| mk = Разрешено
| ml = പരിഹരിച്ചു
| nl = Opgelost
| nn = Løyst
| pl = Załatwione
| pt = Resolvido por consenso
| ru = Постановили
| ro = Rezolvat
| sco= Resolved
| sk = Vyriešené
| sl = Razrešeno.
| sr = Решено консензусом
| sv = Löst genom konsensus
| th = เสร็จสิ้น <!-- ในตอนแรกตั้งใจจะแปลว่าเรียบร้อย แต่เห็นว่าการใช้งานคล้ายๆกันกับ Done จึงใช้ตัวนี้แทน -->
| tr = Çözüldü
| uk = Вирішено
| vi = Đã giải quyết theo đồng thuận
|zh-hans=根据共识已解决
|zh-hant=根據共識已解決
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
f4l675ybuyyvo38ajlz4hp59ij1nd0i
74624
74623
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:Resolved_by_consensus]]: Importing the Support template
74623
wikitext
text/x-wiki
[[File:Yes check.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| ar = حُلَّت المُشكلة بالتوافق
| bn = মীমাংসিত
| cs = Vyřešeno
| de = Erledigt
| en = Resolved by consensus
| eo = Solvita
| es = Resuelto por consenso
| eu = Adostasunez ebatziak
| fa = حل شد
| fi = Ratkaistu
| fr = Résolu par consensus
| gl = Resolto
| hi = सर्वसम्मति से हल हो गया
| hu = Megoldva
| it = Risolto
| ja = 解決済み(合意形成)
| ko = 합의에 의해 해결됨
| ky = Консенсус менен чечилди
| mk = Разрешено
| ml = പരിഹരിച്ചു
| nl = Opgelost
| nn = Løyst
| pl = Załatwione
| pt = Resolvido por consenso
| ru = Постановили
| ro = Rezolvat
| sco= Resolved
| sk = Vyriešené
| sl = Razrešeno.
| sr = Решено консензусом
| sv = Löst genom konsensus
| th = เสร็จสิ้น <!-- ในตอนแรกตั้งใจจะแปลว่าเรียบร้อย แต่เห็นว่าการใช้งานคล้ายๆกันกับ Done จึงใช้ตัวนี้แทน -->
| tr = Çözüldü
| uk = Вирішено
| vi = Đã giải quyết theo đồng thuận
|zh-hans=根据共识已解决
|zh-hant=根據共識已解決
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
f4l675ybuyyvo38ajlz4hp59ij1nd0i
Template:Resolved without objection
10
15847
74625
2025-11-11T01:19:20Z
Yilku1
11757
74625
wikitext
text/x-wiki
[[File:Yes check.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| ar = حُلَّت المُشكلة بدون اعتراض
| bn = মীমাংসিত
| cs = Vyřešeno
| de = Erledigt
| en = Resolved without objection
| eo = Solvita
| es = Resuelto sin objeción
| eu = Eragozpenik gabe ebatzia
| fa = حل شد
| fi = Ratkaistu
| fr = Résolu sans objection
| gl = Resolto
| hi = बिना विरोध के हल हो गया
| hu = Megoldva
| it = Risolto
| ja = 解決済み(満場一致)
| ko = 해결됨, 이의 없음
| ky = Каршылыксыз чечилди
| mk = Разрешено
| ml = പരിഹരിച്ചു
| nl = Opgelost zonder tegenwerping
| nn = Løyst
| pl = Załatwione
| pt = Resolvido sem objeções
| ru = Постановили
| ro = Rezolvat
| sco= Resolved
| sk = Vyriešené
| sl = Razrešeno.
| sr = Решено (нема противљења)
| sv = Löst utan invändningar
| th = เสร็จสิ้น <!-- ในตอนแรกตั้งใจจะแปลว่าเรียบร้อย แต่เห็นว่าการใช้งานคล้ายๆกันกับ Done จึงใช้ตัวนี้แทน -->
| tr = Çözüldü
| uk = Вирішено
| vi = Đã giải quyết mà không có sự phản đối
|zh-hans=已解决,无人反对
|zh-hant=已解決,無人反對
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
kyajck7mkgo9of1cqse1iunrrsqj91k
74626
74625
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:Resolved_without_objection]]: Importing the Support template
74625
wikitext
text/x-wiki
[[File:Yes check.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
| ar = حُلَّت المُشكلة بدون اعتراض
| bn = মীমাংসিত
| cs = Vyřešeno
| de = Erledigt
| en = Resolved without objection
| eo = Solvita
| es = Resuelto sin objeción
| eu = Eragozpenik gabe ebatzia
| fa = حل شد
| fi = Ratkaistu
| fr = Résolu sans objection
| gl = Resolto
| hi = बिना विरोध के हल हो गया
| hu = Megoldva
| it = Risolto
| ja = 解決済み(満場一致)
| ko = 해결됨, 이의 없음
| ky = Каршылыксыз чечилди
| mk = Разрешено
| ml = പരിഹരിച്ചു
| nl = Opgelost zonder tegenwerping
| nn = Løyst
| pl = Załatwione
| pt = Resolvido sem objeções
| ru = Постановили
| ro = Rezolvat
| sco= Resolved
| sk = Vyriešené
| sl = Razrešeno.
| sr = Решено (нема противљења)
| sv = Löst utan invändningar
| th = เสร็จสิ้น <!-- ในตอนแรกตั้งใจจะแปลว่าเรียบร้อย แต่เห็นว่าการใช้งานคล้ายๆกันกับ Done จึงใช้ตัวนี้แทน -->
| tr = Çözüldü
| uk = Вирішено
| vi = Đã giải quyết mà không có sự phản đối
|zh-hans=已解决,无人反对
|zh-hant=已解決,無人反對
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
kyajck7mkgo9of1cqse1iunrrsqj91k
Template:No proposal
10
15848
74627
2026-07-30T20:41:52Z
TadejM
11747
+sl
74627
wikitext
text/x-wiki
[[File:Eo circle grey letter-x.svg|15px|link=]] '''<bdi>{{#if:{{{2|}}}|{{{2}}}|{{{1|{{LangSwitch
| ar = لا اقتراح
| en = No proposal
| hi = कोई प्रस्ताव नहीं
| ja = 提案無し
| ko = 제안 없음
| sl = Brez predloga
| sr = Без предлога
| sv = Inga förslag
| zh-hans = 无提案
| zh-hant = 無提案
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
necmtncxz0y05wjdcww58ozajzau3d6
74628
74627
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:No_proposal]]: Importing the Support template
74627
wikitext
text/x-wiki
[[File:Eo circle grey letter-x.svg|15px|link=]] '''<bdi>{{#if:{{{2|}}}|{{{2}}}|{{{1|{{LangSwitch
| ar = لا اقتراح
| en = No proposal
| hi = कोई प्रस्ताव नहीं
| ja = 提案無し
| ko = 제안 없음
| sl = Brez predloga
| sr = Без предлога
| sv = Inga förslag
| zh-hans = 无提案
| zh-hant = 無提案
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
necmtncxz0y05wjdcww58ozajzau3d6
Template:No consensus
10
15849
74629
2025-11-11T01:20:04Z
Yilku1
11757
74629
wikitext
text/x-wiki
[[File:Eo circle deep-orange letter-x.svg|15px|link=]] '''<bdi>{{#if:{{{2|}}}|{{{2}}}|{{{1|{{LangSwitch
| ar = لا توافق
| en = No consensus
| es = Sin consenso
| eu = Adostasunik gabe
| fa = بدون اجماع
| fr = Sans consensus
| hi = सर्वसम्मति नहीं है
| it = Nessun consenso
| ja = 合意未形成
| ko = 합의 없음
| ky = Консенсус жок
| nl = geen overeenstemming
| pl = Brak konsensusu
| pt = Não há consenso
| ru = Нет консесуса
| sl = Ni soglasja
| sv = Konsensus saknas
| sr = Нема консензуса
| prg = Ni senwaitjasnā
| zh-hans = 无共识
| zh-hant = 無共識
}}}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
tqc5rk9fypfomvcc338p1bpq08magkq
74630
74629
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:No_consensus]]: Importing the Support template
74629
wikitext
text/x-wiki
[[File:Eo circle deep-orange letter-x.svg|15px|link=]] '''<bdi>{{#if:{{{2|}}}|{{{2}}}|{{{1|{{LangSwitch
| ar = لا توافق
| en = No consensus
| es = Sin consenso
| eu = Adostasunik gabe
| fa = بدون اجماع
| fr = Sans consensus
| hi = सर्वसम्मति नहीं है
| it = Nessun consenso
| ja = 合意未形成
| ko = 합의 없음
| ky = Консенсус жок
| nl = geen overeenstemming
| pl = Brak konsensusu
| pt = Não há consenso
| ru = Нет консесуса
| sl = Ni soglasja
| sv = Konsensus saknas
| sr = Нема консензуса
| prg = Ni senwaitjasnā
| zh-hans = 无共识
| zh-hant = 無共識
}}}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
tqc5rk9fypfomvcc338p1bpq08magkq
Template:Unresolved discussion
10
15850
74631
2025-12-01T12:46:26Z
Henrydat
11758
+vi
74631
wikitext
text/x-wiki
[[File:Eo circle yellow letter-x.svg|15px|link=]] '''<bdi>{{#if:{{{2|}}}|{{{2}}}|{{{1|{{LangSwitch
| en = Unresolved
| eu = Ebatzi gabeko eztabaida
| es = Discusión sin resolver
| fr = Discussion non résolue
| hi = हल न हुई चर्चा
| ja = 未解決
| ko = 미해결
| ky = Чечими жок талкуу
| nl = niet opgelost
| pl = Nierozwiązana dyskusja
| pt = Não resolvido
| ru = Нерешённое обсуждение
| sl = Nerazrešeno
| sr = Неразрешено
| sv = Oavslutad diskussion
| vi = Không giải quyết
| zh-hans = 未解决
| zh-hant = 未解決
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
py1jl3oe8vnw8j33uhz47bd758zhw8o
74632
74631
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:Unresolved_discussion]]: Importing the Support template
74631
wikitext
text/x-wiki
[[File:Eo circle yellow letter-x.svg|15px|link=]] '''<bdi>{{#if:{{{2|}}}|{{{2}}}|{{{1|{{LangSwitch
| en = Unresolved
| eu = Ebatzi gabeko eztabaida
| es = Discusión sin resolver
| fr = Discussion non résolue
| hi = हल न हुई चर्चा
| ja = 未解決
| ko = 미해결
| ky = Чечими жок талкуу
| nl = niet opgelost
| pl = Nierozwiązana dyskusja
| pt = Não resolvido
| ru = Нерешённое обсуждение
| sl = Nerazrešeno
| sr = Неразрешено
| sv = Oavslutad diskussion
| vi = Không giải quyết
| zh-hans = 未解决
| zh-hant = 未解決
|default = {{#if:{{{lang|}}}|{{int:Delete/{{{lang}}}}}|{{int:Delete}}}}
}}}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
py1jl3oe8vnw8j33uhz47bd758zhw8o
Template:Vote redirect
10
15851
74633
2026-07-30T20:38:12Z
TadejM
11747
+sl
74633
wikitext
text/x-wiki
[[File:Symbol redirect vote2.svg|15px]] '''{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = حول {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|إلى {{cl|{{{4|{{{to}}}}}}}}|}}
| en = Redirect {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|to {{cl|{{{4|{{{to}}}}}}}}|}}
| fa = تغییر مسیر {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|به {{cl|{{{4|{{{to}}}}}}}}|}}
| hi = {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}} को|}} {{#if:{{{4|{{{to|}}}}}}|{{cl|{{{4|{{{to}}}}}}}} पर|}} अनुप्रेषित करें
| ja = 転送{{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|(| }}{{#if:{{{3|{{{from|}}}}}}|{{#if:{{{4|{{{to|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|転送元:{{cl|{{{3|{{{from}}}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|{{#if:{{{3|{{{from|}}}}}}| → {{cl|{{{4|{{{to}}}}}}}}|転送先:{{cl|{{{4|{{{to}}}}}}}}}}|}}{{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|)|}}
| ko = 넘겨주기 {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}| → {{cl|{{{4|{{{to}}}}}}}}|}}
| pl = Przekierować {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|do {{cl|{{{4|{{{to}}}}}}}}|}}
| pt = Redirecionar {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|para {{cl|{{{4|{{{to}}}}}}}}|}}
| sv = Omdirigera {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|till {{cl|{{{4|{{{to}}}}}}}}|}}
| vi = Đổi hướng {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|tới {{cl|{{{4|{{{to}}}}}}}}|}}
| prg = Prawesennis {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|prēi {{cl|{{{4|{{{to}}}}}}}}|}}
| sl = Preusmerimo {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|na {{cl|{{{4|{{{to}}}}}}}}|}}
| zh-hans = 重定向{{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|至{{cl|{{{4|{{{to}}}}}}}}|}}
| zh-hant = 重新導向{{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|至{{cl|{{{4|{{{to}}}}}}}}|}}
}}'''<noinclude>
{{Documentation|Template:Polling template}}
[[Category:Polling templates|{{PAGENAME}}]]
</noinclude>
2bhiqhmutgc1cfhse1lwkuujhlwmo1v
74634
74633
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_redirect]]: Importing the Support template
74633
wikitext
text/x-wiki
[[File:Symbol redirect vote2.svg|15px]] '''{{LangSwitch
| lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| ar = حول {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|إلى {{cl|{{{4|{{{to}}}}}}}}|}}
| en = Redirect {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|to {{cl|{{{4|{{{to}}}}}}}}|}}
| fa = تغییر مسیر {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|به {{cl|{{{4|{{{to}}}}}}}}|}}
| hi = {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}} को|}} {{#if:{{{4|{{{to|}}}}}}|{{cl|{{{4|{{{to}}}}}}}} पर|}} अनुप्रेषित करें
| ja = 転送{{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|(| }}{{#if:{{{3|{{{from|}}}}}}|{{#if:{{{4|{{{to|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|転送元:{{cl|{{{3|{{{from}}}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|{{#if:{{{3|{{{from|}}}}}}| → {{cl|{{{4|{{{to}}}}}}}}|転送先:{{cl|{{{4|{{{to}}}}}}}}}}|}}{{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|)|}}
| ko = 넘겨주기 {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}| → {{cl|{{{4|{{{to}}}}}}}}|}}
| pl = Przekierować {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|do {{cl|{{{4|{{{to}}}}}}}}|}}
| pt = Redirecionar {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|para {{cl|{{{4|{{{to}}}}}}}}|}}
| sv = Omdirigera {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|till {{cl|{{{4|{{{to}}}}}}}}|}}
| vi = Đổi hướng {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|tới {{cl|{{{4|{{{to}}}}}}}}|}}
| prg = Prawesennis {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|prēi {{cl|{{{4|{{{to}}}}}}}}|}}
| sl = Preusmerimo {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|na {{cl|{{{4|{{{to}}}}}}}}|}}
| zh-hans = 重定向{{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|至{{cl|{{{4|{{{to}}}}}}}}|}}
| zh-hant = 重新導向{{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|至{{cl|{{{4|{{{to}}}}}}}}|}}
}}'''<noinclude>
{{Documentation|Template:Polling template}}
[[Category:Polling templates|{{PAGENAME}}]]
</noinclude>
2bhiqhmutgc1cfhse1lwkuujhlwmo1v
Template:Polling template/see also
10
15852
74635
2026-03-30T12:17:27Z
Prototyperspective
11759
+1
74635
wikitext
text/x-wiki
'''''Other polling/status templates:'''''
<div style="column-count:2; width: 95%;">
* {{Support}} – <code>{{tl|Support}}</code>
:* {{Strong support}} – <code>{{tl|Strong support}}</code>
:* {{Weak support}} – <code>{{tl|Weak support}}</code>
:* {{Agree}} – <code>{{tl|Agree}}</code>
:* {{Unsupport}} – <code>{{tl|Unsupport}}</code>
:* {{Withdraw}} – <code>{{tl|Withdraw}}</code>
* {{Oppose}} – <code>{{tl|Oppose}}</code>
:* {{Strong oppose}} – <code>{{tl|Strong oppose}}</code>
:* {{Weak oppose}} – <code>{{tl|Weak oppose}}</code>
:* {{Disagree}} – <code>{{tl|Disagree}}</code>
* {{Neutral}} – <code>{{tl|Neutral}}</code>
:* {{Abstain}} – <code>{{tl|Abstain}}</code>
:* {{No proposal}} – <code>{{tl|No proposal}}</code>
:* {{Info}} – <code>{{tl|Info}}</code>
:* {{Comment}} – <code>{{tl|Comment}}</code>
:* {{Warning sign}} – <code>{{tl|Warning sign}}</code>
* {{Vote wait}} - <code>{{tl|Vote wait}}</code>
:* {{On hold}} – <code>{{tl|On hold}}</code>
:* {{Question}} – <code>{{tl|Question}}</code>
:* {{Request}} – <code>{{tl|Request}}</code>
* {{Vote keep}} – <code>{{tl|Vote keep}}</code>
:* {{Vote speedykeep}} – <code>{{tl|Vote speedykeep}}</code>
:* {{Weak keep}} – <code>{{tl|Weak keep}}</code>
:* {{Strong keep}} – <code>{{tl|Strong keep}}</code>
:* {{Vote keep category|A}} – <code>{{tl|Vote keep category}}</code>
* {{Vote move}} – <code>{{tl|Vote move}}</code>
* {{Vote merge|A|B}} – <code>{{tl|Vote merge}}</code>
:* {{Vote rename category|||A|B}} – <code>{{tl|Vote rename category}}</code>
:* {{Vote redirect|||A|B}} – <code>{{tl|Vote redirect}}</code>
:* {{Vote disambiguate category|A}} - <code>{{tl|Vote disambiguate category}}</code>
* {{Restore}} – <code>{{tl|Restore}}</code>
* {{Delist}} – <code>{{tl|Delist}}</code>
:* {{Delistandreplace}} – <code>{{tl|Delistandreplace}}</code>
* {{Vote delete}} – <code>{{tl|Vote delete}}</code>
:* {{Vote speedy}} – <code>{{tl|Vote speedy}}</code><!-- no special handling yet -->
:* {{Weak delete}} – <code>{{tl|Weak delete}}</code>
* {{Action}} – <code>{{tl|Action}}</code>
* {{Resolved}} – <code>{{tl|Resolved}}</code>
:* {{Resolved by consensus}} – <code>{{tl|Resolved by consensus}}</code>
:* {{Resolved without objection}} – <code>{{tl|Resolved without objection}}</code>
:* {{Unresolved discussion}} – <code>{{tl|Unresolved discussion}}</code>
:* {{No consensus}} – <code>{{tl|No consensus}}</code>
* {{Done}} – <code>{{tl|Done}}</code>
:* {{Already done}} – <code>{{tl|Already done}}</code>
:* {{Half done}} – <code>{{tl|Half done}}</code>
:* {{Not done}} – <code>{{tl|Not done}}</code>
:* {{Skip}} – <code>{{tl|Skip}}</code>
* {{Great}} – <code>{{tl|Great}}</code>
* {{Flower}} – <code>{{Tl|Flower}}</code>
</div>
----
''See also on the English Wikipedia: [[:en:Template:Done/See also|Inline icon templates by shape and color]] ''
<noinclude>
[[Category:Polling templates]]
[[Category:Commons navigational templates|polling templates]]
[[Category:Multi-template documentation]]
</noinclude>
hvcrai2bhrbecbu9974ukw0qc0r4uxu
74636
74635
2026-09-10T15:30:05Z
B722N
6898
1 revision imported from [[:commons:Template:Polling_template/see_also]]: Importing the Support template
74635
wikitext
text/x-wiki
'''''Other polling/status templates:'''''
<div style="column-count:2; width: 95%;">
* {{Support}} – <code>{{tl|Support}}</code>
:* {{Strong support}} – <code>{{tl|Strong support}}</code>
:* {{Weak support}} – <code>{{tl|Weak support}}</code>
:* {{Agree}} – <code>{{tl|Agree}}</code>
:* {{Unsupport}} – <code>{{tl|Unsupport}}</code>
:* {{Withdraw}} – <code>{{tl|Withdraw}}</code>
* {{Oppose}} – <code>{{tl|Oppose}}</code>
:* {{Strong oppose}} – <code>{{tl|Strong oppose}}</code>
:* {{Weak oppose}} – <code>{{tl|Weak oppose}}</code>
:* {{Disagree}} – <code>{{tl|Disagree}}</code>
* {{Neutral}} – <code>{{tl|Neutral}}</code>
:* {{Abstain}} – <code>{{tl|Abstain}}</code>
:* {{No proposal}} – <code>{{tl|No proposal}}</code>
:* {{Info}} – <code>{{tl|Info}}</code>
:* {{Comment}} – <code>{{tl|Comment}}</code>
:* {{Warning sign}} – <code>{{tl|Warning sign}}</code>
* {{Vote wait}} - <code>{{tl|Vote wait}}</code>
:* {{On hold}} – <code>{{tl|On hold}}</code>
:* {{Question}} – <code>{{tl|Question}}</code>
:* {{Request}} – <code>{{tl|Request}}</code>
* {{Vote keep}} – <code>{{tl|Vote keep}}</code>
:* {{Vote speedykeep}} – <code>{{tl|Vote speedykeep}}</code>
:* {{Weak keep}} – <code>{{tl|Weak keep}}</code>
:* {{Strong keep}} – <code>{{tl|Strong keep}}</code>
:* {{Vote keep category|A}} – <code>{{tl|Vote keep category}}</code>
* {{Vote move}} – <code>{{tl|Vote move}}</code>
* {{Vote merge|A|B}} – <code>{{tl|Vote merge}}</code>
:* {{Vote rename category|||A|B}} – <code>{{tl|Vote rename category}}</code>
:* {{Vote redirect|||A|B}} – <code>{{tl|Vote redirect}}</code>
:* {{Vote disambiguate category|A}} - <code>{{tl|Vote disambiguate category}}</code>
* {{Restore}} – <code>{{tl|Restore}}</code>
* {{Delist}} – <code>{{tl|Delist}}</code>
:* {{Delistandreplace}} – <code>{{tl|Delistandreplace}}</code>
* {{Vote delete}} – <code>{{tl|Vote delete}}</code>
:* {{Vote speedy}} – <code>{{tl|Vote speedy}}</code><!-- no special handling yet -->
:* {{Weak delete}} – <code>{{tl|Weak delete}}</code>
* {{Action}} – <code>{{tl|Action}}</code>
* {{Resolved}} – <code>{{tl|Resolved}}</code>
:* {{Resolved by consensus}} – <code>{{tl|Resolved by consensus}}</code>
:* {{Resolved without objection}} – <code>{{tl|Resolved without objection}}</code>
:* {{Unresolved discussion}} – <code>{{tl|Unresolved discussion}}</code>
:* {{No consensus}} – <code>{{tl|No consensus}}</code>
* {{Done}} – <code>{{tl|Done}}</code>
:* {{Already done}} – <code>{{tl|Already done}}</code>
:* {{Half done}} – <code>{{tl|Half done}}</code>
:* {{Not done}} – <code>{{tl|Not done}}</code>
:* {{Skip}} – <code>{{tl|Skip}}</code>
* {{Great}} – <code>{{tl|Great}}</code>
* {{Flower}} – <code>{{Tl|Flower}}</code>
</div>
----
''See also on the English Wikipedia: [[:en:Template:Done/See also|Inline icon templates by shape and color]] ''
<noinclude>
[[Category:Polling templates]]
[[Category:Commons navigational templates|polling templates]]
[[Category:Multi-template documentation]]
</noinclude>
hvcrai2bhrbecbu9974ukw0qc0r4uxu
Template:Vote disambiguate category
10
15853
74637
2026-07-30T20:39:16Z
TadejM
11747
+sl
74637
wikitext
text/x-wiki
[[File:Symbol redirect vote all.svg|15px|link=]]''' <bdi>{{LangSwitch
| lang = {{#if:{{{2|{{{lang|}}}}}}|{{{2|{{{lang}}}}}}|{{int:Lang}}}}
| ar = توضيح {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|تصنيف}}
| en = Disambiguate {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|category}}
| hi = {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|श्रेणी}} को बहुविकल्पी बनाएँ
| ko = 불명확 {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|분류}}
| ja = {{#if:{{{1|}}}||カテゴリ}}曖昧さ回避{{#if:{{{1|}}}|({{cl|{{{1|}}}}})|}}
| pt = Desambiguar {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|category}}
| sl = Spremenimo {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|kategorijo}} v razločitev
| sv = Dela upp {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|category}}
| vi = Định hướng {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|thể loại}}
| prg = Ainapreslinais {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|kategōrija}}
| zh-hans = 消歧义{{#if:{{{1|}}}|{{cl|{{{1|}}}}}|分类}}
| zh-hant = 消歧義{{#if:{{{1|}}}|{{cl|{{{1|}}}}}|分類}}
}}</bdi>'''<noinclude>{{Documentation}}</noinclude>
cifecbrppv7ombkilue6d6ah6a4rcxw
74638
74637
2026-09-10T15:30:06Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_disambiguate_category]]: Importing the Support template
74637
wikitext
text/x-wiki
[[File:Symbol redirect vote all.svg|15px|link=]]''' <bdi>{{LangSwitch
| lang = {{#if:{{{2|{{{lang|}}}}}}|{{{2|{{{lang}}}}}}|{{int:Lang}}}}
| ar = توضيح {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|تصنيف}}
| en = Disambiguate {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|category}}
| hi = {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|श्रेणी}} को बहुविकल्पी बनाएँ
| ko = 불명확 {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|분류}}
| ja = {{#if:{{{1|}}}||カテゴリ}}曖昧さ回避{{#if:{{{1|}}}|({{cl|{{{1|}}}}})|}}
| pt = Desambiguar {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|category}}
| sl = Spremenimo {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|kategorijo}} v razločitev
| sv = Dela upp {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|category}}
| vi = Định hướng {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|thể loại}}
| prg = Ainapreslinais {{#if:{{{1|}}}|{{cl|{{{1|}}}}}|kategōrija}}
| zh-hans = 消歧义{{#if:{{{1|}}}|{{cl|{{{1|}}}}}|分类}}
| zh-hant = 消歧義{{#if:{{{1|}}}|{{cl|{{{1|}}}}}|分類}}
}}</bdi>'''<noinclude>{{Documentation}}</noinclude>
cifecbrppv7ombkilue6d6ah6a4rcxw
Template:Vote wait
10
15854
74639
2025-05-31T16:00:55Z
Saurmandal
7072
+hi
74639
wikitext
text/x-wiki
[[File:Symbol wait vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = بالانتظار
|bn= অপেক্ষা করুন
|en = Wait
|es = Esperar
|eu = Itxaron
|fr = Attendez
|hi = रुकिए
|ja = 待ってください
|ko = 기다려주세요
|pt = Esperar
|sv = Avvakta
|zh = 等待
|prg = Gēidlai
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
evrcdxy5p66u3cvhmjgozd1hrx75wez
74640
74639
2026-09-10T15:30:06Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_wait]]: Importing the Support template
74639
wikitext
text/x-wiki
[[File:Symbol wait vote.svg|15px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|ar = بالانتظار
|bn= অপেক্ষা করুন
|en = Wait
|es = Esperar
|eu = Itxaron
|fr = Attendez
|hi = रुकिए
|ja = 待ってください
|ko = 기다려주세요
|pt = Esperar
|sv = Avvakta
|zh = 等待
|prg = Gēidlai
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
evrcdxy5p66u3cvhmjgozd1hrx75wez
Template:Vote keep category
10
15855
74641
2025-12-28T05:08:38Z
YeBoy371
11760
Undo revision 1137887588 by [[Special:Contributions/YeBoy371|YeBoy371]] ([[User talk:YeBoy371|talk]])
74641
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{2|{{{alttext|{{LangSwitch
|lang = {{#if:{{{3|{{{lang|}}}}}}|{{{3|{{{lang}}}}}}|{{int:Lang}}}}
|ar = أبقِ
|be |be-tarask = Пакінуць
|bg = Запази
|bn = রাখুন
|bs = Zadrži
|cs = Ponechat
|da = Behold {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|kategori}}
|de = Behalten {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|Kategorie}}
|el = Διατήρηση
|en = Keep {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|category}}
|eo = Konservi
|es = Manténgase {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|la categoria}}
|et = Säilitada
|eu = Gorde
|fa = بماند
|fi = Säilytettävä
|fr = Conserver {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|catégorie}}
|fy = Behâlde
|gl = Manter
|he = להשאיר
|hi = {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|श्रेणी}} रखें
|hr = Zadržati
|hu = Maradjon
|hy = Թողնել
|ia = Mantener
|it = Mantenere {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|categoria}}
|ja = {{#if:{{{1|{{{cat|}}}}}}||カテゴリ}}存続{{#if:{{{1|{{{cat|}}}}}}|([[:Category:{{{1|{{{cat}}}}}}]])|}}
|ka = შენარჩუნება
|kk = Қалдырылсын
|ko = {{#if:{{{1|{{{cat|}}}}}}||분류}} 유지 {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|}}
|ku = Hiştin
|mk = Задржи
|ml = നിലനിർത്തുക
|ms = Undian simpan
|nb = Behold
|nds= Behollen
|nl = Behouden {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|categorie}}
|nn = Tak vare på
|no = Behold
|pl = Zostawić {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|kategoria}}
|pt = Manter
|ro = Păstrare
|ru = Оставить
|sk = Ponechať
|sl = Ohranimo
|sq = Mbaje
|sr = Оставити
|sv = Behåll {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|kategori}}
|th = เก็บ
|tl = Panatilihin
|tr = Kalsın
|uk = Залишити
|vi = Giữ
|prg = Palāikais
|zh-hans = 保留{{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|分类}}
|zh-hant = 保留{{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|分類}}
}}}}}}}}</bdi>'''<noinclude>{{Documentation}}</noinclude>
t8ydsh7nc0leihzf0uvn4rhdq5ra09y
74642
74641
2026-09-10T15:30:06Z
B722N
6898
1 revision imported from [[:commons:Template:Vote_keep_category]]: Importing the Support template
74641
wikitext
text/x-wiki
[[File:Symbol keep vote.svg|15px|link=]] '''<bdi>{{{2|{{{alttext|{{LangSwitch
|lang = {{#if:{{{3|{{{lang|}}}}}}|{{{3|{{{lang}}}}}}|{{int:Lang}}}}
|ar = أبقِ
|be |be-tarask = Пакінуць
|bg = Запази
|bn = রাখুন
|bs = Zadrži
|cs = Ponechat
|da = Behold {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|kategori}}
|de = Behalten {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|Kategorie}}
|el = Διατήρηση
|en = Keep {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|category}}
|eo = Konservi
|es = Manténgase {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|la categoria}}
|et = Säilitada
|eu = Gorde
|fa = بماند
|fi = Säilytettävä
|fr = Conserver {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|catégorie}}
|fy = Behâlde
|gl = Manter
|he = להשאיר
|hi = {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|श्रेणी}} रखें
|hr = Zadržati
|hu = Maradjon
|hy = Թողնել
|ia = Mantener
|it = Mantenere {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|categoria}}
|ja = {{#if:{{{1|{{{cat|}}}}}}||カテゴリ}}存続{{#if:{{{1|{{{cat|}}}}}}|([[:Category:{{{1|{{{cat}}}}}}]])|}}
|ka = შენარჩუნება
|kk = Қалдырылсын
|ko = {{#if:{{{1|{{{cat|}}}}}}||분류}} 유지 {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|}}
|ku = Hiştin
|mk = Задржи
|ml = നിലനിർത്തുക
|ms = Undian simpan
|nb = Behold
|nds= Behollen
|nl = Behouden {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|categorie}}
|nn = Tak vare på
|no = Behold
|pl = Zostawić {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|kategoria}}
|pt = Manter
|ro = Păstrare
|ru = Оставить
|sk = Ponechať
|sl = Ohranimo
|sq = Mbaje
|sr = Оставити
|sv = Behåll {{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|kategori}}
|th = เก็บ
|tl = Panatilihin
|tr = Kalsın
|uk = Залишити
|vi = Giữ
|prg = Palāikais
|zh-hans = 保留{{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|分类}}
|zh-hant = 保留{{#if:{{{1|{{{cat|}}}}}}|[[:Category:{{{1|{{{cat}}}}}}]]|分類}}
}}}}}}}}</bdi>'''<noinclude>{{Documentation}}</noinclude>
t8ydsh7nc0leihzf0uvn4rhdq5ra09y
Template:Action
10
15856
74643
2026-07-30T20:46:28Z
TadejM
11747
+sl
74643
wikitext
text/x-wiki
[[File:Commons-emblem-Under construction-green.svg|18px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| default = {{label|Q4026292|link=-}}
|cs = K jednání
|de = Aktionspunkt
|en = Action
|hi = कार्य
|fr = Point d'action
|fy = aksjepunt
|ja = 実行
|ky = Иш-аракет
|ru = Действие
|sl = Dejanje
|sr = Радња
|sv = Åtgärd
|nl = Actiepunt
|prg = Segīsenis
|vi = Hành động
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
shomrzkb41ldxfgr6s7hbkm4ur0nyzb
74644
74643
2026-09-10T15:30:06Z
B722N
6898
1 revision imported from [[:commons:Template:Action]]: Importing the Support template
74643
wikitext
text/x-wiki
[[File:Commons-emblem-Under construction-green.svg|18px|link=]] '''<bdi>{{{1|{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
| default = {{label|Q4026292|link=-}}
|cs = K jednání
|de = Aktionspunkt
|en = Action
|hi = कार्य
|fr = Point d'action
|fy = aksjepunt
|ja = 実行
|ky = Иш-аракет
|ru = Действие
|sl = Dejanje
|sr = Радња
|sv = Åtgärd
|nl = Actiepunt
|prg = Segīsenis
|vi = Hành động
}}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}</noinclude>
shomrzkb41ldxfgr6s7hbkm4ur0nyzb
Template:Done/i18n/en
10
15857
74645
2026-07-03T22:50:36Z
FuzzyBot
6845
Updating to match new version of source page
74645
wikitext
text/x-wiki
<noinclude><languages /></noinclude><!--
-->[[File:Yes check.svg|15px|link=|✓]] <!--
-->'''<bdi>{{{1|Done}}}</bdi>'''
5uyuxws3ieck8sgdv5y1uypfqgcjdc7
74646
74645
2026-09-10T15:30:06Z
B722N
6898
1 revision imported from [[:commons:Template:Done/i18n/en]]: Importing the Support template
74645
wikitext
text/x-wiki
<noinclude><languages /></noinclude><!--
-->[[File:Yes check.svg|15px|link=|✓]] <!--
-->'''<bdi>{{{1|Done}}}</bdi>'''
5uyuxws3ieck8sgdv5y1uypfqgcjdc7
Module:Message box/mbox.css
828
15858
74647
2026-07-30T12:26:57Z
Ebrahim
1170
minor code format improve
74647
sanitized-css
text/css
.messagebox {
margin: 4px 0;
width: auto;
border-collapse: collapse;
border: 2px solid var(--border-color-progressive, #6485d1);
background-color: var(--background-color-neutral-subtle, #fbfcff);
color: var(--color-base, #202122);
box-sizing: border-box;
border-inline-start-width: 8px;
}
.messagebox.mbox-small {
font-size: 88%;
line-height: 1.25em;
}
.mbox-warning, .mbox-speedy {
border: 2px solid var(--border-color-error, #b22222);
background: var(--background-color-error-subtle, #ffdbdb);
border-inline-start-width: 8px;
}
.mbox-serious, .mbox-delete, .mbox-stop {
border: 2px solid var(--border-color-error, #b22222);
border-inline-start-width: 8px;
}
.mbox-issue, .mbox-content {
border: 2px solid #f28500;
background:var(--background-color-warning-subtle, #ffe);
border-inline-start-width: 8px;
}
.mbox-query, .mbox-style {
border: 2px solid #f4c430;
background: var(--background-color-warning-subtle, #ffe);
border-inline-start-width: 8px;
}
.mbox-shit {
border: 2px solid #960;
border-inline-start-width: 8px;
}
.mbox-license {
border: 2px solid #88a;
border-inline-start-width: initial;
}
.mbox-legal {
border: 2px solid var(--border-color-notice, #666);
background: var(--background-color-base, #fff);
border-inline-start-width: 8px;
}
.mbox-honor {
border: 2px solid #ca3;
background: var(--background-color-warning-subtle, #fcf4db);
border-inline-start-width: 8px;
}
.mbox-growth {
border: 2px solid #8d4;
background:var(--background-color-success-subtle, #d5fdf4);
border-inline-start-width: 8px;
}
.mbox-move {
border: 2px solid #93c;
border-inline-start-width: 8px;
}
.mbox-protection, .mbox-message {
border: 2px solid var(--border-color-base, #aaa);
border-inline-start-width: 8px;
}
.messagebox .mbox-text {
border: none;
padding: 0.25em 0.9em;
width: 100%;
}
.messagebox .mbox-image {
border: none;
padding-top: 2px;
padding-bottom: 2px;
padding-inline-start: 0.9em;
padding-inline-end: 0;
text-align: center;
}
.messagebox .mbox-imageright {
border: none;
padding-top: 2px;
padding-bottom: 2px;
padding-inline-start: 0;
padding-inline-end: 0.9em;
text-align: center;
}
/* An empty narrow cell */
.messagebox .mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
.messagebox .mbox-invalid-type {
text-align: center;
}
@media (min-width: 720px) {
.messagebox {
margin: 4px 10%;
}
.messagebox.mbox-small {
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
width: 238px;
}
}
/** T367463 */
body.skin--responsive table.messagebox img {
max-width: none !important;
}
bpj5ev2w3xohrs4ixzt2v4aln2v4zxk
74648
74647
2026-09-10T15:30:06Z
B722N
6898
1 revision imported from [[:commons:Module:Message_box/mbox.css]]: Importing the Support template
74647
sanitized-css
text/css
.messagebox {
margin: 4px 0;
width: auto;
border-collapse: collapse;
border: 2px solid var(--border-color-progressive, #6485d1);
background-color: var(--background-color-neutral-subtle, #fbfcff);
color: var(--color-base, #202122);
box-sizing: border-box;
border-inline-start-width: 8px;
}
.messagebox.mbox-small {
font-size: 88%;
line-height: 1.25em;
}
.mbox-warning, .mbox-speedy {
border: 2px solid var(--border-color-error, #b22222);
background: var(--background-color-error-subtle, #ffdbdb);
border-inline-start-width: 8px;
}
.mbox-serious, .mbox-delete, .mbox-stop {
border: 2px solid var(--border-color-error, #b22222);
border-inline-start-width: 8px;
}
.mbox-issue, .mbox-content {
border: 2px solid #f28500;
background:var(--background-color-warning-subtle, #ffe);
border-inline-start-width: 8px;
}
.mbox-query, .mbox-style {
border: 2px solid #f4c430;
background: var(--background-color-warning-subtle, #ffe);
border-inline-start-width: 8px;
}
.mbox-shit {
border: 2px solid #960;
border-inline-start-width: 8px;
}
.mbox-license {
border: 2px solid #88a;
border-inline-start-width: initial;
}
.mbox-legal {
border: 2px solid var(--border-color-notice, #666);
background: var(--background-color-base, #fff);
border-inline-start-width: 8px;
}
.mbox-honor {
border: 2px solid #ca3;
background: var(--background-color-warning-subtle, #fcf4db);
border-inline-start-width: 8px;
}
.mbox-growth {
border: 2px solid #8d4;
background:var(--background-color-success-subtle, #d5fdf4);
border-inline-start-width: 8px;
}
.mbox-move {
border: 2px solid #93c;
border-inline-start-width: 8px;
}
.mbox-protection, .mbox-message {
border: 2px solid var(--border-color-base, #aaa);
border-inline-start-width: 8px;
}
.messagebox .mbox-text {
border: none;
padding: 0.25em 0.9em;
width: 100%;
}
.messagebox .mbox-image {
border: none;
padding-top: 2px;
padding-bottom: 2px;
padding-inline-start: 0.9em;
padding-inline-end: 0;
text-align: center;
}
.messagebox .mbox-imageright {
border: none;
padding-top: 2px;
padding-bottom: 2px;
padding-inline-start: 0;
padding-inline-end: 0.9em;
text-align: center;
}
/* An empty narrow cell */
.messagebox .mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
.messagebox .mbox-invalid-type {
text-align: center;
}
@media (min-width: 720px) {
.messagebox {
margin: 4px 10%;
}
.messagebox.mbox-small {
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
width: 238px;
}
}
/** T367463 */
body.skin--responsive table.messagebox img {
max-width: none !important;
}
bpj5ev2w3xohrs4ixzt2v4aln2v4zxk
Template:Skip
10
15859
74649
2025-11-02T21:53:15Z
Yug
5153
74649
wikitext
text/x-wiki
[[File:Symbol partial oppose vote.svg|15px|alt=|link=]] '''<bdi>{{{1|{{i18n/Skip|lang={{{lang|}}} }}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}
</noinclude>
r5q47admtr9smqc3rh294tmjucj3tt4
74650
74649
2026-09-10T15:30:06Z
B722N
6898
1 revision imported from [[:commons:Template:Skip]]: Importing the Support template
74649
wikitext
text/x-wiki
[[File:Symbol partial oppose vote.svg|15px|alt=|link=]] '''<bdi>{{{1|{{i18n/Skip|lang={{{lang|}}} }}}}}</bdi>'''<noinclude>{{Documentation|Template:Polling template}}
</noinclude>
r5q47admtr9smqc3rh294tmjucj3tt4
Template:I18n/Skip
10
15860
74651
2026-07-30T20:47:29Z
TadejM
11747
+sl
74651
wikitext
text/x-wiki
{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|en = Skip
|fr = Passer
|it = Salta
|ja = スキップ
|ko = 건너뛰기
|sl = Preskoči
|zh/zh-hans/zh-cn = 跳过
|zh-hant = 跳過
}}<noinclude>{{documentation|Template:i18n/doc}}
[[Category:Internationalization templates using LangSwitch|{{PAGENAME}}]]
</noinclude>
2ddowxm6r5kyedwvmgyv8n70x0j1hnt
74652
74651
2026-09-10T15:30:06Z
B722N
6898
1 revision imported from [[:commons:Template:I18n/Skip]]: Importing the Support template
74651
wikitext
text/x-wiki
{{LangSwitch
|lang = {{#if:{{{lang|}}}|{{{lang}}}|{{int:Lang}}}}
|en = Skip
|fr = Passer
|it = Salta
|ja = スキップ
|ko = 건너뛰기
|sl = Preskoči
|zh/zh-hans/zh-cn = 跳过
|zh-hant = 跳過
}}<noinclude>{{documentation|Template:i18n/doc}}
[[Category:Internationalization templates using LangSwitch|{{PAGENAME}}]]
</noinclude>
2ddowxm6r5kyedwvmgyv8n70x0j1hnt
Module:TNT/config
828
15861
74653
2026-07-21T03:07:56Z
Fdsdsfsdf
11761
[[Special:MyLanguage/COM:AES|←]]Created page with 'local p = {}; -- The tracking category name for global TemplateData pages located on Commons -- under "Data:Templatedata/" instead of "Data:TemplateData/", -- defaults to `"Templates using legacy global TemplateData table name"` -- when not set; set to `false` to disable all categorisation p.legacyTemplateDataCategoryName = nil; -- Whether to add the language subtag to the template name using {{#translation:}}, -- defaults to `false` p...'
74653
Scribunto
text/plain
local p = {};
-- The tracking category name for global TemplateData pages located on Commons
-- under "Data:Templatedata/" instead of "Data:TemplateData/",
-- defaults to `"Templates using legacy global TemplateData table name"`
-- when not set; set to `false` to disable all categorisation
p.legacyTemplateDataCategoryName = nil;
-- Whether to add the language subtag to the template name using {{#translation:}},
-- defaults to `false`
p.translatableCategoryLink = true;
return p;
feifiyrqk27bj288o6etsyyn8h6qanf
74654
74653
2026-09-10T15:30:06Z
B722N
6898
1 revision imported from [[:commons:Module:TNT/config]]: Importing the Support template
74653
Scribunto
text/plain
local p = {};
-- The tracking category name for global TemplateData pages located on Commons
-- under "Data:Templatedata/" instead of "Data:TemplateData/",
-- defaults to `"Templates using legacy global TemplateData table name"`
-- when not set; set to `false` to disable all categorisation
p.legacyTemplateDataCategoryName = nil;
-- Whether to add the language subtag to the template name using {{#translation:}},
-- defaults to `false`
p.translatableCategoryLink = true;
return p;
feifiyrqk27bj288o6etsyyn8h6qanf
Template:Polling template/doc
10
15862
74655
2026-09-10T15:31:59Z
B722N
6898
created template
74655
wikitext
text/x-wiki
<noinclude>{{Protected|small=yes}}</noinclude>
{{TemplateBox
|1 = 1
|1label-en = text
|1d-be-tarask = Неабавязковы парамэтар, які дазваляе перавызначыць тэкст паведамленьня.
|1d-cs = Výjimečně používaný volitelný parametr, který umožňuje přepisovat standardní zprávu.
|1d-de = Der selten benutzte optionale Parameter erlaubt es, die Standardtextnachricht zu überschreiben.
|1d-en = Rarely used optional parameter allows to overwrite the default text message
|1d-ru = Необязательный параметр, заменяет текст сообщения.
|1d-zh-hans = 很少使用的选填参数,覆盖默认消息文字
|1type = line
|1stat = optional-
|2 = lang
|2label-en = language
|2d-be-tarask = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki> (дзе xx — код мовы ISO 639-2) дзеля вываду пэўнай мовай.
|2d-de = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki> (wobei xx der ISO 639-2-Sprachencode ist) für die Ausgabe in der gewünschten Sprache.
|2d-en = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki> (where xx is ISO 639-2 language code) for output in the specified language.
|2d-zh-hans = <nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=xx}}</nowiki>(xx为ISO 639-2语言代码)用于输出特定语言。
|2type = line
|2stat = optional-
|name = {{BASEPAGENAME}}
|desc-be-tarask = Гэта ''шаблён галасаваньня''. Калі ласка, дадавайце свае лякалізацыі. Любую дапамогу ў абнаўленьні перакладаў можна запытваць на [[Commons:Administrators' noticeboard|старонцы запытаў да адміністратараў]].
|desc-cs = Toto je ''hlasovací šablona''. Neváhejte přidat překlady šablony. O jakoukoliv pomoc s editací těchto překladů můžete žádat na [[Commons:Administrators' noticeboard|nástěnce správců]].
|desc-de = Dies ist eine ''Abstimmungsvorlage''. Es kann jederzeit eine Übersetzung hinzugefügt werden. Jegliche Hilfe zur Aktualisierung dieser Übersetzung kann über [[Commons:Administrators' noticeboard|Administratorenanfragen]] angefordert werden.
|desc-en = This is a ''[[Commons:Polling templates|polling template]]''.<br>
<span style="font-weight:lighter">Feel free to add language translations. Any help in updating these translations may be requested at the [[Commons:Administrators' noticeboard|Administrators' Noticeboard]].</span>
|desc-td-en = This is a polling template.
|desc-pl = To jest ''szablon głosowania''. Możesz pomóc przetłumaczyć go na inne języki. W wypadku zabezpieczonych szablonów o umieszczeniu tłumaczenia można prosić na [[Commons:Administrators' noticeboard|stronie próśb do administratorów]].
|desc-pt = Esta é uma ''predefinição de votação''. Sinta-se livre para adicionar traduções notras línguas. Qualquer ajuda na actualização destas traduções pode ser solicitada nos [[Commons:Administrators' noticeboard|pedidos aos administradores]].
|desc-ru = Это ''шаблон для голосования''. Вы можете помочь, добавив язык в шаблон, а если шаблон защищён, напишите на [[Commons:Administrators' noticeboard|странице запросов к администраторам]].
|desc-th = นี่คือแม่แบบลงคะแนน หากต้องการเพิ่มภาษาของคุณ กรุณาส่งคำขอที่[[Commons:Administrators' noticeboard|หน้าแจ้งผู้ดูแลระบบ]]
|desc-zh-hans = 这是一个[[Commons:Polling templates|投票模板]]。请随意添加语言翻译。任何更新这些译文的帮助可以在[[Commons:Administrators' noticeboard|管理员通知栏]]请求。
|namespace = all
|usergroup = all
|usage-notes = {{#switch:{{BASEPAGENAME}}
<!-- same order as in [[Template:Polling template/see also]] -->
|Support = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? --><br>
{{mbox|image=none|text=''{{tl|Sup}}'' redirects here. For the actual '''''sup'''erscript template'', see {{tl|Exp}} or {{tl|Sup sub}}.|margin=0em|type=message}}
|Strong support = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak support = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Agree = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Unsupport = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Withdraw = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Oppose = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Strong oppose = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak oppose = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Disagree = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Neutral = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? --><br>
{{mbox|image=none|text=''{{tl|Vn}}'' (Vote neutral) redirects here. For the '''''v'''ernacular '''n'''ames template'', see {{tl|VN}}.|margin=0em|type=message}}
|Abstain = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|No proposal = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Comment = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Info = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Warning sign = This template is for use on [[Wikipedia:talk pages|talk pages]] to highlight the importance / warn. It is used to visually draw attention inline in a message, to a warning about something, such as a coding difficulty to watch out for, inappropriate editor behavior, etc.<br>{{warnsign}} Not to be mixed with {{tl|warning}}!
|Vote wait = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|On hold = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Question = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Request = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote keep = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote speedykeep = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak keep = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
<!-- |Vote keep category = usage-notes for this polling template are defined on its own doc page: [[Template:Vote keep category/doc]] -->
<!-- |Vote merge = usage-notes for this polling template are defined on its own doc page: [[Template:Vote merge/doc]]-->
|Vote move = {{tl|Vote move}} is for files; the template {{tl|Vote rename category}} is for categories<br>{{warnsign}} Not to be mixed with {{tl|move}}!
|Vote rename category = * Use <code><nowiki>{{Vote rename category|||A|B}}</nowiki></code> which renders to {{Vote rename category|||A|B}}
* Use <code><nowiki>{{Vote rename category|from=A|to=B}}</nowiki></code> for the same
* or use the "shorthand" <code>{{tlx|Vrnc|A|B}}</code>
* for files use the template {{tl|Vote move}}
|Vote redirect = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
<!-- |Vote disambiguate category = usage-notes for this polling template are defined on its own doc page: [[Template:Vote disambiguate category/doc]]-->
|Restore = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Delist = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Delistandreplace = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote delete = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Vote speedy = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Weak delete = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Resolved = {{tl|Resolved}} is a [[Commons:Polling templates|Polling templates]]; the template {{tl|Section resolved}} marks a thread on a talk page as resolved but also enables ''automatic archiving'' of selected threads.
|Resolved by consensus = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Resolved without objection = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Unresolved discussion = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|No consensus = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Already done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Half done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Not done = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Skip = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Great = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
|Flower = No description for this polling template yet available.<!-- When it is used? What is the effect/result of using it? What are the differences to similar templates? -->
}}
|type = formatting
|example = <includeonly>Hello World!</includeonly>
|i18n-method = switch
|i18n-desc = For {{tl|Done}}, see [[translatewiki:Special:Translations/MediaWiki:feedback-close|translatewiki.net]].<br>For {{tl|Not done}}, see {{tl|I18n/not done}}.
|i18n-mediawiki-msg =
|i18n-subpage =
|seealso = {{#switch:{{BASEPAGENAME}}<!-- same order as in [[Template:Polling template/see also]] -->
|Support = {{Distinguish|text={{tl|Smallsup}} – for the text formatting template}}
|Strong support =
|Weak support =
|Agree =
|Unsupport =
|Withdraw =
|Oppose =
|Strong oppose =
|Weak oppose =
|Disagree =
|Neutral =
|Abstain =
|No proposal =
|Comment =
|Info =
|Warning sign =
|Vote wait = {{Distinguish|text={{T|Wait}} – for the work-in-progress template}}
|On hold =
|Question =
|Request =
|Vote keep =
|Vote speedykeep =
|Weak keep =
<!-- |Vote keep category = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vote keep category/doc]] -->
<!-- |Vote merge = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vote merge/doc]] -->
|Vote move =
<!-- |Vote rename category = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vrnc/doc]] -->
|Vote redirect =
<!-- |Vote disambiguate category = SEE ALSO for this polling template are defined on its own doc page: [[Template:Vote disambiguate category/doc]] -->
|Restore =
|Delist =
|Delistandreplace =
|Vote delete =
|Vote speedy =
|Weak delete =
|Resolved =
|Resolved by consensus =
|Resolved without objection =
|Unresolved discussion =
|No consensus =
|Done =
|Already done =
|Half done =
|Not done =
|Skip =
|Great =
|Flower =
}}
{{polling template/see also}}
|setscats =
|print = one
|shorthand = {{#switch:{{BASEPAGENAME}}<!-- same order as in [[Template:Polling template/see also]] -->
|Support = {{tl|S}}, {{tl|Sup}}, {{tl|Yes}}, {{tl|Pro}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ASupport&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Strong support = {{tl|SSupport}}, {{tl|Strong pro}}, {{tl|Love}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AStrong+support&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak support = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+support&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Agree = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Unsupport = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Withdraw = {{tl|Wdn}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWithdraw&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Oppose = {{tl|O}}, {{tl|Opp}}, {{tl|Contra}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AOppose&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Strong oppose = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AStrong+oppose&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak oppose = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+oppose&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Disagree = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Neutral = {{tl|N}}, {{tl|Vn}}, {{tl|Neu}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANeutral&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Abstain = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|No proposal = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANo+proposal&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Comment = {{tl|Com}}, {{tl|Cmt}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AComment&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Info = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Warning sign = {{tl|Warnsign}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWarning+sign&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote wait = {{tl|Vw}}, {{tl|VW}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+wait&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|On hold = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AOn+hold&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Question = {{tl|?}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AQuestion&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Request = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote keep = {{tl|K}}, {{tl|Vk}}, {{tl|Keep}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+keep&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote speedykeep = {{tl|Vsk}}, {{tl|Speedykeep}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+speedykeep&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak keep = {{tl|Wk}}, {{tl|Vwk}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+keep&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
<!-- |Vote keep category = shorthands for this polling template are defined on its own doc page: [[Template:Vote keep category/doc]] -->
<!-- |Vote merge = shorthands for this polling template are defined on its own doc page: [[Template:Vote merge/doc]] -->
|Vote move = {{tl|Vote move}} is for files; the template {{tl|Vote rename category}} is for categories<br>{{warnsign}} Not to be mixed with {{tl|move}}!
<!-- |Vote rename category = {{Vrnc}} is not only a shorthand, so it is listed under usage-notes, see also its own doc page: [[Template:Vrnc/doc]] -->
|Vote redirect = {{tl|Vrd}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+redirect&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
<!-- |Vote disambiguate category = shorthands for this polling template are defined on its own doc page: [[Template:Vote disambiguate category/doc]] -->
|Restore = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Delist = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Delistandreplace = {{tl|Dar}}, {{tl|D&R}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ADelistandreplace&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote delete = {{tl|Vd}}, {{tl|VD}}, {{tl|Remove}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+delete&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Vote speedy = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AVote+speedy&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Weak delete = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AWeak+delete&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Resolved = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Resolved by consensus = {{tl|Resolved bc}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AResolved+by+consensus&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Resolved without objection = {{tl|Resolved wo}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AResolved+without+objection&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Unresolved discussion = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AUnresolved+discussion&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|No consensus = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANo+consensus&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Done = {{tl|☑}}, {{tl|D}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Already done = {{tl|Adone}}, {{tl|Already}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AAlready+done&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Half done = {{tl|Hdone}}, {{tl|Half}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3AHalf+done&namespace=10&hidetrans=1&hidelinks=1 check here]</small><br>or use the shorthand {{tl|Partly}} (equal to <nowiki>{{Half done|Partly done}}</nowiki>) which renders {{Partly}}<br>or use the shorthand {{tl|Mostly}} (equal to <nowiki>{{Half done|Mostly done}}</nowiki>) which renders {{Mostly}}
|Not done = {{tl|Nd}}, {{tl|Ndone}}, {{tl|Notdone}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ANot+done&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Skip = {{tl|Skip}} <small>or [https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3ASkip&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Great = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
|Flower = <small>[https://commons.wikimedia.org/wiki/Special:WhatLinksHere?target=Template%3A{{BASEPAGENAME}}&namespace=10&hidetrans=1&hidelinks=1 check here]</small>
}}
|useTemplateData = only
}}<includeonly>
== {{LangSwitch|be-tarask=Іншыя прыклады|de=Weitere Beispiele|th=ตัวอย่างเพิ่มเติม|en=More examples}} ==
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>}}</nowiki></code> : {{LangSwitch
|be-tarask=Адлюструе назву на зададзенай у наладах карыстальніка мове:
|cs=Zobrazí název šablony v závislosti na uživatelském nastavení jazyka:
|de=es wird der Name in der vom Benutzer eingestellten Sprache angezeigt:
|en=Will try to display the label in the user's desired language:
|th=จะแสดงชื่อในภาษาที่ผู้ใช้เลือก:
|zh-hans=将显示用户设置指定语言的名称:
}} {{ {{BASEPAGENAME}} }}
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|lang=</nowiki>{{LangSwitch|be-tarask=pl|cs=pl|fr=pl|en=pl|th=pl}}<nowiki>}}</nowiki></code> : {{LangSwitch
|be-tarask=Заўсёды адлюстроўвацьме назву па-польску:
|cs=Vždy zobrazí název v polštině:
|de=es wird immmer der polnischsprachige Name angezeigt:
|en=Try displaying the label in Polish (falling back to another language if the label isn't defined for that language):
|th=จะแสดงในภาษาโปแลนด์เสมอ:
|zh-hans=将始终显示波兰语的名称:
}} {{ {{BASEPAGENAME}}|lang={{LangSwitch|be-tarask=pl|cs=pl|fr=pl|en=pl|th=pl}}}}
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|{{LangSwitch|be-tarask=Вітаем|cs=Ahoj|de=Hallo|en=hello|th=สวัสดี}}<nowiki>}}</nowiki></code> : {{LangSwitch
|be-tarask=Побач са стандартнай выявай адлюструецца ўласны тэкст:
|cs=Ponechá ikonu, ale zobrazí vlastní text:
|de=es wird das Icon beibehalten aber mit der eigenen Mitteilung:
|en=Will only keep the icon and replace the default label with a custom message (which must not contain equal signs ("=")):
|th=แสดงไอคอนเช่นเดิมแต่เปลี่ยนข้อความ:
|zh-hans=将保留图标,并添加自定义消息:
}} {{ {{BASEPAGENAME}}|{{LangSwitch|be-tarask=Вітаем|cs=Ahoj|de=Hallo|en=hello|th=สวัสดี}}}}
; <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>|}}</nowiki></code> : {{LangSwitch
|be-tarask=Адлюструецца толькі стандартная выява бяз тэксту:
|cs=Zobrazí ikonu bez textu:
|de=es wird das Icon beibehalten aber ohne Mitteilung:
|en=Will only display the icon (without a label):
|th=จะมีไอคอนแต่ไม่มีข้อความ:
|zh-hans=将保留图标,但不显示消息文字:
}} {{ {{BASEPAGENAME}}|}}</includeonly>
<includeonly>
[[Category:Polling templates]]
[[Category:Internationalization templates using LangSwitch]]
[[Category:Internationalised message templates]]</includeonly>
<noinclude>
{{Documentation}}
[[Category:Internationalised documentation templates]]
[[Category:Template namespace templates]]</noinclude>
nqkivhdqcylzw3h1rdn3lig2bzzgb5e
Module:Autotranslate/doc
828
15863
74656
2026-09-10T15:34:43Z
B722N
6898
created module
74656
wikitext
text/x-wiki
{{Module rating|release}}{{Module rating|protected}}{{used in system}}
Code for {{tl|Autotranslate}}.
kxwmfmbd0194u9ay18x2u3tqu3wbgny
Template:Autotranslate
10
15864
74657
2026-09-10T15:35:14Z
B722N
6898
created template
74657
wikitext
text/x-wiki
<includeonly>{{#invoke:Autotranslate|autotranslate}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
3r90y9tnomn1c0a2w0n3hcuhayfgog0
Template:Autotranslate/doc
10
15865
74658
2026-09-10T15:35:43Z
B722N
6898
created template
74658
wikitext
text/x-wiki
{{Shared Template Warning|Template:Autotranslate|origin=Commons}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{Lua|Module:Autotranslate}}
{{TemplateBox
| 2 = ...
| 2d-en = Any additional parameter passed to {{tl|Autotranslate}} will be passed to {{tl|Autotranslate}}'s subtemplates. Parameter names are case independent and the subtemplates '''will only ''see lower case'' names'''.
| 2d-td-en = <nowiki>Any additional parameter passed to {{Autotranslate}} will be passed to {{Autotranslate}}'s subtemplates. Parameter names are case independent and the subtemplates **will only *see lower case* names**.</nowiki>
| 2stat = optional-
| 1 = base
| 1label-en = Translation parent page
| 1d-en = Parent page of the translated sub-pages. For example, if a template '''Foo''' keeps translations in sub-templates [[Template:Foo/en]], [[Template:Foo/de]], etc. then base is '''Template:Foo''', or just '''Foo'''. If a template '''Foo''' uses translation extension, then the language sub-templates will be most likely stored in [[Template:Foo/i18n/en]], [[Template:Foo/i18n/de]], etc., then the base is '''Foo/i18n'''.
| 1type = wiki-template-name
| 1av = {{((}}subst:PAGENAME{{))}}/i18n
| 1stat = required
| 3 = lang
| 3label-en = Language
| 3d-en = display language
| 3type = string
| 3def = <code>{{Magic word|int|lang}}</code>
| 3def-td = <nowiki>{{int:lang}}</nowiki>
| 3stat = optional-
| 4 = default
| 4label-en = default
| 4d-en = default language sub-page which will be called in case all language sub-pages in the fallback chain are missing
| 4type = string
| 4def = en
| 4def-td = en
| 4stat = optional-
| name = Autotranslate
| desc-en = This template is used as a part of the larger mechanism to show a template content in the user's interface language. It allows you to set up set of language subtemplates and call proper subtemplate based on users chosen language. All parameters passed to Autotranslate will be passed to the subtemplates. See [[Help:Autotranslate]] for help on the whole process. In most cases to use this template, you can use the following code snippet:
<pre style="overflow:auto">
{{#invoke:Autotranslate|autotranslate|base={{subst:PAGENAME}}/i18n}}
</pre>
| desc-td-en = This template is used as a part of the larger mechanism to show a template content in the user's interface language. It allows you to set up set of language subtemplates and call proper subtemplate based on users chosen language. All parameters passed to Autotranslate will be passed to the subtemplates. See “Help:Autotranslate” for help on the whole process.
| namespace = template
| usergroup = all
| placement = top
| i18n-method = -
| i18n-desc = Used by {{C|templates using Autotranslate for internationalisation}} and {{C|templates using the Translate extension for internationalisation}}.
| seealso =
* {{tl|LangSwitch}} for all-translations-on-one-page template i18n mechanism template.
* {{tl|Multilingual link}} chooses link to Wikipedia article in the user interface language.
| setscats = [[:Category:Autotranslated templates]]
| relieson = [[Module:Autotranslate]]
| print = multi
| useTemplateData = 1
}}
== How to convert a template ==
Before you apply this template, first you have to prepare the template.
=== Pick a template ===
—See for example [http://commons.wikimedia.org/w/index.php?title=Template:Cc-by-1.0&oldid=12667239 Template:Cc-by-1.0 before changes].<br />
First you have to pick a template to autotranslate.<br />
''In this documentation, we will name our "selected template" as:'' <code>Template:<var>Template name</var></code>
*See [[Commons:Template i18n]] for a list of templates needing translation or translated.
=== Create a layout template ===
—See for example [[Template:Apache/layout]].<br />
You must create a layout template, named <code>Template:<var>Template name</var>/layout</code>, to contain the layout of all language versions of the template. The easiest way to do this is to copy a layout template of a similar template.<br />
This template should not add any categories when transcluded.
=== Convert existing language versions ===
—See for example [[Template:Apache/en]].<br />
All versions must be subpages of <code>Template:<var>Template name</var></code>, and this name must use the appropriate prefix, [[m:List_of_Wikipedias|as used on Wikipedia]] when adding a new language –ISO 639 language code–.
:For example, the Spanish subpage must be named <code>Template:<var>Template name</var>/es</code>
Usually the English-language template links to the main template –<code>Template:<var>Template name</var></code>–. This is incorrect, point it instead to the <code>Template:<var>Template name</var>/en</code> subpage.
Each language version of the template should be checked and converted to use the layout template –<code>Template:<var>Template name</var>/layout</code>–.<br />Start with the English language version and compare it to the current template.
Note that everything that is not supposed to be included together with the template, like <code><nowiki>{{translated tag|cleanup}}</nowiki></code> or <code><nowiki>{{documentation}}</nowiki></code>, must be inside a <code><noinclude></code> tag.
Here is the syntax you must use for <code>Template:<var>Template name</var>/<<var>prefix</var>></code>.
<nowiki>{{</nowiki><code><var>Template name</var>/layout</code>
|text=<''translated text of the template''>
|lang=<''prefix''>
<nowiki>}}<noinclude>
{{translated tag|license}}
</noinclude></nowiki>
=== Create a documentation page ===
—See for example [[Template:Apache/doc]].<br />
Create a documentation page at <code>Template:<var>Template name</var>/doc</code>. This documentation page should include some code for creating language versions of the template. {{tl|TemplateBox}} has a <code>|il8n=autotranslate</code> option which provides a standard explanation of how to localise an autotranslated template.
=== Convert the main template ===
—See for example [[Template:Apache]].<br />
The last step is to enable the template. Be sure to check everything before you enable the template. You can cause a really big mess!
To enable the template, put this code in the template –<code>Template:<var>Template name</var></code>–.
<nowiki>{{#invoke:Autotranslate|autotranslate|</nowiki>base=<var>template name</var>}}
==See also==
{{#invoke:Autotranslate|autotranslate|base=I18n templates}}
<includeonly>{{Sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Internationalization templates]]
[[Category:Autotranslated templates| *]]
[[Category:Lua-based templates]]
}}</includeonly>
duy011j0oi5xxlleqydfp4m8ueyyixk
Template:Apache
10
15866
74659
2026-09-10T15:36:31Z
B722N
6898
created template
74659
wikitext
text/x-wiki
{{#invoke:Autotranslate|autotranslate|1={{{author|{{{1|}}}}}}|2={{{year|{{{2|}}}}}}|base=Apache/i18n}}{{#ifeq:{{NAMESPACE}}|File|{{{category|[[Category:Apache License|{{PAGENAME}}]]}}}}}<noinclude>
{{In category|Apache License}}
{{documentation}}
[[Category:License tags|{{PAGENAME}}]]
</noinclude>
l467vv3pynyp6ezh7hbx2cieerkgk09
Module:LangSwitch/doc
828
15867
74661
2026-09-10T15:48:25Z
B722N
6898
created Module
74661
wikitext
text/x-wiki
{{Module rating|release}}{{Module rating|protected}}{{used in system}}
;Code for [[Template:LangSwitch]].
kln3r819fxujp5qibr8k45hpn78q22q
Template:LangSwitch/doc
10
15868
74662
2026-09-10T15:53:07Z
B722N
6898
created template
74662
wikitext
text/x-wiki
{{Lua|Module:LangSwitch}}
{{Used in system}}
{{TemplateBox
|name=LangSwitch{{{sandbox|}}}
|desc-de=Bietet eine Methode zur Anzeige einer Textzeichenfolge, die aus einer Auswahl von Übersetzungen in verschiedenen Sprachen ausgewählt wurde, in der Sprache, die in den Benutzereinstellungen des Benutzers/in festgelegt ist, oder in der am besten geeigneten Ausweichsprache.
|desc-en=Provides a method to present a string of text selected from an array of many language translations in the language set in the user's preferences or the most appropriate fallback language.
|desc-fr=Permet de présenter un texte dans la langue de l’utilisateur, en sélectionnant depuis un ensemble de versions en différentes langues. La langue choisie est soit celle définie dans les préférences de l’utilisateur, soit la plus appropriée (déterminée par GetFallback).
|desc-ja=翻訳されている多くの言語の中から、適切な言語でテキスト文字を表示する機能を提供します。その適切な言語とは、ユーザの好みに応じて言語セットで選択された言語、あるいは、(GetFallbackで定義される)自動システムで一番最適と思われる言語です。
|desc-mk=Од разните постоечки преводи, го дава преводот на јазикот одбран во нагодувањата, или пак најсоодветниот резервен јазик (според утврденото во GetFallback).
|desc-zh=从已翻译的多语言文本组中输出以特定语言的文本。显示语言为用户设置语言,或是由GetFallback定义的后备语言。
|1=en
|1label=English
|1label-de=Englisch
|1d-de=Text in englischer Sprache. Sofern nicht die Option „default=” verwendet wird, wird dieser Text standardmäßig auch dann zurückgegeben, wenn keine der angegebenen Sprachen mit der in der optionalen Option „lang=” Auswahl übereinstimmt (oder mit der in den Benutzereinstellungen ausgewählten Sprache, wenn diese Option nicht angegeben ist). Wenn Sie keinen Text anzeigen möchten, wenn die Sprache des Benutzers Englisch ist, verwenden Sie „en=~”.
|1d-en=Text in the English language. Unless the “default=” option is used, this text will also be returned by default if none of the languages provided match the language selected in the optional “lang=” option (or the language selected in the user's preferences, if that last option is not specified). If you do not want to show any text when the user's language is English, then use “en=~”.
|1d-fr=Le texte en anglais. À moins que l’option « default= » soit utilisée, ce texte sera également retournée si aucune des langues fournies ne correspond à la langue sélectionnée dans l’option facultative « lang= » (ou à la langue sélectionnée dans les préférences de l’utilisateur, si cette dernière option n’est pas indiquée). Si vous ne souhaitez retourner aucun texte lorsque la langue sélectionnée est l’anglais, utilisez « en=~ ».
|1d-ja=英語言語の文字。下記の“デフォルト”オプションを設定していない場合で、ユーザが選択した言語セットに該当する翻訳がない場合、この英語テキストが通常使われます。もしユーザの使用言語が英語で何も文字を表示させたくない場合、「en=~」と記述してください。「en」オプションのないLangSwitchテンプレートはカテゴリCategory:LangSwitch template without default versionに自動的に追加されます。
|1d-zh=英文文本。除非通过“default”设置默认显示语言,否则将在用户偏好语言的翻译文本缺失的情况下显示英文文本。如果不想在用户使用英语时显示任何文本,请指定“en=~”。
|1stat=required
|1type=string
|2=xx
|2label=Translation
|2label-de=Übersetzung
|2d-de=Text übersetzt in die Sprache mit dem Code „xx“ (der Parametername „xx“ kann jeder unterstützter Sprachcode sein, der den Standards BCP 47 oder ISO 639-1 entspricht). Verwende „xx=~“, wenn du keinen Text (auch nicht den Standardtext) in dieser bestimmten Sprache haben möchtest. Du kannst auch mehrere Sprachen demselben Text zuordnen, indem du „<nowiki>{{LangSwitch |xx/yy/zz=text }}</nowiki>“ verwendest, was „<nowiki>{{LangSwitch |xx=text |yy=text |zz=text }}</nowiki>“ entspricht. Du kannst für jede übersetzte Sprache so viele Parameter wie nötig angeben.
|2d-en=Text translated in language with code “xx” (the parameter name “xx” can be any supported language code, conforming to the BCP 47 or ISO 639-1 standards). Use “xx=~” if you do not want any text (not even the default text) in this specific language. You may also map multiple languages to the same text by using “<nowiki>{{LangSwitch |xx/yy/zz=text }}</nowiki>”, which is equivalent to “<nowiki>{{LangSwitch |xx=text |yy=text |zz=text }}</nowiki>”. You can specify as many such parameters as needed for each translated language.
|2d-fr=Le texte traduit dans la langue de code « xx » (le nom du paramètre « xx » peut être n’importe quel code langue pris en charge, conforme au standard BCP 47 ou à la norme ISO 639-1). Utilisez « xx=~ » si vous ne voulez aucun texte (ni même le texte par défaut) dans cette langue spécifique. Vous pouvez également faire correspondre plusieurs langues au même texte en utilisant « <nowiki>{{LangSwitch |xx/yy/zz=texte }}</nowiki> », ce qui est équivalent à « <nowiki>{{LangSwitch |xx=texte |yy=texte |zz=texte }}</nowiki> » . Vous pouvez indiquer autant de paramètres similaires que nécessaire pour chaque langue de traduction.
|2d-ja=言語「xx」で翻訳された文字。 (パラメーター名「xx」は(BCP 47/ISO 639-1)なら何でも大丈夫で、翻訳する言語ごとにいくつでも指定可能です) もし特定の言語でメッセージを表示させたくない場合(あるいはデフォルト値として)、「xx=~」と記述してください。
|2d-mk=Текст на јазикот “xx”. “xx” може да бидат било кои поддржани јазици (BCP 47/ISO 639-1).
|2d-zh=“xx”语言的翻译文本,参数名“xx”可以是任何来自BCP 47或ISO 639-1的语言代码,可根据需要增加可能多的翻译语言。如果希望在某种特定语言中不显示任何信息(故意留空),请使用“xx=~”。可以使用“<nowiki>{{LangSwitch |xx/yy/zz=text }}</nowiki>”在多种语言中使用一个文本中,相当于“<nowiki>{{LangSwitch |xx=text |yy=text |zz=text }}</nowiki>”。
|2stat=optional
|2type=string
|3=default
|3label=Default fallback
|3label-de=Standard-Fallback
|3d-de=Standardtext, der angezeigt wird, wenn keine der mit den Optionen „xx=text“ angegebenen Sprachen mit der über die Option „lang=” ausgewählten Sprache übereinstimmt (oder mit der in den Präferenzen des Benutzers/in ausgewählten Sprache, wenn diese Option nicht angegeben ist); standardmäßig wird die englische Version (sofern im Parameter „en=text“ angegeben) angezeigt, andernfalls wird eine Fehlermeldung ausgegeben.
|3d-en=Default text to return in case none of the languages specified with the “xx=text” options match the language selected by the “lang=” option (or the language selected in user's preferences, if that option is not specified); by default, the English version (if provided in the “en=text” parameter) will be shown, otherwise a error message will be returned.
|3d-fr=Le texte par défaut à retourner au cas où aucune des langues indiquées par les options « xx=texte » ne correspond à la langue sélectionnée par l’option « lang= » (ou la langue sélectionnée dans les préférences de l’utilisateur, si cette option n’est pas indiquée) ; par défaut, la version anglaise (si elle est fournie dans le paramètre « en=texte ») sera affichée, sinon un message d’erreur sera retourné.
|3d-ja=デフォルト言語の文字。上記の「xx」言語の中にユーザが指定した言語が含まれていない場合に、このデフォルト・オプションを使います。通常はデフォルトとして英語(en)で表示されます。
|3def=<nowiki>{{{en|}}}</nowiki> (English version)
|3stat=suggested
|3type=string
|4=lang
|4label=Language code
|4label-de=Sprachcode
|4d={{Language-code-documentation}} Note that specifying “<nowiki>{{#if: {{{lang|}}} | {{{lang|}}} | {{Int:Lang}} }}</nowiki>” in this value is usually not necessary, unless one wants to override the default target language.
|4d-de={{Language-code-documentation}} Beachte, dass die Angabe von „<nowiki>{{#if: {{{lang|}}} | {{{lang|}}} | {{Int:Lang}} }}</nowiki>” in diesem Wert normalerweise nicht nötig ist, es sei denn, man will die Standardzielsprache überschreiben.
|4def-de=Wert von „<nowiki>{{Int:Lang}}</nowiki>“ (die bevorzugte Sprache von dir, der die Seite anschaut).
|4def-en=Value of “<nowiki>{{Int:Lang}}</nowiki>” (the preferred language of the visitor viewing the page).
|4def-fr=La valeur de « <nowiki>{{Int:Lang}}</nowiki> » (la langue préférée du visiteur visualisant la page).
|4def-ja=“<nowiki>{{Int:Lang}}</nowiki>”の値 (ページを閲覧しているビジターの使用言語)。
|4stat=optional-
|4type=string
|5=nocat
|5label=No category?
|5label-de=Keine Kategorie?
|5d-de=“nocat=1” überschreibt das Standardverhalten, das (auf der Kategorie-Seite „LangSwitch-Vorlage ohne Standardversion“) die falschen Verwendungen dieser Vorlage verfolgt, wenn keine der beiden Optionen „en=Text auf Englisch“ oder „default=Text standardmäßig“ mit einem nicht leeren Wert angegeben ist.
|5d-en=“nocat=1” will overwrite the default behavior which tracks (in the “LangSwitch template without default version” category page) the incorrect uses of this template, where none of the two options “en=text in English” or “default=text by default” is specified with a non-empty value.
|5d-fr=« nocat=1 » permet d’empêcher le comportement par défaut qui trace (dans la page de catégorie « LangSwitch template without default version ») les usages incorrects de modèle, où aucune des deux options « en=texte en anglais » ou « default=texte par défaut » n’est spécifiée avec une valeur non vide.
|5d-ja=言語オプションに「en」や「default」オプションがないページには自動的にカテゴリCategory:LangSwitch template without default versionに追加され、「nocat=1」はデフォルト動作を上書きします。
|5stat=optional-
|5type=string
|example=
|usage-notes={{LangSwitch
|de='''Warning:''' Diese Vorlage '''SOLLTE NICHT''' außerhalb von Software-Interface verwendet werden. Sie '''SOLLTE'' zum Beispiel '''NICHT''' dazu benutzt werden, mehrsprachige Beschreibungen von Medien, Kategorien oder so weiter zu verwalten.
|en='''Warning:''' This template '''SHOULD NOT''' be used out of software interface purpose. For example it '''SHOULD NOT''' be used to manage multilingual description of the subject of a media or a category or whatsoever.
|fr='''Attention:''' Ce modèle '''NE DEVRAIT PAS''' être utilisé en dehors de la traduction de l'interface logicielle. Par exemple il ne '''DEVRAIT PAS''' être utilisé pour gérer les descriptions multilingues du sujet d'un média ou d'une catégorie.
}}
|seealso=
* {{Tl|Autotranslate}} for template internationalization (i18n) mechanism for templates that use ''named'' parameters
* {{Tl|Fallback}} and {{Tl|SuperFallback}}, based on {{Tl|GetFallback}} and {{Tl|GetFallback2}})
* {{Tl|Multilingual link}}
* [[:Category:Internationalization templates using LangSwitch]]
* {{Tl|Multilingual description}}, not using LangSwitch or any fallbacks, but generating vertical lists of translated texts or arbitrary length (without any English or default language requirement) in separate paragraphs; the rendered list is collapsible by a language selection menu at top of the rendered page (it is collapsed by default to show only the user's preferred or selected language, if it matches exactly).
* {{Tl|Translation table}}, not using LangSwitch or any fallbacks, but generating horizontal lists of translations (without any English or default language requirement); the rendered list is statically displaying ''all'' the provided languages, and this template is intended for translating just one term or short expression (otherwise the previous template should be used).
|setscats=[[:Category:Internationalization templates using LangSwitch]]
|type=
|namespace=
|usergroup=all
|i18n-method=-
|i18n-desc={{I18n templates}}
|print=multi
|relieson=[[Module:LangSwitch]]
|useTemplateData=only
}}
== Examples ==
=== Without a default option ===
Here are a few examples showing template behavior for three languages: English, Italian and Corsican (which defaults to Italian if Corsican text is not available):
{|class="wikitable"
|-
!scope="col"| Test
!scope="col"| Code
!scope="col"| lang=en
!scope="col"| lang=it
!scope="col"| lang=co
|-
| No en; default
| {{Tlx|LangSwitch{{{sandbox|}}}|it{{=}}Italian|default{{=}}default}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|default=default|lang=en}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|default=default|lang=it}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|default=default|lang=co}}
|-
| No en; no default
| {{Tlx|LangSwitch{{{sandbox|}}}|it{{=}}Italian|co{{=}}Corsu}}
| {{LangSwitch{{{sandbox|}}}|it=Italian|co=Corsu|lang=en|nocat=1}}<ref name="c">would add [[:Category:LangSwitch template without default version]]</ref>
| {{LangSwitch{{{sandbox|}}}|it=Italian|co=Corsu|lang=it|nocat=1}}<ref name="c"/>
| {{LangSwitch{{{sandbox|}}}|it=Italian|co=Corsu|lang=co|nocat=1}}<ref name="c"/>
|-
| en; default
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu|default{{=}}default}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=en}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=co}}
|-
| en; no default
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|lang=en}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|lang=co}}
|-
| en; skip default
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu|default{{=}}~}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=~|lang=en}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=~|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=~|lang=co}}
|-
| en; empty default
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu|default{{=}}}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=|lang=en}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=|lang=co}}
|-
| Skip en; default
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}~|it{{=}}Italian|default{{=}}default}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|default=default|lang=en}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|default=default|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|default=default|lang=co}}
|-
| Skip en; no default
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}~|it{{=}}Italian}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|lang=en}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=~|it=Italian|lang=co}}
|-
| Empty en; no default
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}|it{{=}}Italian}}
| {{LangSwitch{{{sandbox|}}}|en=|it=Italian|lang=en}}<ref name="c"/>
| {{LangSwitch{{{sandbox|}}}|en=|it=Italian|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=|it=Italian|lang=co}}<ref name="c"/>
|-
| en; default; skip it
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|it{{=}}~|co{{=}}Corsu|default{{=}}default}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|default=default|lang=en}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|default=default|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|default=default|lang=co}}
|-
| en; default; empty it
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|it{{=}}|co{{=}}Corsu|default{{=}}default}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=|co=Corsu|default=default|lang=en}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=|co=Corsu|default=default|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=|co=Corsu|default=default|lang=co}}
|-
| en; no default; skip it
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|it{{=}}~|co{{=}}Corsu}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|lang=en}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|lang=it}}
| {{LangSwitch{{{sandbox|}}}|en=English|it=~|co=Corsu|lang=co}}
|-
| Forced "lang=co"
| {{Tlx|LangSwitch{{{sandbox|}}}|en{{=}}English|co{{=}}Corsu|default{{=}}default|lang{{=}}co}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=co}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=co}}
| {{LangSwitch{{{sandbox|}}}|en=English|co=Corsu|default=default|lang=co}}
|}
{{LangSwitch
|en=<nowiki />
=== Default option ===
The default option is intended for providing more language independent option. For example:
|de=<nowiki />
=== Standardoption ===
Die Standardoption ist dafür gedacht, mehr sprachunabhängige Optionen zu bieten. Zum Beispiel:}}
<syntaxhighlight lang="wikitext" copy>
{{LangSwitch{{{sandbox|}}}
|de={{Wd|Warschau}}
|en={{W|Warsaw}}
|fr={{Wf|Varsovie}}
|ja={{W日|ワルシャワ}}
|pl={{WP|Warszawa}}
|ru={{Wr|Варшава}}
|default=[[d:Q270]]
}}
</syntaxhighlight>
{{LangSwitch
|en=provides a link to Wikipedia articles in case one of the languages provided matches user's language but will link to Commons gallery page ([[Warsaw]]) if any other language is used.
The expression <code><nowiki>{{W|Q270||d}}</nowiki></code> is equivalent to the shorter <code><nowiki>[[d:Q270]]</nowiki></code> (it just does not show the “d:”).
|de=bietet einen Link zu Wikipedia-Artikeln, falls eine der angebotenen Sprachen mit der Sprache des Benutzers übereinstimmt, verlinkt aber auf die Commons-Galerie-Seite ([[Warsaw]]), wenn eine andere Sprache verwendet wird.
Der Ausdruck <code><nowiki>{{W|Q270||d}}</nowiki></code> ist gleichbedeutend mit dem kürzeren <code><nowiki>[[d:Q270]]</nowiki></code> (nur das „d:” wird nicht angezeigt).
}}
=== Combination of multiple languages in the same option ===
“<code><nowiki>{{LangSwitch |de=Grün |es/it/pt=Verde |fr=Vert |en=Green |lang={{{lang|{{int:lang}}}}} }}</nowiki></code>” gives “{{LangSwitch |de=Grün |es/it/pt=Verde |fr=Vert |en=Green |lang={{{lang|{{int:lang}}}}} }}” for the language with code <kbd>{{{lang|{{int:lang}}}}}</kbd>.
Note that several language codes (separated by <code>/</code>) are combined in the same parameter name, when these languages are mapped to the same output text (this helps simplifying usages).
However this combination still does not work correctly for the language code <code>en</code> if there’s no parameter <code>default=</code> or <code>en=</code> specified separately (when this occurs, this template still returns a usage error message<ref name="c"/>).
=== Returning empty texts ===
* “<code><nowiki>red{{LangSwitch |en=~ |default=&#32;({{I18n/red}}) }}</nowiki></code>”,
* “<code><nowiki>bleu{{LangSwitch |fr=~ |default=&#32;({{I18n/blue}}) }}</nowiki></code>”, and
* “<code><nowiki>orange{{LangSwitch |en/fr=~ |default=&#32;({{I18n/orange}}) }}</nowiki></code>”
are respectively and conditionally appending parenthesized translations of
* the standard English term “red” in (when the current user language is ''not'' standard English, or simple English, or any language where standard English is a predefined fallback),
* the standard French term “bleu” (when the current user language is ''not'' standard French, or Cajun French, or any language where standard French is a predefined fallback), and
* the standard English or French term “orange” (when the current user language is ''not'' standard French or English, or any language where standard French or English is a predefined fallback):
{|class="wikitable"
|-
|style="background:#A00;color:#FFF"| red{{LangSwitch |en=~ |default= ({{I18n/red}}) }}
|style="background:#00A;color:#FFF"| bleu{{LangSwitch |fr=~ |default= ({{I18n/blue}}) }}
|style="background:#FA0;color:#FFF"| orange{{LangSwitch |fr=~ |default= ({{I18n/blue}}) }}
|}
== Notes ==
<references/>
<includeonly>
[[Category:Internationalization templates]]
</includeonly>
gwyk6nlmddnvy2m12ch9ylj2d97ox3h
Template:Heavily used template
10
15869
74663
2026-09-10T15:54:32Z
B722N
6898
created template
74663
wikitext
text/x-wiki
<!--
-->{{#ifeq:{{NAMESPACE}}|Module<!--
-->|{{error|This template is being used in the wrong namespace. Use {{tl|Heavily used module}} instead!}}<!--
-->|<!--
-->{{#invoke:Autotranslate|autotranslate<!--
-->|1 = {{{1|Template talk:{{#titleparts:{{PAGENAME}}|1|1}}}}}<!--
-->|2 = {{#if:{{{2|}}}|{{{2|}}}|{{SUBJECTSPACE}}:{{BASEPAGENAME}}}}<!--
-->|edit=<!--
-->{{#if:{{{edit|}}}<!--
-->|: [''{{Edit-int|{{{2|{{SUBJECTSPACE}}:{{BASEPAGENAME}}}}}/sandbox}}'']<!--
-->}}<!--
-->|very={{{3|}}}<!--
-->|base=Heavily used template<!--
-->}}<!--
-->}}<includeonly>{{#ifeq:{{SUBJECTPAGENAME}}|{{SUBJECTSPACE}}:{{BASEPAGENAME}}<!--
-->|{{#if:{{{3|}}}|[[Category:Very heavily used templates| ]]|[[Category:Heavily used templates]]}}}}</includeonly><noinclude>
{{documentation}}
</noinclude>
dj1tjkrpisagz8khk0e0bwfkxb6qyvy
Template:Heavily used template/doc
10
15870
74664
2026-09-10T15:54:59Z
B722N
6898
created template
74664
wikitext
text/x-wiki
<noinclude>{{high-use|3=+}}<!-- 350,000+ transclusions in 2025! --></noinclude>{{TemplateBox
|1=1
|1label-en=talk page
|1d-en=The full name of a template talk page, e.g. “Template talk:Xyz”. <!--
When this parameter is not specified, the name of the page (up to the first slash “/”) will be used. -->
|1def=
|1type=wiki-page-name
|1stat=optional-
|2=2
|2label-en=sandbox page
|2d-en=The full name of a template sandbox page. <!--
When this parameter is not specified, the name of the page (up to the first slash “/”) will be used. -->
|2def=
|2type=wiki-page-name
|2stat=optional-
|3=3
|3label-en=very heavily
|3d-en=any value when it is '''very''' heavily used, e.g. <nowiki>{{Heavily used template|3=✔}}</nowiki>
|3def=
|3type=string
|3stat=optional-
|4=edit
|4label-en=editparm
|4d-en=creates a link for editing, when any value, e.g. <nowiki>{{Heavily used template|edit=✔}}</nowiki>
|4def=
|4type=string
|4stat=optional-
|name=Heavily used template
|desc-en=This template marks all templates that are heavily used and should only be edited if needed.
|desc-it=Questo template marca tutti i template che sono ampiamente usati e dovrebbero essere modificati solo se necessario.
{{Mbox|type=serious|textstyle=text-align:center;|text=Don't use this template ''directly'' <code><nowiki><noinclude></nowiki></code> within the template code !<br>'''Use this template''' <code><nowiki><includeonly></nowiki></code> '''by the template documentation only'''.}}
|namespace=template
|usergroup=admin
|usage-notes={{mbox|style=width:auto; margin:0 10%;|type=delete|image=|text=This template is intended to be placed inside an '''{{tag|includeonly|o}} section ''' {{color|#bf3c2c|'''at the top of the documentation subpage'''}} of highly used templates:
<div style="margin-left:1em; margin-top:4px; margin-bottom:4px;"><code><nowiki><includeonly>{{Heavily used template}}</includeonly></nowiki></code></div>
Typically, this should be reserved for those with {{mono|{{FORMATNUM:{{#expr:ceil({{NUMBEROFPAGES:R}}/500)}}}}}} or more transclusions (on at least 1 in 500 pages<!-- , or very essential templates -->). See the [[Special:MostLinkedTemplates]].}}
|type=
|example=
|i18n-method=autotranslate
|i18n-desc=
|seealso=*{{t0|Use sandbox|-}}
*{{T0|Heavily used module|-}}
|setscats=* {{C|Heavily used templates}} (or {{C|Very heavily used templates}} if Parameter 3 is not empty)
|lines=one
|shorthand=High-risk
|relieson=
|useTemplateData=only
}}<includeonly>
[[Category:Template namespace templates]]
[[Category:Internationalised marker templates]]
[[Category:Template header templates]]
</includeonly>
hokyihcnuz2p0qy7ox4nwsh95qj47q3
Template:Infobox football club
10
15871
74665
2026-09-10T15:59:22Z
B722N
6898
created template
74665
wikitext
text/x-wiki
<includeonly>{{short description|{{#if:{{{American|}}}|Soccer|Football}} club|noreplace}}</includeonly>{{#invoke:Infobox|infoboxTemplate
| title = {{If empty |{{{title|}}}|{{{clubname|}}}|<includeonly>{{PAGENAMEBASE}}</includeonly>}}
| bodyclass = vcard
| child = {{{child|}}}
| subbox = {{{embed|}}}
| templatestyles = infobox/mobileviewfix.css
| titleclass = fn org
| labelstyle = white-space: nowrap; text-align:left
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}|sizedefault=frameless|upright={{{upright|}}}|alt={{{alt|}}}}}
| caption = {{{caption|}}}
| label1 = Full name
| data1 = {{{fullname|}}}
| label2 = Nickname{{pluralize from text|{{{nickname|}}}|plural=s}}
| data2 = {{{nickname|}}}
| class2 = nickname
| label3 = Short name
| data3 = {{{short name|{{{shortname|}}}}}}
| class3 = nickname
| label4 = Founded
| data4 = {{{founded|}}}
| label5 = Dissolved
| data5 = {{{dissolved|}}}
| label6 = {{#if:{{{stadium|}}}|Stadium|Ground}}
| data6 = {{#if:{{{stadium|}}}|{{{stadium|}}}|{{{ground|}}}}}
| class6 = label
| label7 = Capacity
| data7 = {{{capacity|}}}
| label8 = Coordinates
| data8 = {{#if:{{{coordinates|}}}|<span style="white-space:nowrap">{{{coordinates}}}</span>}}
| label9 = {{#if:{{{owntitle|}}}|{{{owntitle}}}|Owner{{pluralize from text|{{{owner|}}}|likely=(s)|plural=s}}}}
| data9 = {{{owner|}}}
| label10 = {{#if:{{{chrtitle|}}}|{{{chrtitle}}}|Chairman}}
| data10 = {{{chairman|}}}
| class10 = agent
| label11 = {{#if:{{{mgrtitle|}}}|{{{mgrtitle}}}|Manager}}
| data11 = {{{manager|}}}
| class11 = agent
| label12 = Coach
| data12 = {{{coach|}}}
| class12 = agent
| label13 = League
| data13 = {{{league|}}}
| label14 = {{{season|}}}
| data14 = {{{position|}}}
| label15 = Website
| data15 = {{{website|}}}
| data16 = {{#if:{{{pattern_la1|}}}{{{pattern_b1|}}}{{{pattern_ra1|}}}{{{pattern_sh1|}}}{{{pattern_so1|}}}{{{leftarm1|}}}{{{body1|}}}{{{rightarm1|}}}{{{shorts1|}}}{{{socks1|}}} {{{pattern_la2|}}}{{{pattern_b2|}}}{{{pattern_ra2|}}}{{{pattern_sh2|}}}{{{pattern_so2|}}}{{{leftarm2|}}}{{{body2|}}}{{{rightarm2|}}}{{{shorts2|}}}{{{socks2|}}}{{{pattern_la3|}}}{{{pattern_b3|}}}{{{pattern_ra3|}}}{{{pattern_sh3|}}}{{{pattern_so3|}}}{{{leftarm3|}}}{{{body3|}}}{{{rightarm3|}}}{{{shorts3|}}}{{{socks3|}}}
|<tr><td style="padding: 0; background: #fff; color:#000; text-align: center; border: 1px solid #D3D3D3;" colspan="2">
<table role="presentation" style="width:100%; text-align:center;">
<tr>
{{#if:{{{pattern_la1|}}}{{{pattern_b1|}}}{{{pattern_ra1|}}}{{{pattern_sh1|}}}{{{pattern_so1|}}}{{{leftarm1|}}}{{{body1|}}}{{{rightarm1|}}}{{{shorts1|}}}{{{socks1|}}}|
<td style="padding:0">{{Football kit
| alt = {{{kit_alt1|}}}
| pattern_la = {{{pattern_la1|}}}
| pattern_b = {{{pattern_b1|_unknown}}}
| pattern_ra = {{{pattern_ra1|}}}
| pattern_sh = {{{pattern_sh1|}}}
| pattern_so = {{{pattern_so1|}}}
| leftarm = {{{leftarm1|}}}
| body = {{{body1|}}}
| rightarm = {{{rightarm1|}}}
| shorts = {{{shorts1|}}}
| socks = {{{socks1|}}}
| title = {{#ifeq:{{{pattern_name1|Home}}}|Home|[[Kit (association football)|Home {{#if:{{{American|}}}|colors|colours}}]]|{{{pattern_name1|Home}}} [[Kit (association football)|{{#if:{{{American|}}}|colors|colours}}]]}}
}}</td>
}}{{#if:{{{pattern_la2|}}}{{{pattern_b2|}}}{{{pattern_ra2|}}}{{{pattern_sh2|}}}{{{pattern_so2|}}}{{{leftarm2|}}}{{{body2|}}}{{{rightarm2|}}}{{{shorts2|}}}{{{socks2|}}}|
<td style="padding:0">{{Football kit
| alt = {{{kit_alt2|}}}
| pattern_la = {{{pattern_la2|}}}
| pattern_b = {{{pattern_b2|_unknown}}}
| pattern_ra = {{{pattern_ra2|}}}
| pattern_sh = {{{pattern_sh2|}}}
| pattern_so = {{{pattern_so2|}}}
| leftarm = {{{leftarm2|}}}
| body = {{{body2|}}}
| rightarm = {{{rightarm2|}}}
| shorts = {{{shorts2|}}}
| socks = {{{socks2|}}}
| title = {{#ifeq:{{{pattern_name2|Away}}}|Away|[[Away colours|Away {{#if:{{{American|}}}|colors|colours}}]]|{{{pattern_name2|Away}}} {{#if:{{{American|}}}|colors|colours}}}}
}}</td>
}}{{#if:{{{pattern_la3|}}}{{{pattern_b3|}}}{{{pattern_ra3|}}}{{{pattern_sh3|}}}{{{pattern_so3|}}}{{{leftarm3|}}}{{{body3|}}}{{{rightarm3|}}}{{{shorts3|}}}{{{socks3|}}}|
<td style="padding:0">{{Football kit
| alt = {{{kit_alt3|}}}
| pattern_la = {{{pattern_la3|}}}
| pattern_b = {{{pattern_b3|_unknown}}}
| pattern_ra = {{{pattern_ra3|}}}
| pattern_sh = {{{pattern_sh3|}}}
| pattern_so = {{{pattern_so3|}}}
| leftarm = {{{leftarm3|}}}
| body = {{{body3|}}}
| rightarm = {{{rightarm3|}}}
| shorts = {{{shorts3|}}}
| socks = {{{socks3|}}}
| title = {{#ifeq:{{{pattern_name3|Third}}}|Third|[[Third jersey|Third {{#if:{{{American|}}}|colors|colours}}]]|{{{pattern_name3|Third}}} {{#if:{{{American|}}}|colors|colours}}}}
}}</td>
}}</tr>
</table></td></tr>}}
| belowclass = noprint
| below = {{#if:{{{current|}}}|[[File:Soccerball current event.svg|33px|link=|alt=]] ''[[{{{current}}}|Current season]]''}}
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox football club with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Infobox football club]] with unknown parameter "_VALUE_"|ignoreblank=y| alt | American | body1 | body2 | body3 | capacity | caption | chairman | chrtitle | clubname | coach | coordinates | current | dissolved | founded | fullname | ground | image | image_size | kit_alt1 | kit_alt2 | kit_alt3 | league | leftarm1 | leftarm2 | leftarm3 | manager | mgrtitle | nickname | owner | owntitle | pattern_b1 | pattern_b2 | pattern_b3 | pattern_la1 | pattern_la2 | pattern_la3 | pattern_name1 | pattern_name2 | pattern_name3 | pattern_ra1 | pattern_ra2 | pattern_ra3 | pattern_sh1 | pattern_sh2 | pattern_sh3 | pattern_so1 | pattern_so2 | pattern_so3 | position | rightarm1 | rightarm2 | rightarm3 | season | shortname | short name | shorts1 | shorts2 | shorts3 | socks1 | socks2 | socks3 | stadium | title | upright | website
}}{{#if:{{{American|}}}|[[Category:football team templates which use American parameter]]
}}{{#if:{{{short name|}}}|[[Category:football team templates which use short name parameter]]
}}<noinclude>
{{documentation}}
<!-- please place categories on the documentation page; language links go to Wikidata, thank you! -->
</noinclude>
iitv2qzvwz8c0rlmagxeq6hga3l0wcd
Template:Infobox/mobileviewfix.css
10
15872
74666
2026-09-10T16:00:08Z
B722N
6898
created template
74666
sanitized-css
text/css
/* {{pp-template}}
The mobile skin (Minerva) generally inject display: block property to tables to make them scrollable on your phone screen. This could give benefits for large contents, but may also caused some smaller tables shortened and shift to left, even if they are set width:100% property. This is happened in numerous infoboxes.
*/
body.skin-minerva .infobox table {
display: table;
}
body.skin-minerva .infobox caption {
display: table-caption;
}
ezj541df0gm8311f9dvd0q9sigletku
Template:Infobox football club/doc
10
15873
74667
2026-09-10T16:01:02Z
B722N
6898
created template doc
74667
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{High-use}}
{{Auto short description}}
{{Lua|Module:Infobox|Module:InfoboxImage|Module:Check for unknown parameters}}
==Usage==
{{For|the available patterns|Template:Football kit/pattern list}}
{{Parameter names example | clubname <!-- or: title --> | image | image_size | upright | alt | caption | fullname | nickname | short name
| founded | dissolved | American= | ground <!-- or: stadium --> | capacity | coordinates
| owntitle | owner | chrtitle | chairman | mgrtitle | manager | coach | league | season | position | website
| kit_alt1 | pattern_la1= | pattern_b1= | pattern_ra1= | pattern_sh1= | pattern_so1= | leftarm1 | body1 | rightarm1 | shorts1 | socks1 | pattern_name1=
| kit_alt2 | pattern_la2= | pattern_b2= | pattern_ra2= | pattern_sh2= | pattern_so2= | leftarm2 | body2 | rightarm2 | shorts2 | socks2 | pattern_name2=
| kit_alt3 | pattern_la3= | pattern_b3= | pattern_ra3= | pattern_sh3= | pattern_so3= | leftarm3 | body3 | rightarm3 | shorts3 | socks3 | pattern_name3=
| current }}
<syntaxhighlight lang="wikitext" style="overflow:auto; white-space:pre;">
{{Infobox football club
| clubname = <!-- or: title -->
| image =
| image_size =
| upright =
| alt =
| caption =
| fullname =
| nickname =
| short name =
| founded =
| dissolved =
| American =
| ground = <!-- or: stadium -->
| capacity =
| coordinates =
| owntitle = <!--optional, default: Owner -->
| owner =
| chrtitle = <!--optional, default: Chairman, set equal to President, Chairperson, Chair or any appropriate title -->
| chairman =
| mgrtitle = <!--optional, default: Manager -->
| manager =
| coach =
| league =
| season =
| position =
| website =
| kit_alt1 =
| pattern_la1 =
| pattern_b1 =
| pattern_ra1 =
| pattern_sh1 =
| pattern_so1 =
| leftarm1 =
| body1 =
| rightarm1 =
| shorts1 =
| socks1 =
| pattern_name1 = <!--optional, default: Home colours -->
| kit_alt2 =
| pattern_la2 =
| pattern_b2 =
| pattern_ra2 =
| pattern_sh2 =
| pattern_so2 =
| leftarm2 =
| body2 =
| rightarm2 =
| shorts2 =
| socks2 =
| pattern_name2 = <!--optional, default: Away colours -->
| kit_alt3 =
| pattern_la3 =
| pattern_b3 =
| pattern_ra3 =
| pattern_sh3 =
| pattern_so3 =
| leftarm3 =
| body3 =
| rightarm3 =
| shorts3 =
| socks3 =
| pattern_name3 = <!--optional, default: Third colours -->
| current =
}}
</syntaxhighlight>
==Example==
{{Infobox football club
| clubname = Infobox Rovers
| image = Football.svg
| upright = 0.9
| caption = Infobox Rovers Football Club Logo
| fullname = Infobox Rovers Football Club
| nickname = Templates
| founded = 2001 as Infobox Rovers, 2004 as Infobox Rovers Football Club, 2020 as Infobox Rovers Jan Mayen Kluben Voetbalen
| dissolved = 2019
| ground = [[Example Stadium]], [[Olonkinbyen]]
| capacity = 83,500
| coordinates = {{coord|70|55|19|N|8|42|54|W|display=inline<!-- omit ,title for this example-->}}
| chairman = [[Jimmy Wales]]
| mgrtitle = Head coach
| manager = Templator Infoboxer
| league = Wikileague Division 1
| season = 2018-19
| position = Wikileague Division 1, 1st
| website = http://en.wikipedia.org/
| kit_alt1 = White jersey with gold accents and sleeves and cornflower blue shorts
| pattern_la1 = _alb0810_2
| pattern_b1 = _alb0810_2
| pattern_ra1 = _alb0810_2
| leftarm1 = FFD700
| body1 = FFD700
| rightarm1 = FFD700
| shorts1 = 6495ED
| socks1 = 000000
| kit_alt2 = Black and white thin stripes with cornflower sleeves and socks and black shorts
| pattern_la2 = _fig11h
| pattern_b2 = _fig11h
| pattern_ra2 = _fig11h
| pattern_sh2 = _fig11h
| pattern_so2 = _fig11h
| leftarm2 = 6495ED
| body2 = 6495ED
| rightarm2 = 6495ED
| shorts2 = 6495ED
| socks2 = 6495ED
| kit_alt3 = Gold jersey with dark goldenrod sleeves, floral white shorts, gold socks
| pattern_la3 = _fig11h
| pattern_b3 = _fig11h
| pattern_ra3 = _fig11h
| pattern_sh3 = _fig11h
| pattern_so3 = _fig11h
| leftarm3 = B8860B
| body3 = FFD700
| rightarm3 = B8860B
| shorts3 = FFFAF0
| socks3 = FFD700
}}
<syntaxhighlight lang="wikitext" style="overflow:auto; white-space:pre;">
{{Infobox football club
| clubname = Infobox Rovers
| image = Football.svg
| upright = 0.9
| caption = Infobox Rovers Football Club logo
| fullname = Infobox Rovers Football Club
| nickname = Templates
| founded = 2001 as Infobox Rovers
| dissolved =
| ground = [[Example Stadium]], [[Olonkinbyen]]
| capacity = 83,500
| coordinates = {{coord|70|55|19|N|8|42|54|W|display=inline<!-- omit ,title for this example-->}}
| chairman = [[Jimmy Wales]]
| mgrtitle = Head coach
| manager = Templator Infoboxer
| league = Wikileague Annual
| season = 2013–14
| position = Wikileague Div 2, 1st
| website = http://en.wikipedia.org/
| kit_alt1 = White jersey with gold accents and sleeves and cornflower blue shorts
| pattern_la1 =
| pattern_b1 = _alb0810_2
| pattern_ra1 =
| leftarm1 = FFD700
| body1 = FFD700
| rightarm1 = FFD700
| shorts1 = 6495ED
| socks1 = 000000
| kit_alt2 = Black and white thin stripes with cornflower sleeves and socks and black shorts
| pattern_la2 =
| pattern_b2 = _fig11h
| pattern_ra2 =
| pattern_sh2 = _fig11h
| pattern_so2 =
| leftarm2 = 6495ED
| body2 = 6495ED
| rightarm2 = 6495ED
| shorts2 = 6495ED
| socks2 = 6495ED
| kit_alt3 = Gold jersey with dark goldenrod sleeves, floral white shorts, gold socks
| pattern_la3 =
| pattern_b3 =
| pattern_ra3 =
| pattern_sh3 =
| pattern_so3 =
| leftarm3 = B8860B
| body3 = FFD700
| rightarm3 = B8860B
| shorts3 = FFFAF0
| socks3 = FFD700
}}
</syntaxhighlight>
==Parameters==
All parameters are optional.
* '''fullname''' – The club's complete name.
* '''founded''' – The year the club was founded. Should not be wikilinked.
* '''clubname''' – The commonly-used name of the club.
* '''ground''' – The name of the club's home ground (use '''stadium''' to label as stadium for American clubs). The location of the ground may be included. Follow [[:WP:OVERLINK]] guidelines to avoid linking common locations or nations.
* '''capacity''' – The capacity of the club's home ground or stadium.
* '''coordinates''' – The co-ordinates of the club's home ground or stadium. Use the format <nowiki>{{coord|33|50|50|S|151|3|48|E|display=it}}</nowiki>
* '''image''' – The official badge/logo of the club. The "<code>|alt=''alt text''</code>" is for [[WP:ACCESSIBILITY]] for the visually impaired; see [[WP:ALT]].
* '''caption''' – Caption for image, if provided.
* '''nickname''' – The club's '''most common''' nickname. Extensive lists of nicknames can be discussed in the article itself and the author should use their judgement to select the most appropriate entry for this parameter.
* '''dissolved''' – The year the club was dissolved. Should not be wikilinked.
* '''owntitle''' – The job title of the owner of the club, e.g. "Owner"
* '''owner''' – The name of the club's owner. Wikilink only if an article already exists, or one is likely to be created.
* '''chrtitle''' – The job title of the chairman of the club, e.g. "Chairperson", "President", "Chair", the default is "Chairman"
* '''chairman''' – The name of the club's chairman. Wikilink only if an article already exists, or one is likely to be created.
* '''mgrtitle''' – The job title of the person in charge of first team affairs, e.g. "Manager", "Head Coach".
* '''manager''' – The name of the person in charge of first team affairs.
* '''league''' – The league in which the club currently plays.
* '''season''' – The last '''completed''' competitive league season (not the current season in progress). Wikilink is optional, e.g. <code><nowiki>[[2021–22 La Liga|2021–22]] </nowiki></code>
* '''position''' – The league and position to which '''season''' refers.
* '''current''' – The name of the Wikipedia article for the team's current season. Do not wikilink.
* '''website''' – The URL of the club's official website. Should not be linked.
* '''kit_alt1''' – Alt text for first kit; see [[WP:ALT]]. '''kit_alt2''' and '''kit_alt3''' are similar.
* '''American''' – Set to <code>y</code> for American spelling (color instead of colour).
For details on the football kit template syntax, see [[:Template:Football kit]].
==Microformat==
{{UF-hcard-org}}
== TemplateData ==
{{TemplateData header}}
<templatedata>
{
"params": {
"clubname": {
"label": "Clubname",
"type": "string",
"required": true,
"description": "The commonly-used name of the club"
},
"image": {
"label": "Image",
"type": "wiki-file-name",
"required": false,
"description": "The official badge/logo of the club"
},
"caption": {
"label": "Caption",
"type": "string",
"required": false,
"description": "Caption for image, if provided"
},
"fullname": {
"label": "Fullname",
"type": "string",
"required": false,
"description": "The club's complete name"
},
"nickname": {
"label": "Nickname",
"type": "string",
"required": false,
"description": "The club's most common nickname"
},
"founded": {
"label": "Founded",
"type": "line",
"required": false,
"description": "The year the club was founded"
},
"dissolved": {
"label": "Dissolved",
"type": "line",
"required": false,
"description": "The year the club was dissolved"
},
"ground": {
"label": "Ground",
"type": "string",
"required": false,
"description": "The name of the club's home ground"
},
"stadium": {
"label": "Stadium",
"type": "string",
"required": false,
"description": "The name of the club's home stadium"
},
"capacity": {
"label": "Capacity",
"type": "number",
"required": false,
"description": "The capacity of the club's home ground or stadium"
},
"coordinates": {
"label": "Coordinates",
"type": "string",
"required": false,
"description": "The co-ordinates of the club's home ground or stadium"
},
"owntitle": {
"label": "Owntitle",
"type": "string",
"required": false,
"description": "The job title of the owner of the club, e.g. \"Owner\""
},
"owner": {
"label": "Owner ",
"type": "string",
"required": false,
"description": "The name of the club's owner"
},
"chrtitle": {
"label": "Chrtitle",
"type": "string",
"required": false,
"description": "The job title of the chairman of the club, e.g. \"Chairperson\", \"President\", \"Chair\"",
"default": "Chairman"
},
"chairman": {
"label": "Chairman",
"type": "string",
"required": false,
"description": "The name of the club's chairman"
},
"mgrtitle": {
"label": "Mgrtitle",
"type": "string",
"required": false,
"description": "The job title of the person in charge of first team affairs, e.g. \"Manager\", \"Head Coach\"."
},
"manager": {
"label": "Manager",
"type": "string",
"required": false,
"description": "The name of the person in charge of first team affairs."
},
"league": {
"label": "League",
"type": "string",
"required": false,
"description": "The league in which the club currently plays"
},
"season": {
"label": "Season",
"type": "number",
"required": false,
"description": "The last completed competitive league season. i.e Not the current season."
},
"current": {
"label": "Current",
"type": "number",
"required": false,
"description": "The current season being played."
},
"position": {
"label": "Position",
"type": "number",
"required": false,
"description": "The league and position to which season refers."
},
"website": {
"label": "Website",
"type": "url",
"required": false,
"description": "Official website only. Unofficial websites should be placed under ==External links== in the body of the article. Use {{URL}}. Do not include the www. part unless the server requires it. Use camel case capitalization to make multiword domain names easier to read.",
"example": "{{URL|example.com}}"
},
"kit_alt1": {
"label": "Kit Alt1",
"type": "string",
"required": false,
"description": " Alt text for first kit"
},
"kit_alt2": {
"label": "Kit Alt2",
"type": "string",
"required": false,
"description": "Alt text for second kit"
},
"kit_alt3": {
"label": "Kit Alt3",
"type": "string",
"required": false,
"description": "Alt text for third kit"
},
"pattern_la1": {
"label": "Pattern La1",
"type": "string",
"required": false,
"description": "pattern modifier for left arm"
},
"pattern_la2": {
"label": "Pattern La2",
"type": "string",
"required": false,
"description": "pattern modifier for left arm"
},
"pattern_la3": {
"label": "Pattern La3",
"type": "string",
"required": false,
"description": "pattern modifier for left arm"
},
"pattern_b1": {
"label": "Pattern B1",
"type": "string",
"required": false,
"description": "pattern modifier for body"
},
"pattern_b2": {
"label": "Pattern B2",
"type": "string",
"required": false,
"description": "pattern modifier for body"
},
"pattern_b3": {
"label": "Pattern B3",
"type": "string",
"required": false,
"description": "pattern modifier for body"
},
"pattern_ra1": {
"label": "Pattern Ra1",
"type": "string",
"required": false,
"description": "pattern modifier for right arm"
},
"pattern_ra2": {
"label": "Pattern Ra2",
"type": "string",
"required": false,
"description": "pattern modifier for right arm"
},
"pattern_ra3": {
"label": "Pattern Ra3",
"type": "string",
"required": false,
"description": "pattern modifier for right arm"
},
"pattern_sh1": {
"label": "Pattern Sh1",
"type": "string",
"required": false,
"description": "pattern modifier for shorts"
},
"pattern_sh2": {
"label": "Pattern Sh2",
"type": "string",
"required": false,
"description": "pattern modifier for shorts"
},
"pattern_sh3": {
"label": "Pattern Sh3",
"type": "string",
"required": false,
"description": "pattern modifier for shorts"
},
"pattern_so1": {
"label": "Pattern So1",
"type": "string",
"required": false,
"description": "pattern modifier for socks"
},
"pattern_so2": {
"label": "Pattern So2",
"type": "string",
"required": false,
"description": "pattern modifier for socks"
},
"pattern_so3": {
"label": "Pattern So3",
"type": "string",
"required": false,
"description": "pattern modifier for socks"
},
"leftarm1": {
"label": "Leftarm1",
"type": "string",
"required": false,
"description": "color modifier for left arm"
},
"leftarm2": {
"label": "Leftarm2",
"type": "string",
"required": false,
"description": "color modifier for left arm"
},
"leftarm3": {
"label": "Leftarm3",
"type": "string",
"required": false,
"description": "color modifier for left arm"
},
"body1": {
"label": "Body1",
"type": "string",
"required": false,
"description": "color modifier for body"
},
"body2": {
"label": "Body2",
"type": "string",
"required": false,
"description": "color modifier for body"
},
"body3": {
"label": "Body3",
"type": "string",
"required": false,
"description": "color modifier for body"
},
"rightarm1": {
"label": "Rightarm1",
"type": "string",
"required": false,
"description": "color modifier for right arm"
},
"rightarm2": {
"label": "Rightarm2",
"type": "string",
"required": false,
"description": "color modifier for right arm"
},
"rightarm3": {
"label": "Rightarm3",
"type": "string",
"required": false,
"description": "color modifier for right arm"
},
"shorts1": {
"label": "Shorts1",
"type": "string",
"required": false,
"description": "color modifier for shorts"
},
"shorts2": {
"label": "Shorts2",
"type": "string",
"required": false,
"description": "color modifier for shorts"
},
"shorts3": {
"label": "Shorts3",
"type": "string",
"required": false,
"description": "color modifier for shorts"
},
"socks1": {
"label": "Socks1",
"type": "string",
"required": false,
"description": "color modifier for socks"
},
"socks2": {
"label": "Socks2",
"type": "string",
"required": false,
"description": "color modifier for socks"
},
"socks3": {
"label": "Socks3",
"type": "string",
"required": false,
"description": "color modifier for socks"
},
"American": {},
"title": {},
"child": {},
"embed": {},
"image_size": {},
"upright": {},
"alt": {},
"short name": {},
"coach": {},
"pattern_name1": {},
"pattern_name2": {},
"pattern_name3": {}
},
"format": "block",
"paramOrder": [
"clubname",
"image",
"caption",
"fullname",
"nickname",
"founded",
"dissolved",
"ground",
"stadium",
"capacity",
"coordinates",
"owntitle",
"owner",
"chrtitle",
"chairman",
"mgrtitle",
"manager",
"league",
"season",
"current",
"position",
"website",
"kit_alt1",
"kit_alt2",
"kit_alt3",
"pattern_la1",
"pattern_la2",
"pattern_la3",
"pattern_b1",
"pattern_b2",
"pattern_b3",
"pattern_ra1",
"pattern_ra2",
"pattern_ra3",
"pattern_sh1",
"pattern_sh2",
"pattern_sh3",
"pattern_so1",
"pattern_so2",
"pattern_so3",
"leftarm1",
"leftarm2",
"leftarm3",
"body1",
"body2",
"body3",
"rightarm1",
"rightarm2",
"rightarm3",
"shorts1",
"shorts2",
"shorts3",
"socks1",
"socks2",
"socks3",
"American",
"title",
"child",
"embed",
"image_size",
"upright",
"alt",
"short name",
"coach",
"pattern_name1",
"pattern_name2",
"pattern_name3"
]
}
</templatedata>
==Tracking categories==
Hidden tracking/maintenance categories which may be added to pages using this template:
* {{clc|Football team templates which use American parameter}}
* {{clc|Football team templates which use short name parameter}}
* {{clc|Pages using infobox football club with unknown parameters}}
==See also==
* [[Template:Infobox football tournament]]
* [[Template:Football kit]]
<includeonly>{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Association football infobox templates|Football club]]
[[Category:Templates that add a tracking category]]
}}</includeonly>
7tw3jpqtyw57q37e294wak04hk3vfm3
Template:Football kit/pattern list
10
15874
74668
2026-09-10T16:03:01Z
B722N
6898
created template
74668
wikitext
text/x-wiki
<noinclude>__TOC__
{{football kit template}}</noinclude>
{{Commons category|Association football kit templates}}
For the most complete listing of templates available for use, see the [[commons:Category:Association_football_kit_templates|'''Association football kit templates''']] category on Wikimedia Commons.
<div id="file"></div>
==Stripes==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_frankfurthome}}
{{Football kit/pattern|body|_3blackstripes}}
{{Football kit/pattern|body|_frankfurt1617H}}
{{Football kit/pattern|body|_blackstripeonleft}}
{{Football kit/pattern|body|_blackstripeonright}}
{{Football kit/pattern|body|_blackstripes}}
{{Football kit/pattern|body|_blackstripes2}}
{{Football kit/pattern|body|_blackstripes3}}
{{Football kit/pattern|body|_blackstripes4}}
{{Football kit/pattern|body|_blackstripes4_2}}
{{Football kit/pattern|body|_blackstripes4gradient}}
{{Football kit/pattern|body|_blackstripes5}}
{{Football kit/pattern|body|_blackstripes6}}
{{Football kit/pattern|body|_blackstripescollar}}
{{Football kit/pattern|body|_blackstripes_thin2}}
{{Football kit/pattern|body|_blackstripes_thin4}}
{{Football kit/pattern|body|_blackstripesthintothick}}
{{Football kit/pattern|body|_portadelaide_bars}}
{{Football kit/pattern|body|_portadelaide_heritage}}
{{Football kit/pattern|body|_portadelaide_heritage2}}
{{Football kit/pattern|body|_blackstripsandshoulders}}
{{Football kit/pattern|body|_black_thin_stripes}}
{{Football kit/pattern|body|_blackvertical}}
{{Football kit/pattern|body|_thinblackstripes}}
{{Football kit/pattern|body|_stripesonblack2}}
{{Football kit/pattern|body|_nikebarca2blackstripes}}
{{Football kit/pattern|body|_thinleftstripeonblack}}
{{Football kit/pattern|body|_thinstripesonblack}}
{{Football kit/pattern|body|_threebluestripes}}
{{Football kit/pattern|body|_black_teal}}
{{Football kit/pattern|body|_bluedoubleline}}
{{Football kit/pattern|body|_bluestripes}}
{{Football kit/pattern|body|_bluestripes2}}
{{Football kit/pattern|body|_bluestripes4}}
{{Football kit/pattern|body|_blue_stripes_triangle}}
{{Football kit/pattern|body|_bluevertical}}
{{Football kit/pattern|body|_color_vertical}}
{{Football kit/pattern|body|_3bluestripes}}
{{Football kit/pattern|body|_3bluestripes2}}
{{Football kit/pattern|body|_thindarkbluestripes}}
{{Football kit/pattern|body|_thinbluestripes}}
{{Football kit/pattern|body|_thinbluestripes2}}
{{Football kit/pattern|body|_thinskystripes}}
{{Football kit/pattern|body|_navystripes}}
{{Football kit/pattern|body|_navystripesupper}}
{{Football kit/pattern|body|_thicknavystripes}}
{{Football kit/pattern|body|_3navystripes}}
{{Football kit/pattern|body|_navyvertical}}
{{Football kit/pattern|body|_thinnavystripes}}
{{Football kit/pattern|body|_lightbluestripes}}
{{Football kit/pattern|body|_lightbluestripes2}}
{{Football kit/pattern|body|_lightblue_vertical}}
{{Football kit/pattern|body|_lightbluewhitevertical}}
{{Football kit/pattern|body|_bluewhitestripes_centre}}
{{Football kit/pattern|body|_blueyellowvertical}}
{{Football kit/pattern|body|_darkbluewhitevertical}}
{{Football kit/pattern|body|_black_blue_broken}}
{{Football kit/pattern|body|_barca0809away}}
{{Football kit/pattern|body|_cyansquares_stripe}}
{{Football kit/pattern|body|_brown_stripes_copia}}
{{Football kit/pattern|body|_brownstripes_half}}
{{Football kit/pattern|body|_carminstripes}}
{{Football kit/pattern|body|_thinclaretstripes}}
{{Football kit/pattern|body|_claretstripeonright}}
{{Football kit/pattern|body|_claretverticalcenter}}
{{Football kit/pattern|body|_goldvertical}}
{{Football kit/pattern|body|_goldenvertical}}
{{Football kit/pattern|body|_amber_stripes}}
{{Football kit/pattern|body|_goldstripecollar}}
{{Football kit/pattern|body|_goldstripes_thin}}
{{Football kit/pattern|body|_goldstripes_thin2}}
{{Football kit/pattern|body|_thingoldstripes}}
{{Football kit/pattern|body|_3stripes upperongold}}
{{Football kit/pattern|body|_greenstripes}}
{{Football kit/pattern|body|_greenstripes1}}
{{Football kit/pattern|body|_greenstripes2}}
{{Football kit/pattern|body|_darkgreenstripes}}
{{Football kit/pattern|body|_green_stripes_green_sholders}}
{{Football kit/pattern|body|_thingreenstripes}}
{{Football kit/pattern|body|_thingreenstripes2}}
{{Football kit/pattern|body|_thingreenstripes_copy}}
{{Football kit/pattern|body|_greenvertical}}
{{Football kit/pattern|body|_thingreenandbluestripes}}
{{Football kit/pattern|body|_italiangreenwhitevertical}}
{{Football kit/pattern|body|_leftstripeonwhite}}
{{Football kit/pattern|body|_lomasfutbol}}
{{Football kit/pattern|body|_greystripes}}
{{Football kit/pattern|body|_greystripes3}}
{{Football kit/pattern|body|_thingreystripes}}
{{Football kit/pattern|body|_maroon_stripes}}
{{Football kit/pattern|body|_2maroonstripes}}
{{Football kit/pattern|body|_puma08whitey}}
{{Football kit/pattern|body|_thinpurplestripes}}
{{Football kit/pattern|body|_red black 2}}
{{Football kit/pattern|body|_red_black_3}}
{{Football kit/pattern|body|_red_black_whitestripes}}
{{Football kit/pattern|body|_redblue_vertical}}
{{Football kit/pattern|body|_redblue_vertical2}}
{{Football kit/pattern|body|_redbluevertical}}
{{Football kit/pattern|body|_blueredvertical}}
{{Football kit/pattern|body|_2redbluemiddlestripes}}
{{Football kit/pattern|body|_redgradiantstripes}}
{{Football kit/pattern|body|_redsquares_stripe}}
{{Football kit/pattern|body|_red_stripes}}
{{Football kit/pattern|body|_3stripes upperonred}}
{{Football kit/pattern|body|_redstripes}}
{{Football kit/pattern|body|_redstripes2}}
{{Football kit/pattern|body|_red_stripes_bologna}}
{{Football kit/pattern|body|_red_stripes_red_sholders}}
{{Football kit/pattern|body|_redvertical}}
{{Football kit/pattern|body|_redt}}
{{Football kit/pattern|body|_crimsonvertical}}
{{Football kit/pattern|body|_3redstripes}}
{{Football kit/pattern|body|_3redstripes2}}
{{Football kit/pattern|body|_3redstripes3}}
{{Football kit/pattern|body|_2redstripesonsides}}
{{Football kit/pattern|body|_redpinstripes}}
{{Football kit/pattern|body|_thinredstripes}}
{{Football kit/pattern|body|_thinredvertical}}
{{Football kit/pattern|body|_aab}}
{{Football kit/pattern|body|_agde}}
{{Football kit/pattern|body|_frankfurtaway}}
{{Football kit/pattern|body|_thinredblackstripes}}
{{Football kit/pattern|body|_red_gold}}
{{Football kit/pattern|body|_redwhitestripes_centre}}
{{Football kit/pattern|body|_redwhitestripetrim}}
{{Football kit/pattern|body|_redwhitevertical}}
{{Football kit/pattern|body|_redwhitevertical2}}
{{Football kit/pattern|body|_redwhiteverticalcentral}}
{{Football kit/pattern|body|_redyellowvertical}}
{{Football kit/pattern|body|_rightstripeonwhite}}
{{Football kit/pattern|body|_samredstripes}}
{{Football kit/pattern|body|_shouldersstripe}}
{{Football kit/pattern|body|_stripesandshouldersonwhite}}
{{Football kit/pattern|body|_stripesonwhite2}}
{{Football kit/pattern|body|_whitestripes4}}
{{Football kit/pattern|body|_thickwhitestripes}}
{{Football kit/pattern|body|_thickwhitestripesandbar}}
{{Football kit/pattern|body|_thickwhitestripesb}}
{{Football kit/pattern|body|_thinleftstripeonwhite}}
{{Football kit/pattern|body|_thinstripesonwhite}}
{{Football kit/pattern|body|_thinwhitestripes}}
{{Football kit/pattern|body|_thinwhitestripes2}}
{{Football kit/pattern|body|_twohorizontalwhitestripes2}}
{{Football kit/pattern|body|_twowhitestripes}}
{{Football kit/pattern|body|_white_blackstripes}}
{{Football kit/pattern|body|_whitegoldredstripes}}
{{Football kit/pattern|body|_whitestripeonright}}
{{Football kit/pattern|body|_whitestripes}}
{{Football kit/pattern|body|_whitestripes3}}
{{Football kit/pattern|body|_whitestripes4}}
{{Football kit/pattern|body|_whitestripes_curve_right}}
{{Football kit/pattern|body|_narrowwhitestripes}}
{{Football kit/pattern|body|_whitevertical}}
{{Football kit/pattern|body|_whitebluevertical}}
{{Football kit/pattern|body|_3stripesonwhite}}
{{Football kit/pattern|body|_3stripes upperonwhite}}
{{Football kit/pattern|body|_3whitestripes}}
{{Football kit/pattern|body|_4thinstripesonwhite}}
{{Football kit/pattern|body|_yellow_stripes}}
{{Football kit/pattern|body|_6thinyellowstripes}}
{{Football kit/pattern|body|_yellowvertical}}
{{Football kit/pattern|body|_centerstripe_onwhite}}
{{clear}}
==Hoops==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_blackbars}}
{{Football kit/pattern|body|_black chest}}
{{Football kit/pattern|body|_blackhoophigh}}
{{Football kit/pattern|body|_blackhoops}}
{{Football kit/pattern|body|_black_green_hoops}}
{{Football kit/pattern|body|_black_white_hoops}}
{{Football kit/pattern|body|_hoops_2_black}}
{{Football kit/pattern|body|_blackhorizontal}}
{{Football kit/pattern|body|_blackhorizontal_3}}
{{Football kit/pattern|body|_blackhorizontal_3b}}
{{Football kit/pattern|body|_thin_black_hoops}}
{{Football kit/pattern|body|_thin_black_hoops2}}
{{Football kit/pattern|body|_thin_blackhoops}}
{{Football kit/pattern|body|_black_blue_hoops}}
{{Football kit/pattern|body|_thinblackhoops}}
{{Football kit/pattern|body|_thickblackthinwhitehoops}}
{{Football kit/pattern|body|_blackgold stripes}}
{{Football kit/pattern|body|_blackandredhorizontal}}
{{Football kit/pattern|body|_blackredcollarhorizontal}}
{{Football kit/pattern|body|_blackred stripes}}
{{Football kit/pattern|body|_black white horizontal}}
{{Football kit/pattern|body|_bluedarkbluehorizontal}}
{{Football kit/pattern|body|_black_hoops_white_pinstripe}}
{{Football kit/pattern|body|_bluehoophigh}}
{{Football kit/pattern|body|_bluehoops}}
{{Football kit/pattern|body|_bluehoops3}}
{{Football kit/pattern|body|_thinbluehoops}}
{{Football kit/pattern|body|_thin_bluehoops}}
{{Football kit/pattern|body|_bluehorizontal}}
{{Football kit/pattern|body|_blueshouldersandhoop}}
{{Football kit/pattern|body|_blueyellow_horizontal}}
{{Football kit/pattern|body|_darkbluehorizontal}}
{{Football kit/pattern|body|_navygoldhorizontal}}
{{Football kit/pattern|body|_navywhitehorizontal}}
{{Football kit/pattern|body|_darkbluewhitehorizontal}}
{{Football kit/pattern|body|_thin navyhoops}}
{{Football kit/pattern|body|_thin navybluehoops}}
{{Football kit/pattern|body|_thinnavyhoops}}
{{Football kit/pattern|body|_thinnavyhoops2}}
{{Football kit/pattern|body|_navyhoops}}
{{Football kit/pattern|body|_2 navy hoops}}
{{Football kit/pattern|body|_navy&redhorizontal}}
{{Football kit/pattern|body|_horizontal_skyblue}}
{{Football kit/pattern|body|_lightbluehoops}}
{{Football kit/pattern|body|_skyhoops}}
{{Football kit/pattern|body|_argentina flag}}
{{Football kit/pattern|body|_2_lightblue_hoops}}
{{Football kit/pattern|body|_lightbluehorizontal}}
{{Football kit/pattern|body|_banconacion}}
{{Football kit/pattern|body|_gei}}
{{Football kit/pattern|body|_greyhoops}}
{{Football kit/pattern|body|_thin_greyhoops}}
{{Football kit/pattern|body|_greyupper_whitehorizontal}}
{{Football kit/pattern|body|_goldhoops}}
{{Football kit/pattern|body|_thin_goldhoops}}
{{Football kit/pattern|body|_goldhorizontal}}
{{Football kit/pattern|body|_gold and claret horizontal}}
{{Football kit/pattern|body|_2 gold horizontal}}
{{Football kit/pattern|body|_goldhorizontal_upperred}}
{{Football kit/pattern|body|_goldblack hoops}}
{{Football kit/pattern|body|_goldblue_stripes}}
{{Football kit/pattern|body|_goldwhite_stripes}}
{{Football kit/pattern|body|_goldbluegoldhorizontal}}
{{Football kit/pattern|body|_upper_black}}
{{Football kit/pattern|body|_upper_blue}}
{{Football kit/pattern|body|_upper_blue2}}
{{Football kit/pattern|body|_upper_cherry}}
{{Football kit/pattern|body|_upper_gold}}
{{Football kit/pattern|body|_upper_green1}}
{{Football kit/pattern|body|_upper_green3}}
{{Football kit/pattern|body|_upper_grey}}
{{Football kit/pattern|body|_upper_orange}}
{{Football kit/pattern|body|_upper_purple}}
{{Football kit/pattern|body|_upper_red}}
{{Football kit/pattern|body|_upper_sky}}
{{Football kit/pattern|body|_upper_teal}}
{{Football kit/pattern|body|_upper_white1}}
{{Football kit/pattern|body|_greenhorizontal}}
{{Football kit/pattern|body|_green & redhorizontal}}
{{Football kit/pattern|body|_green thinhorizontal}}
{{Football kit/pattern|body|_edinburghuniv}}
{{Football kit/pattern|body|_delta_h}}
{{Football kit/pattern|body|_greenhoops}}
{{Football kit/pattern|body|_thingreenhoops}}
{{Football kit/pattern|body|_thingreenhoops3}}
{{Football kit/pattern|body|_darkgreenhoops}}
{{Football kit/pattern|body|_inch_blackhoops}}
{{Football kit/pattern|body|_kinghospital}}
{{Football kit/pattern|body|_maroonhoops}}
{{Football kit/pattern|body|_maroonhoops2}}
{{Football kit/pattern|body|_maroonhorizontal}}
{{Football kit/pattern|body|_thinmaroonhoops}}
{{Football kit/pattern|body|_orangehoophigh}}
{{Football kit/pattern|body|_orangehoops2}}
{{Football kit/pattern|body|_orangehorizontal}}
{{Football kit/pattern|body|_orange_horizontal}}
{{Football kit/pattern|body|_shadow_hoops_25p}}
{{Football kit/pattern|body|_shadow_hoops_50p}}
{{Football kit/pattern|body|_shadow_hoops_75p}}
{{Football kit/pattern|body|_thin_dark_grey_hoops}}
{{Football kit/pattern|body|_thingreyhoops}}
{{Football kit/pattern|body|_thinpinkhoops}}
{{Football kit/pattern|body|_thintransparenthoops}}
{{Football kit/pattern|body|_thintransparenthoopsupper}}
{{Football kit/pattern|body|_tpe1984_away}}
{{Football kit/pattern|body|_tpe1984_home}}
{{Football kit/pattern|body|_thinredhoops}}
{{Football kit/pattern|body|_thinredhoops2}}
{{Football kit/pattern|body|_thinredhoops3}}
{{Football kit/pattern|body|_redhoops}}
{{Football kit/pattern|body|_thinamberhoops}}
{{Football kit/pattern|body|_redbluehoops}}
{{Football kit/pattern|body|_red darkblue hoops}}
{{Football kit/pattern|body|_donbosco}}
{{Football kit/pattern|body|_redhoops_blackcollar}}
{{Football kit/pattern|body|_redhorizontal}}
{{Football kit/pattern|body|_red_stripes_red_sh}}
{{Football kit/pattern|body|_redblack_horizontal}}
{{Football kit/pattern|body|__red & bluehorizontal}}
{{Football kit/pattern|body|_redwhitehoops}}
{{Football kit/pattern|body|_redwhitehorizontal2}}
{{Football kit/pattern|body|_redwhitehorizontal}}
{{Football kit/pattern|body|_redyellowhorizontal}}
{{Football kit/pattern|body|_2red white hoops}}
{{Football kit/pattern|body|_belgranoath rugby1900}}
{{Football kit/pattern|body|_lbdt}}
{{Football kit/pattern|body|_whiteabovebreast}}
{{Football kit/pattern|body|_white_diagonal}}
{{Football kit/pattern|body|_whitehoophigh}}
{{Football kit/pattern|body|_whitehoops}}
{{Football kit/pattern|body|_whitehoops2}}
{{Football kit/pattern|body|_2_whitehorizontal}}
{{Football kit/pattern|body|_white_hoops}}
{{Football kit/pattern|body|_whitehorizontal}}
{{Football kit/pattern|body|_whiteredhorizontal}}
{{Football kit/pattern|body|_white_red_horizontal}}
{{Football kit/pattern|body|_whiteredwhite horizontal}}
{{Football kit/pattern|body|_butcher stripes white}}
{{Football kit/pattern|body|_hoops butcher stripes alternate white}}
{{Football kit/pattern|body|_horizontalonwhite}}
{{Football kit/pattern|body|_thin whitehoops}}
{{Football kit/pattern|body|_thin white_black_hoops}}
{{Football kit/pattern|body|_thin_white_hoops}}
{{Football kit/pattern|body|_thinwhitehoops}}
{{Football kit/pattern|body|_collarwhite_horizontalwhite}}
{{Football kit/pattern|body|_whitebluehoops}}
{{Football kit/pattern|body|_whitemaroon_hoops}}
{{Football kit/pattern|body|_whiteredblackwhitehorizontal}}
{{Football kit/pattern|body|_thin_white_hoops_black_pinstripes}}
{{Football kit/pattern|body|_thin5stripemarinetransparenthoops}}
{{Football kit/pattern|body|_thin5stripeWhitetransparenthoops}}
{{Football kit/pattern|body|_boca-mercosur98}}
{{Football kit/pattern|body|_yellowblackyellowhorizontal}}
{{Football kit/pattern|body|_yellowblackyellowhorizontal2}}
{{Football kit/pattern|body|_yellowblackhorizontal}}
{{Football kit/pattern|body|_yellowbluehorizontal}}
{{Football kit/pattern|body|_yellowhoops}}
{{Football kit/pattern|body|_yellowhorizontal}}
{{clear}}
==Halves==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_aqua_right_half}}
{{Football kit/pattern|body|_blackhalf}}
{{Football kit/pattern|body|_blackhalf2}}
{{Football kit/pattern|body|_bluehalf}}
{{Football kit/pattern|body|_bluehalf2}}
{{Football kit/pattern|body|_darkred2}}
{{Football kit/pattern|body|_goldhalf}}
{{Football kit/pattern|body|_goldhalf2}}
{{Football kit/pattern|body|_lightbluehalf}}
{{Football kit/pattern|body|_maroonhalf}}
{{Football kit/pattern|body|_navyhalf}}
{{Football kit/pattern|body|_navyhalf2}}
{{Football kit/pattern|body|_orangehalf}}
{{Football kit/pattern|body|_orangehalf2}}
{{Football kit/pattern|body|_redhalf}}
{{Football kit/pattern|body|_redhalf2}}
{{Football kit/pattern|body|_redsquareshalf}}
{{Football kit/pattern|body|_whitehalf}}
{{Football kit/pattern|body|_whitehalf_right}}
{{clear}}
==Quarters==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_Bath Quarters 95-96}}
{{Football kit/pattern|body|_blackquarters14}}
{{Football kit/pattern|body|_blackquarters23}}
{{Football kit/pattern|body|_bluequarters14}}
{{Football kit/pattern|body|_navyquarters14}}
{{Football kit/pattern|body|_navyquarters23}}
{{Football kit/pattern|body|_bluequarters23}}
{{Football kit/pattern|body|_lightbluequarters14}}
{{Football kit/pattern|body|_bluescrosswhite}}
{{Football kit/pattern|body|_bluestripedquarters}}
{{Football kit/pattern|body|_darkgreenquarters23}}
{{Football kit/pattern|body|_greenquarters14}}
{{Football kit/pattern|body|_greenquarters23}}
{{Football kit/pattern|body|_maroonquarters23}}
{{Football kit/pattern|body|_redquarters14}}
{{Football kit/pattern|body|_redquarters23}}
{{Football kit/pattern|body|_whitequarters14}}
{{Football kit/pattern|body|_whitequarters23}}
{{Football kit/pattern|body|bluyellowsquareshalf}}
{{clear}}
==Sashes==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_backsashonwhite}}
{{Football kit/pattern|body|_blackbluerightsash}}
{{Football kit/pattern|body|_blackdiagonals}}
{{Football kit/pattern|body|_blackdiagonalsash}}
{{Football kit/pattern|body|_blackleftsash}}
{{Football kit/pattern|body|_blackleftsashonwhite}}
{{Football kit/pattern|body|_blacklines rightsash}}
{{Football kit/pattern|body|_blackrightsash}}
{{Football kit/pattern|body|_blackgoldrightsash}}
{{Football kit/pattern|body|_blue_and_red_left_sash}}
{{Football kit/pattern|body|_blue_and_red_right_sash}}
{{Football kit/pattern|body|_bluediagonals}}
{{Football kit/pattern|body|_blueleftsash}}
{{Football kit/pattern|body|_blueredleftsash}}
{{Football kit/pattern|body|_bluesashright}}
{{Football kit/pattern|body|_brightblueleftsash}}
{{Football kit/pattern|body|_brightbluerightsash}}
{{Football kit/pattern|body|_darkblueleftsash}}
{{Football kit/pattern|body|_darkbluerightsash}}
{{Football kit/pattern|body|_darkredblackrightsash}}
{{Football kit/pattern|body|_goldleftsash}}
{{Football kit/pattern|body|_goldrightsash}}
{{Football kit/pattern|body|_greenrightsash}}
{{Football kit/pattern|body|_greenleftsash}}
{{Football kit/pattern|body|_left diagonal red}}
{{Football kit/pattern|body|_orangeleftsash}}
{{Football kit/pattern|body|_orangerightsash1}}
{{Football kit/pattern|body|_redblackeftsash}}
{{Football kit/pattern|body|_redblue_rightsash_bologna}}
{{Football kit/pattern|body|_redbluestripes2}}
{{Football kit/pattern|body|_reddiagonals}}
{{Football kit/pattern|body|_redleftdoublesash}}
{{Football kit/pattern|body|_redleftsash}}
{{Football kit/pattern|body|_redrightsash}}
{{Football kit/pattern|body|_scarletrightsash}}
{{Football kit/pattern|body|_redwhiteleftsash}}
{{Football kit/pattern|body|_right_diagonal_blue}}
{{Football kit/pattern|body|_right_diagonal_green}}
{{Football kit/pattern|body|_rightsashonwhite}}
{{Football kit/pattern|body|_triangle_left}}
{{Football kit/pattern|body|_violetleftsash}}
{{Football kit/pattern|body|_whitediagonals}}
{{Football kit/pattern|body|_whiteleftsash}}
{{Football kit/pattern|body|_whiteredleftsash}}
{{Football kit/pattern|body|_whiteblueleftsash}}
{{Football kit/pattern|body|_whitenavyrightsash}}
{{Football kit/pattern|body|_whiterightsash}}
{{Football kit/pattern|body|_whitesashes}}
{{Football kit/pattern|body|_yellowbluerightsash}}
{{Football kit/pattern|body|_yellowredstripes}}
{{Football kit/pattern|body|_yellowrightsash}}
{{Football kit/pattern|body|_leftshash_half}}
{{clear}}
==Sides==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_adidas_blue_piping}}
{{Football kit/pattern|body|_Hawav1}}
{{Football kit/pattern|body|_adidas_white_piping}}
{{Football kit/pattern|body|_amber_sleeve_seams}}
{{Football kit/pattern|body|_amberwhitesidepanel}}
{{Football kit/pattern|body|_blackadidasplate}}
{{Football kit/pattern|body|_Adidas_tiro24_rose}}
{{Football kit/pattern|body|_Adidas_tiro24_red}}
{{Football kit/pattern|body|_Adidas_tiro24_black}}
{{Football kit/pattern|body|_blackarc}}
{{Football kit/pattern|body|_blacksidepiping}}
{{Football kit/pattern|body|_blacksides}}
{{Football kit/pattern|body|_blacksidesoutline}}
{{Football kit/pattern|body|_blacksleevelinesandsidesthick}}
{{Football kit/pattern|body|_blackstripes_sides}}
{{Football kit/pattern|body|_blueleftsideshoulder}}
{{Football kit/pattern|body|_blueredstriped_sides}}
{{Football kit/pattern|body|_bluerightsideshoulder}}
{{Football kit/pattern|body|_bluesides}}
{{Football kit/pattern|body|_bluesides_arka}}
{{Football kit/pattern|body|_bluesides_horizontal_line}}
{{Football kit/pattern|body|_bluesidestripecollar}}
{{Football kit/pattern|body|_bluesleevelinesandsides}}
{{Football kit/pattern|body|_bluestriped_sides}}
{{Football kit/pattern|body|_blackbow}}
{{Football kit/pattern|body|_bluebow}}
{{Football kit/pattern|body|_greenbow}}
{{Football kit/pattern|body|_redbow}}
{{Football kit/pattern|body|_yellowbow}}
{{Football kit/pattern|body|_whitebow}}
{{Football kit/pattern|body|_bow burgundy white}}
{{Football kit/pattern|body|_bowonblack}}
{{Football kit/pattern|body|_bowonblue}}
{{Football kit/pattern|body|_bowondkblue}}
{{Football kit/pattern|body|_bowongreen}}
{{Football kit/pattern|body|_bowonlightgreen}}
{{Football kit/pattern|body|_bowonorange}}
{{Football kit/pattern|body|_bowonred}}
{{Football kit/pattern|body|_bowonskyblue}}
{{Football kit/pattern|body|_bowonwhite}}
{{Football kit/pattern|body|_bowonyellow}}
{{Football kit/pattern|body|_cuciturerev}}
{{Football kit/pattern|body|_darkgreenwhitestriped_sides}}
{{Football kit/pattern|body|_dmedia_away}}
{{Football kit/pattern|body|_fluorescentgreen_sides}}
{{Football kit/pattern|body|_gold_collar_white_sides}}
{{Football kit/pattern|body|_graysides_arka}}
{{Football kit/pattern|body|_greensides}}
{{Football kit/pattern|body|_greensides_2}}
{{Football kit/pattern|body|_greyblue_sleeve_seams}}
{{Football kit/pattern|body|_HAGLaway2009}}
{{Football kit/pattern|body|_leftblacksiderightredside}}
{{Football kit/pattern|body|_leftredsiderightblackside}}
{{Football kit/pattern|body|_left_sleeve_right_side_on_white}}
{{Football kit/pattern|body|_lithuaniabasides2}}
{{Football kit/pattern|body|_navybluegreenstriped_sides}}
{{Football kit/pattern|body|_navyrightsideshoulder}}
{{Football kit/pattern|body|_navysides}}
{{Football kit/pattern|body|_goldsides}}
{{Football kit/pattern|body|_goldsides2}}
{{Football kit/pattern|body|_oldgoldsides}}
{{Football kit/pattern|body|_orangearc}}
{{Football kit/pattern|body|_orange_sleeve_seams}}
{{Football kit/pattern|body|_redbluesides2}}
{{Football kit/pattern|body|_redleftsideshoulder}}
{{Football kit/pattern|body|_redrightsideshoulder}}
{{Football kit/pattern|body|_red_left_sleeve_red_right_side}}
{{Football kit/pattern|body|_redshoulders_blacksides}}
{{Football kit/pattern|body|_redsides_2}}
{{Football kit/pattern|body|_redsidesgradient}}
{{Football kit/pattern|body|_redwhitestriped_sides}}
{{Football kit/pattern|body|_redyellowsides}}
{{Football kit/pattern|body|_redyellowsides}}
{{Football kit/pattern|body|_royalbluesides}}
{{Football kit/pattern|body|_sidepipingonblack}}
{{Football kit/pattern|body|_silversides}}
{{Football kit/pattern|body|_skybluesides}}
{{Football kit/pattern|body|_sleevelinesthickonwhite}}
{{Football kit/pattern|body|_tealwavy}}
{{Football kit/pattern|body|_thinblacksides}}
{{Football kit/pattern|body|_thinbluesideblueshoulders2}}
{{Football kit/pattern|body|_thinbluesides}}
{{Football kit/pattern|body|_thinskysides}}
{{Football kit/pattern|body|_thinblueyellowsides}}
{{Football kit/pattern|body|_thindarkgreensides}}
{{Football kit/pattern|body|_thindarkgreengoldsides}}
{{Football kit/pattern|body|_thindkbluesides}}
{{Football kit/pattern|body|_thindkgreysides}}
{{Football kit/pattern|body|_thindkredsidesongold}}
{{Football kit/pattern|body|_thinecrusides}}
{{Football kit/pattern|body|_thingoldsides2}}
{{Football kit/pattern|body|_thingreensides}}
{{Football kit/pattern|body|_thingreybluesides}}
{{Football kit/pattern|body|_thingreysides}}
{{Football kit/pattern|body|_thinmidnightbluesides}}
{{Football kit/pattern|body|_thinorangesides_2}}
{{Football kit/pattern|body|_thinorangesidesorangeshoulders2}}
{{Football kit/pattern|body|_thinredsides}}
{{Football kit/pattern|body|_thinpinksides}}
{{Football kit/pattern|body|_thinsidesonblack}}
{{Football kit/pattern|body|_thinsidesonwhite}}
{{Football kit/pattern|body|_thinwhitesides}}
{{Football kit/pattern|body|_thinyellowsides}}
{{Football kit/pattern|body|_thingarnetsides}}
{{Football kit/pattern|body|_uhlsport_mythos_redlines}}
{{Football kit/pattern|body|_Ukraine_main_2010}}
{{Football kit/pattern|body|_Ukraine_reserve_2010}}
{{Football kit/pattern|body|_vegasgoldsides}}
{{Football kit/pattern|body|_waikato}}
{{Football kit/pattern|body|_whitearc}}
{{Football kit/pattern|body|_whitearmpits}}
{{Football kit/pattern|body|_whiteleftsideshoulder}}
{{Football kit/pattern|body|_whitelineacross}}
{{Football kit/pattern|body|_whiteredcurve}}
{{Football kit/pattern|body|_whiteredstriped_sides}}
{{Football kit/pattern|body|_whitesides}}
{{Football kit/pattern|body|_whitesides2}}
{{Football kit/pattern|body|_whitesides3}}
{{Football kit/pattern|body|_whitesideshape}}
{{Football kit/pattern|body|_whitesidesshoulders}}
{{Football kit/pattern|body|_whitesleevelinesandsides}}
{{Football kit/pattern|body|_whitesleevelinesandsidesthick}}
{{Football kit/pattern|body|_white_sleeve_seams}}
{{Football kit/pattern|body|_white_stars}}
{{Football kit/pattern|body|_whitestripessides}}
{{Football kit/pattern|body|_whitethinlines}}
{{Football kit/pattern|body|_yellowthinlines}}
{{clear}}
==Shoulders==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_shoulder_stripes_vneck}}
{{Football kit/pattern|body|_3_stripes_neck_black}}
{{Football kit/pattern|body|_adidas_redshoulder}}
{{Football kit/pattern|body|_2yellowshoulderstripes}}
{{Football kit/pattern|body|_2blueshoulderstripes}}
{{Football kit/pattern|body|_4squaresonshoulder}}
{{Football kit/pattern|body|_adidas_greenshoulder}}
{{Football kit/pattern|body|_adidas_navyshoulder}}
{{Football kit/pattern|body|_aaaj9092a}}
{{Football kit/pattern|body|_ahly1011}}
{{Football kit/pattern|body|_angleshoulderonblack}}
{{Football kit/pattern|body|_black_chest}}
{{Football kit/pattern|body|_blackhalfsides}}
{{Football kit/pattern|body|_black_nzfc_shoulders}}
{{Football kit/pattern|body|_blackshoulders}}
{{Football kit/pattern|body|_blackwhiteshoulders}}
{{Football kit/pattern|body|_bluegreyrightshoulder}}
{{Football kit/pattern|body|_blueshoulders}}
{{Football kit/pattern|body|_calais}}
{{Football kit/pattern|body|_capelli shoulders white}}
{{Football kit/pattern|body|_darkyellowshoulders_pits}}
{{Football kit/pattern|body|_dkgreyshoulders}}
{{Football kit/pattern|body|_dkredshoulders}}
{{Football kit/pattern|body|_foldedcollarblackshoulders}}
{{Football kit/pattern|body|_goldshoulders}}
{{Football kit/pattern|body|_goldshoulders2}}
{{Football kit/pattern|body|_greenangleshoulderwhitestripe}}
{{Football kit/pattern|body|_green_red_shoulders}}
{{Football kit/pattern|body|_greenshoulders}}
{{Football kit/pattern|body|_darkgreenshoulders}}
{{Football kit/pattern|body|_kyoto09_a}}
{{Football kit/pattern|body|_kyoto09_h}}
{{Football kit/pattern|body|_leftshoulderonwhite}}
{{Football kit/pattern|body|_lightblueshoulders}}
{{Football kit/pattern|body|_navyangleshoulder}}
{{Football kit/pattern|body|_navy_angle_shoulder2}}
{{Football kit/pattern|body|_navy_blackangle_leftshoulder}}
{{Football kit/pattern|body|_navyshoulders}}
{{Football kit/pattern|body|_oneredshoulderonwhite}}
{{football kit/pattern|body|_orange_shoulders}}
{{football kit/pattern|body|_orangeshoulders}}
{{Football kit/pattern|body|_Plabennechome}}
{{Football kit/pattern|body|_red_halfshoulders}}
{{Football kit/pattern|body|_redline}}
{{Football kit/pattern|body|_red_shoulders}}
{{Football kit/pattern|body|_redshoulders}}
{{Football kit/pattern|body|_rightangleshoulderonwhite}}
{{Football kit/pattern|body|_rightwhiteangleshoulder}}
{{Football kit/pattern|body|_shouldersonblack}}
{{Football kit/pattern|body|_shouldersonblue}}
{{Football kit/pattern|body|_shouldersonwhite}}
{{Football kit/pattern|body|_shoulderstripes}}
{{Football kit/pattern|body|_shoulder_stripes_black_shirt}}
{{Football kit/pattern|body|_shoulder_stripes_black_stripes}}
{{Football kit/pattern|body|_shoulder_stripes_black_stripes_collar}}
{{Football kit/pattern|body|_shoulder_stripes_bluer_stripes}}
{{Football kit/pattern|body|_shoulder_stripes_gold_stripes}}
{{Football kit/pattern|body|_shoulder_stripes_red_stripes}}
{{Football kit/pattern|body|_shoulder_stripes_vneck}}
{{Football kit/pattern|body|_shoulder stripes white shirt}}
{{Football kit/pattern|body|_shoulder_stripes_white_shirt}}
{{Football kit/pattern|body|_shoulder_stripes_white_stripes}}
{{Football kit/pattern|body|_Spikesonwhite}}
{{Football kit/pattern|body|_three_white_left_shoulder_stripes_2}}
{{Football kit/pattern|body|_transshoulders1}}
{{Football kit/pattern|body|_whiteangleshouldergreenstripe}}
{{Football kit/pattern|body|_white_blue_right_shoulder}}
{{Football kit/pattern|body|_whitegreyrightshoulder}}
{{Football kit/pattern|body|_whitehalfsides}}
{{Football kit/pattern|body|_whitehoops_top}}
{{Football kit/pattern|body|_whitepipes}}
{{Football kit/pattern|body|_whiteleftshoulder_2}}
{{Football kit/pattern|body|_white_nzfc_shoulders}}
{{Football kit/pattern|body|_white_red_right_shoulder}}
{{Football kit/pattern|body|_white_right_shoulder}}
{{Football kit/pattern|body|_whitesholders}}
{{Football kit/pattern|body|_whiteshoulders}}
{{Football kit/pattern|body|_Whitespikes}}
{{Football kit/pattern|body|_whitewithsholders}}
{{Football kit/pattern|body|_yellow_red_right_shoulder}}
{{Football kit/pattern|body|_yellowshoulders}}
{{clear}}
==Collar & neck==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_blackcollar}}
{{Football kit/pattern|body|_3_stripes_collar_white}}
{{Football kit/pattern|body|_bluebuttoncollar}}
{{Football kit/pattern|body|_bluecollar}}
{{Football kit/pattern|body|_bluecollar_2}}
{{Football kit/pattern|body|_bluecollar_trineck}}
{{Football kit/pattern|body|_BrownCollar}}
{{Football kit/pattern|body|_buttons}}
{{Football kit/pattern|body|_carolinacollar}}
{{Football kit/pattern|body|_claretcollar}}
{{Football kit/pattern|body|_collar}}
{{Football kit/pattern|body|_vneck_transparent}}
{{Football kit/pattern|body|_collarblack}}
{{Football kit/pattern|body|_collarblue}}
{{Football kit/pattern|body|_collarnavy}}
{{Football kit/pattern|body|_collar_buttons}}
{{Football kit/pattern|body|_polocollar_white}}
{{Football kit/pattern|body|_collarwhite_buttons}}
{{Football kit/pattern|body|_collar_buttons_2}}
{{Football kit/pattern|body|_whitecollar buttons}}
{{Football kit/pattern|body|_collarwhite_laces}}
{{Football kit/pattern|body|_collaryellow}}
{{Football kit/pattern|body|_old_laced}}
{{Football kit/pattern|body|_collarblack_laced}}
{{Football kit/pattern|body|_collarblue_laced}}
{{Football kit/pattern|body|_collargold_laced}}
{{Football kit/pattern|body|_collarwhite_laced}}
{{Football kit/pattern|body|_collarred_laced}}
{{Football kit/pattern|body|_collar_CNortonMatosPT}}
{{Football kit/pattern|body|_collargreen}}
{{Football kit/pattern|body|_collarnavy}}
{{Football kit/pattern|body|_collarred}}
{{Football kit/pattern|body|_collarred 2}}
{{Football kit/pattern|body|_collar_vert}}
{{Football kit/pattern|body|_collarwhite}}
{{Football kit/pattern|body|_collarwhite_horizontalwhite}}
{{Football kit/pattern|body|_collarwithbodywhite}}
{{Football kit/pattern|body|_ctwhales_away}}
{{Football kit/pattern|body|_goldcollar}}
{{Football kit/pattern|body|_graycollar}}
{{Football kit/pattern|body|_greencollar}}
{{Football kit/pattern|body|_lightgreencollar}}
{{Football kit/pattern|body|_marooncollar}}
{{Football kit/pattern|body|_collar_modern}}
{{Football kit/pattern|body|_collar_modern_gold}}
{{Football kit/pattern|body|_collar_modern_navy}}
{{Football kit/pattern|body|_collar_modern_red}}
{{Football kit/pattern|body|_collar_modern_white}}
{{Football kit/pattern|body|_navycollar}}
{{Football kit/pattern|body|_orangecollar}}
{{Football kit/pattern|body|_purplecollar}}
{{Football kit/pattern|body|_Puma2007}}
{{Football kit/pattern|body|_redbluestripedcollar}}
{{Football kit/pattern|body|_redcollar}}
{{Football kit/pattern|body|_Roma1}}
{{Football kit/pattern|body|_Roma2}}
{{Football kit/pattern|body|_scapulaire_vneck}}
{{Football kit/pattern|body|_skycollar}}
{{Football kit/pattern|body|_thinskycollar}}
{{Football kit/pattern|body|_transparentcollar_on_white}}
{{Football kit/pattern|body|_transparent vneck}}
{{Football kit/pattern|body|_vneck}}
{{Football kit/pattern|body|_vneckblack}}
{{Football kit/pattern|body|_vneckblue}}
{{Football kit/pattern|body|_vneckclaret}}
{{Football kit/pattern|body|_vneck_darkbluestripes}}
{{Football kit/pattern|body|_vnecklightblue}}
{{Football kit/pattern|body|_vneckgreen}}
{{Football kit/pattern|body|_vnecklightgreen}}
{{Football kit/pattern|body|_vnecknavy}}
{{Football kit/pattern|body|_vneckonwhite}}
{{Football kit/pattern|body|_vneckorange}}
{{Football kit/pattern|body|_vneckred}}
{{Football kit/pattern|body|_vneck_shouldersonwhite_strip}}
{{Football kit/pattern|body|_vneckwhite}}
{{Football kit/pattern|body|_vneckyellow}}
{{Football kit/pattern|body|_vneckyellowred}}
{{Football kit/pattern|body|_vneckgold}}
{{Football kit/pattern|body|_whitecollar}}
{{Football kit/pattern|body|_whitecollarplain}}
{{Football kit/pattern|body|_white_vcollar}}
{{Football kit/pattern|body|_with_white_collar}}
{{Football kit/pattern|body|_yellow_collar}}
{{clear}}
==Cross==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_blackcross}}
{{Football kit/pattern|body|_bluecross}}
{{Football kit/pattern|body|_centercross}}
{{Football kit/pattern|body|_navycross}}
{{Football kit/pattern|body|_redcross}}
{{Football kit/pattern|body|_whitecross}}
{{Football kit/pattern|body|_white_cross}}
{{Football kit/pattern|body|_yellowcross}}
{{clear}}
==Snake==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_adidas_snake_black}}
{{Football kit/pattern|body|_adidas_snake_blue}}
{{Football kit/pattern|body|_adidas_snake_red}}
{{Football kit/pattern|body|_adidas_snake_red_white_shoulder_stripes}}
{{Football kit/pattern|body|_adidas_snake_white}}
{{Football kit/pattern|body|_adidas_snake_white_white_shoulder_stripes}}
{{Football kit/pattern|body|_adidas_snake_yellow}}
{{Football kit/pattern|body|_adidaslibero}}
{{Football kit/pattern|body|_adidasliberowhite}}
{{Football kit/pattern|body|_adidasliberowithwhite}}
{{Football kit/pattern|body|_Daen_vertical_stripes}}
{{clear}}
==Squares==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_blacksquares}}
{{Football kit/pattern|body|_bluesquares}}
{{Football kit/pattern|body|_bluesquaresgradient}}
{{Football kit/pattern|body|_bluesquaressmall}}
{{Football kit/pattern|body|_bluesmallsquares}}
{{Football kit/pattern|body|_greensquares}}
{{Football kit/pattern|body|_orangesquares}}
{{Football kit/pattern|body|_redsquares}}
{{Football kit/pattern|body|_whitesquares}}
{{Football kit/pattern|body|_transparentsquares}}
{{clear}}
==Vs==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_black_v_top}}
{{Football kit/pattern|body|_blackvtop whitev}}
{{Football kit/pattern|body|_bluev_large}}
{{Football kit/pattern|body|_blue_v_top}}
{{Football kit/pattern|body|_navytop whitev}}
{{Football kit/pattern|body|_chevron_black}}
{{Football kit/pattern|body|_greychevrons}}
{{Football kit/pattern|body|_darkgreychevrons}}
{{Football kit/pattern|body|_chevron_redwhitered}}
{{Football kit/pattern|body|_chevron_blackwhiteblack}}
{{Football kit/pattern|body|_chevron_blackred}}
{{Football kit/pattern|body|_chevron_white}}
{{Football kit/pattern|body|_chevron_whitelines}}
{{Football kit/pattern|body|_devonportv copy}}
{{Football kit/pattern|body|_FullVonwhite}}
{{Football kit/pattern|body|_goldv_large}}
{{Football kit/pattern|body|_goldv_serif}}
{{Football kit/pattern|body|_gold_v_top}}
{{Football kit/pattern|body|_greenVtop}}
{{Football kit/pattern|body|_greyblack_redwhitered_V}}
{{Football kit/pattern|body|_greywhite_redblackred_V}}
{{Football kit/pattern|body|_lightblue large}}
{{Football kit/pattern|body|_lightbluev}}
{{Football kit/pattern|body|_manutd 09-10 away}}
{{Football kit/pattern|body|_manutd 09-10 home}}
{{Football kit/pattern|body|_vmaroonblackgrey}}
{{Football kit/pattern|body|_navy v top}}
{{Football kit/pattern|body|_orange white V}}
{{Football kit/pattern|body|_red_v_top}}
{{Football kit/pattern|body|_skyblue_v_top}}
{{Football kit/pattern|body|_tealblackchevron}}
{{Football kit/pattern|body|_triangleonwhite}}
{{Football kit/pattern|body|_vbluered}}
{{Football kit/pattern|body|_Vbodyblack}}
{{Football kit/pattern|body|_Vbodywhite}}
{{Football kit/pattern|body|_vgrey}}
{{Football kit/pattern|body|_Vhighonwhite}}
{{Football kit/pattern|body|_Vhighredwhitered}}
{{Football kit/pattern|body|_Vhighredwhiteblackspeckled}}
{{Football kit/pattern|body|_Vonwhite}}
{{Football kit/pattern|body|_Vredblack}}
{{Football kit/pattern|body|_Vredblue}}
{{Football kit/pattern|body|_vredgoldblack}}
{{Football kit/pattern|body|_vredwhiteblack}}
{{Football kit/pattern|body|_Vskywhite}}
{{Football kit/pattern|body|_v_triangle}}
{{Football kit/pattern|body|_Vwhitered}}
{{Football kit/pattern|body|_Vwideblack}}
{{Football kit/pattern|body|_Vwideblue}}
{{Football kit/pattern|body|_Vwidegreen_collar}}
{{Football kit/pattern|body|_Vwidenavy}}
{{Football kit/pattern|body|_Vwidered}}
{{Football kit/pattern|body|_Vwideyellow}}
{{Football kit/pattern|body|_Vyellowblue}}
{{Football kit/pattern|body|_whiteblackchevron}}
{{Football kit/pattern|body|_whiteCollar}}
{{Football kit/pattern|body|_vwhiteblackred}}
{{Football kit/pattern|body|_whiteV}}
{{Football kit/pattern|body|_whiteVarms}}
{{Football kit/pattern|body|_whitev large}}
{{Football kit/pattern|body|_whiteV_shallow}}
{{Football kit/pattern|body|_white_vtop}}
{{Football kit/pattern|body|_whiteVwide}}
{{Football kit/pattern|body|_yellow red V}}
{{Football kit/pattern|body|_yellowV}}
{{clear}}
==Other==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|body|_adidas_geist_bw}}
{{Football kit/pattern|body|_adidas_geist_onwhite_2}}
{{Football kit/pattern|body|_adidas_geist_white}}
{{Football kit/pattern|body|_adidas_piping_gold}}
{{Football kit/pattern|body|_adidas_tiro11_white}}
{{Football kit/pattern|body|_arskyiv}}
{{Football kit/pattern|body|_beams_black}}
{{Football kit/pattern|body|_blackbrown whirl}}
{{Football kit/pattern|body|_black_lowleft_highright}}
{{Football kit/pattern|body|_blackredshoulders}}
{{Football kit/pattern|body|_blue_reebok_spikes}}
{{Football kit/pattern|body|_canveyislandhome0506}}
{{Football kit/pattern|body|_CRO08Away}}
{{Football kit/pattern|body|_denh06}}
{{Football kit/pattern|body|_drfc_1011}}
{{Football kit/pattern|body|_efc_2009}}
{{Football kit/pattern|body|_eng06away}}
{{Football kit/pattern|body|_FortunaA1617}}
{{Football kit/pattern|body|_frah06}}
{{Football kit/pattern|body|_Germany_local_Handball_2006}}
{{Football kit/pattern|body|_goldcoast}}
{{Football kit/pattern|body|_graysemicircles}}
{{Football kit/pattern|body|_greensides Bucaramanga}}
{{Football kit/pattern|body|_greenupwardcurve}}
{{Football kit/pattern|body|_greytriangles}}
{{Football kit/pattern|body|_inclinatedblackhalf}}
{{Football kit/pattern|body|_JoziStars}}
{{Football kit/pattern|body|_Lahore Qalandars}}
{{Football kit/pattern|body|_lecoq_piping_blue_white}}
{{Football kit/pattern|body|_lightbluebrush}}
{{Football kit/pattern|body|_Lottoblue}}
{{Football kit/pattern|body|_Lottowhite}}
{{Football kit/pattern|body|_maroon_reebok_spikes}}
{{Football kit/pattern|body|_MNEAway}}
{{Football kit/pattern|body|_MNEHome}}
{{Football kit/pattern|body|_navyandbluechest}}
{{Football kit/pattern|body|_navyandwhitechest}}
{{Football kit/pattern|body|nocerinatransaparence1}}
{{Football kit/pattern|body|nocerinatransaparence2}}
{{Football kit/pattern|body|_olebrasilhome0506}}
{{Football kit/pattern|body|_redpattern}}
{{Football kit/pattern|body|_redstripesorangeshoulders}}
{{Football kit/pattern|body|_Safasc_Away}}
{{Football kit/pattern|body|_Safasc_Home}}
{{Football kit/pattern|body|_sash_stripe_checkered}}
{{Football kit/pattern|body|_Spain09}}
{{Football kit/pattern|body|_swfcaway0809}}
{{Football kit/pattern|body|_three_blue_left_shoulder_stripes}}
{{Football kit/pattern|body|_unionaway}}
{{Football kit/pattern|body|_unionhome}}
{{Football kit/pattern|body|_unknown}}
{{Football kit/pattern|body|_vneckred_bottomred}}
{{Football kit/pattern|body|_vneckwhite_bottomwhite}}
{{Football kit/pattern|body|_whirlpattern}}
{{Football kit/pattern|body|_white3horizontalines_blackcollar}}
{{Football kit/pattern|body|_whitehavenhome}}
{{Football kit/pattern|body|_whitestar}}
{{Football kit/pattern|body|_whiteupwardcurve}}
{{Football kit/pattern|body|_whitewithspots}}
{{Football kit/pattern|body|_white_X}}
{{Football kit/pattern|body|_whitey}}
{{Football kit/pattern|body|_workingtontownhome}}
{{Football kit/pattern|body|_yellowstripesorangeshoulders}}
{{Football kit/pattern|body|_yellow_white_reebok_spikes}}
{{Football kit/pattern|body|_fifesteelhome}}
{{Football kit/pattern|body|_fifesteelaway}}
{{Football kit/pattern|body|_fifesteelthird}}
{{Football kit/pattern|body|_vsvunihockey202526h}}
{{Football kit/pattern|body|_vsvunihockey202526a}}
{{clear}}
==No transparency==
The following body images lack transparency. They should be re-uploaded with transparency so that they are more generally useful.
{{Football kit/pattern|body|_InterSanCarlos_home}}
{{Football kit/pattern|body|_desamparados2025h}}
{{Football kit/pattern|body|_rz0607a}}
{{Football kit/pattern|body|_wolfs0910h}}
{{Football kit/pattern|body|_wolfs0910a}}
{{Football kit/pattern|body|_black_right_shoulder}}
{{Football kit/pattern|body|_blacksilverhoops}}
{{Football kit/pattern|body|_blackwithwhiteandred}}
{{football kit/pattern|body|_blue_black_right_shoulder}}
{{Football kit/pattern|body|_blue_green_hoops}}
{{Football kit/pattern|body|_blueorangesleevelinesandsidesthick}}
{{Football kit/pattern|body|_blueredhorizontal_stripes}}
{{Football kit/pattern|body|_BlueSwish}}
{{Football kit/pattern|body|_blueyellowwing}}
{{Football kit/pattern|body|_breidablik12h}}
{{Football kit/pattern|body|_broncos}}
{{Football kit/pattern|body|_Bucaramanga Away 20102}}
{{Football kit/pattern|body|_CardiffCityHome1112}}
{{Football kit/pattern|body|_caronnese}}
{{Football kit/pattern|body|_cpfcaway08}}
{{Football kit/pattern|body|_darkgreenhalf}}
{{Football kit/pattern|body|_darkred}}
{{Football kit/pattern|body|_Dynamo 2009}}
{{Football kit/pattern|body|_Dynamo 2009 II}}
{{Football kit/pattern|body|_EastBengal_12_13_Home}}
{{Football kit/pattern|body|_EastBengal-12-13-away}}
{{Football kit/pattern|body|_EastBengal1718}}
{{Football kit/pattern|body|_EastBengal1718t}}
{{Football kit/pattern|body|_EastBengal201718_a}}
{{Football kit/pattern|body|_EastBengal_20_21}}
{{Football kit/pattern|body|_engaway08a}}
{{Football kit/pattern|body|_FC Gold Pride}}
{{Football kit/pattern|body|_FC Gold Pride II}}
{{Football kit/pattern|body|_fcn}}
{{Football kit/pattern|body|_fcnaway}}
{{Football kit/pattern|body|_FCViOnHome1112}}
{{Football kit/pattern|body|_FKDAC1904Home1112}}
{{Football kit/pattern|body|_FKDuklaBB2Away1112}}
{{Football kit/pattern|body|_FKDuklaBBAway1112}}
{{Football kit/pattern|body|_FKDuklaBBHome1112}}
{{Football kit/pattern|body|_FKSenicaAway1112}}
{{Football kit/pattern|body|_FKSenicaHome1112}}
{{Football kit/pattern|body|_frattese}}
{{Football kit/pattern|body|_frattesenera}}
{{Football kit/pattern|body|_fsk0910a}}
{{Football kit/pattern|body|_fsk0910h}}
{{Football kit/pattern|body|_fsk1011a}}
{{Football kit/pattern|body|_fsk1011h}}
{{Football kit/pattern|body|_fsk1011t}}
{{Football kit/pattern|body|_gal0910a}}
{{Football kit/pattern|body|_gal0910h}}
{{Football kit/pattern|body|_gal0910t}}
{{Football kit/pattern|body|_Galatasaray0809 Home}}
{{Football kit/pattern|body|_geist green6}}
{{Football kit/pattern|body|_giants}}
{{Football kit/pattern|body|_harlequinsrbby}}
{{Football kit/pattern|body|_harlequinsrbgb}}
{{Football kit/pattern|body|_harlequinsbrbg}}
{{Football kit/pattern|body|_independiente09a}}
{{Football kit/pattern|body|_independiente09h}}
{{Football kit/pattern|body|_industrial}}
{{Football kit/pattern|body|_isrrugbyhome}}
{{Football kit/pattern|body|_Kit_body_Nqfury_home}}
{{Football kit/pattern|body|_Team_CP3_2020h}}
{{Football kit/pattern|body|_Kit_frount_AU_reebok_spikes}}
{{Football kit/pattern|body|_lightblue_black_white}}
{{Football kit/pattern|body|_lightblue_blue_whitestripes}}
{{Football kit/pattern|body|_lightbluerleftsash}}
{{Football kit/pattern|body|_makhome}}
{{Football kit/pattern|body|_manutdh0709}}
{{Football kit/pattern|body|_maroon_charlie}}
{{Football kit/pattern|body|_MfkKosiceAway1112}}
{{Football kit/pattern|body|_MfkKosiceHome1112}}
{{Football kit/pattern|body|_MFKRuzomberokHome1112}}
{{Football kit/pattern|body|_mfkskalica1516away}}
{{Football kit/pattern|body|_mfkzemplinmichalovce1516third}}
{{Football kit/pattern|body|_mvfc_afccl_2007-08}}
{{Football kit/pattern|body|_mvfc200911_away}}
{{Football kit/pattern|body|_mvfc202324_away}}
{{Football kit/pattern|body|_mvfc202425_away}}
{{Football kit/pattern|body|_mvfc202526_away}}
{{Football kit/pattern|body|_mvfc200911_home}}
{{Football kit/pattern|body|_mvfc202324_home}}
{{Football kit/pattern|body|_mvfc202425_home}}
{{Football kit/pattern|body|_mvfc202526_home}}
{{Football kit/pattern|body|_mwell0910away}}
{{Football kit/pattern|body|_navyorangesleeveilinesandsidesthick}}
{{Football kit/pattern|body|_navyquarters14}}
{{Football kit/pattern|body|_navyredsleevelinesandsidesthick}}
{{Football kit/pattern|body|_navywhiteredhoops}}
{{Football kit/pattern|body|_neftchi_home}}
{{Football kit/pattern|body|nocerina2020}}
{{Football kit/pattern|body|nocerina20202}}
{{Football kit/pattern|body|_novos}}
{{Football kit/pattern|body|_nufcaway}}
{{Football kit/pattern|body|_Olitopia08away}}
{{Football kit/pattern|body|_Olitopia08home}}
{{Football kit/pattern|body|_orangeblacksleevelinesandsidesthick}}
{{Football kit/pattern|body|_OXSC2002}}
{{Football kit/pattern|body|_OXSC2003homev2}}
{{Football kit/pattern|body|_OXSC2004away}}
{{Football kit/pattern|body|_OXSC2004home}}
{{Football kit/pattern|body|_OXSC2006home}}
{{Football kit/pattern|body|_OXSC2007away}}
{{Football kit/pattern|body|_OXSC2008home}}
{{Football kit/pattern|body|_OXSC2012home}}
{{Football kit/pattern|body|_OXSC2017homeV2}}
{{Football kit/pattern|body|_OXSC2018away}}
{{Football kit/pattern|body|_OXSCawayadidas}}
{{Football kit/pattern|body|_OXSChomeadidas}}
{{Football kit/pattern|body|_persikoban}}
{{Football kit/pattern|body|_perth_glory_home}}
{{Football kit/pattern|body|_Rapids away}}
{{Football kit/pattern|body|_Rapids home}}
{{Football kit/pattern|body|_rayadito}}
{{Football kit/pattern|body|_RBNY}}
{{Football kit/pattern|body|_real0708}}
{{Football kit/pattern|body|_red_blue_whitestripes}}
{{football kit/pattern|body|_red_gold_trim_shoulder}}
{{Football kit/pattern|body|_red_green_white}}
{{Football kit/pattern|body|_red_green_white2}}
{{Football kit/pattern|body|_belgranoat11away}}
{{Football kit/pattern|body|_red_green_whitestripes}}
{{Football kit/pattern|body|_red_stripe}}
{{Football kit/pattern|body|_redwhiteblack}}
{{Football kit/pattern|body|_red_white_bluestripes}}
{{Football kit/pattern|body|_redwhitegreen}}
{{Football kit/pattern|body|_RSL}}
{{Football kit/pattern|body|_Samsunspor 0809 Home}}
{{Football kit/pattern|body|_Samsunspor 0910 Home}}
{{Football kit/pattern|body|_Samsunspor 1112 3rd}}
{{Football kit/pattern|body|_Samsunspor 1112 3rd2}}
{{Football kit/pattern|body|_Samsunspor 1112 Away}}
{{Football kit/pattern|body|_Samsunspor 1112 Home}}
{{Football kit/pattern|body|_Samsunspor 1213 Away2}}
{{Football kit/pattern|body|_Samsunspor 1213 Home}}
{{Football kit/pattern|body|_Samsunspor 1213 Home2}}
{{Football kit/pattern|body|_savoia}}
{{Football kit/pattern|body|_sheffutd0002}}
{{Football kit/pattern|body|_skyblue_charlie}}
{{Football kit/pattern|body|_SpartakTrnavaAway1112}}
{{Football kit/pattern|body|_SpartakTrnavaHome1112}}
{{Football kit/pattern|body|_steaua0910home}}
{{Football kit/pattern|body|_sutton17a}}
{{Football kit/pattern|body|_TFC away}}
{{Football kit/pattern|body|_TFC home}}
{{Football kit/pattern|body|_thinwhitestripe_dkblueflashes}}
{{Football kit/pattern|body|_threecolouredstripes}}
{{Football kit/pattern|body|_turkey}}
{{Football kit/pattern|body|_turkey_away}}
{{Football kit/pattern|body|_Vyellowbluebottom}}
{{Football kit/pattern|body|_whiteshortsleevelinesandsides}}
{{Football kit/pattern|body|_whitesideslong}}
{{Football kit/pattern|body|_whitethinleftstripeonamaranth}}
{{Football kit/pattern|body|_wwfcchange}}
{{Football kit/pattern|body|_wwfcquarters}}
{{Football kit/pattern|body|_yellowbluehoops_2}}
{{Football kit/pattern|body|_yellowleftsideshoulder}}
{{Football kit/pattern|body|_yellow_red_bluestripes}}
{{clear}}
==Border==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|arm|_blackborder}}
{{Football kit/pattern|arm|_blackborder_trim}}
{{Football kit/pattern|arm|_duisburg1112a}}
{{Football kit/pattern|arm|_borderonblack}}
{{Football kit/pattern|arm|_borderonwhite}}
{{Football kit/pattern|arm|_carolinaborder}}
{{Football kit/pattern|arm|_claretborder}}
{{Football kit/pattern|arm|_darkyellowborder}}
{{Football kit/pattern|arm|_darkyellowthickborder}}
{{Football kit/pattern|arm|_goldborder}}
{{Football kit/pattern|arm|_greenborder}}
{{Football kit/pattern|arm|_lightgreenborder}}
{{Football kit/pattern|arm|_greyborder}}
{{Football kit/pattern|arm|_kappadervio1g}}
{{Football kit/pattern|arm|_mfkzemplinmichalovce1516third}}
{{Football kit/pattern|arm|_navyborder}}
{{Football kit/pattern|arm|_orange_border}}
{{Football kit/pattern|arm|_purpleborder}}
{{Football kit/pattern|arm|_inter20a}}
{{Football kit/pattern|arm|_redborder}}
{{Football kit/pattern|arm|_samredborder}}
{{Football kit/pattern|arm|_blueborder}}
{{Football kit/pattern|arm|_skyblueborder}}
{{Football kit/pattern|arm|_thinblackborder}}
{{Football kit/pattern|arm|_whiteborder}}
{{Football kit/pattern|arm|_workingtontownhome}}
{{Football kit/pattern|arm|_yellowborder}}
{{Football kit/pattern|arm|_mvfc_202425}}
{{Football kit/pattern|arm|_mvfc_202526_away}}
{{Football kit/pattern|arm|_mvfc_202526_home}}
{{clear}}
==Lower==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|arm|_blacklower}}
{{Football kit/pattern|arm|_blacklowerthin}}
{{Football kit/pattern|arm|_bluelower}}
{{Football kit/pattern|arm|_lightbluelower}}
{{Football kit/pattern|arm|_blue3}}
{{Football kit/pattern|arm|_navylower}}
{{Football kit/pattern|arm|_claretlower}}
{{Football kit/pattern|arm|_yellowlower}}
{{Football kit/pattern|arm|_gold_lower}}
{{Football kit/pattern|arm|_greenlower}}
{{Football kit/pattern|arm|_greylower}}
{{Football kit/pattern|arm|_greyblue}}
{{Football kit/pattern|arm|_orangelower}}
{{Football kit/pattern|arm|_redlower}}
{{Football kit/pattern|arm|_bow burgundy white}}
{{Football kit/pattern|arm|_whitelower}}
{{Football kit/pattern|arm|_upperwhite}}
{{clear}}
==Stripes==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|arm|_shoulder_stripes_black_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_blue_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_sky_blue_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_gold_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_green_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_navy_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_orange_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_red_stripes}}
{{Football kit/pattern|arm|_skylines}}
{{Football kit/pattern|arm|_shoulder_stripes_white_stripes}}
{{Football kit/pattern|arm|_3_stripes_white}}
{{Football kit/pattern|arm|_adidasstripesonwhite}}
{{Football kit/pattern|arm|_shoulder_stripes_yellow_stripes}}
{{Football kit/pattern|arm|_adidasblack}}
{{Football kit/pattern|arm|_khakilines}}
{{Football kit/pattern|arm|_adidas_redstripes}}
{{Football kit/pattern|arm|_adidas_redstripes2}}
{{Football kit/pattern|arm|_adidas_rosestripes}}
{{Football kit/pattern|arm|_blue_stripes}}
{{Football kit/pattern|arm|_blue_stripes4}}
{{Football kit/pattern|arm|_black_stripes}}
{{Football kit/pattern|arm|_thinblackstripes}}
{{Football kit/pattern|arm|_black_stripes_thin1}}
{{Football kit/pattern|arm|_goldstripes}}
{{Football kit/pattern|arm|_thingoldstripes}}
{{Football kit/pattern|arm|_green_stripes}}
{{Football kit/pattern|arm|_darkgreen_stripes}}
{{Football kit/pattern|arm|_lightblue_stripes}}
{{Football kit/pattern|arm|_lightblue_black_white}}
{{Football kit/pattern|arm|_navy_stripes}}
{{Football kit/pattern|arm|_orange_stripes}}
{{Football kit/pattern|arm|_samred_stripes}}
{{Football kit/pattern|arm|_samred_stripes2}}
{{Football kit/pattern|arm|_samred_stripes4}}
{{Football kit/pattern|arm|_white, redborder and small grey stripes}}
{{Football kit/pattern|arm|_red,_with_white_border_&_small_stripes}}
{{Football kit/pattern|arm|_red_stripes}}
{{Football kit/pattern|arm|_aljazira1415t}}
{{Football kit/pattern|arm|_redpinstripes}}
{{Football kit/pattern|arm|_red_blue_stripes}}
{{Football kit/pattern|arm|_red_green_stripes}}
{{Football kit/pattern|arm|_thinstripesonblack}}
{{Football kit/pattern|arm|_pinstripesongrey}}
{{Football kit/pattern|arm|_BlueTigers}}
{{Football kit/pattern|arm|_white_stripes}}
{{Football kit/pattern|arm|_yellow_stripes}}
{{clear}}
==Hoops==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|arm|_black_hoops}}
{{Football kit/pattern|arm|_thin_blackhoops}}
{{Football kit/pattern|arm|_thin_black_hoops}}
{{Football kit/pattern|arm|_thinblackhoops}}
{{Football kit/pattern|arm|_black_blue_hoops}}
{{Football kit/pattern|arm|_blackgoldhoops}}
{{Football kit/pattern|arm|_black_green_hoops}}
{{Football kit/pattern|arm|_black_white_hoops}}
{{Football kit/pattern|arm|_blackredhoops}}
{{Football kit/pattern|arm|_thickblackthinwhitehoops}}
{{Football kit/pattern|arm|_blue_hoops}}
{{Football kit/pattern|arm|_thinbluehoops}}
{{Football kit/pattern|arm|_gold_hoop}}
{{Football kit/pattern|arm|_gold_hoops2}}
{{Football kit/pattern|arm|_green_hoops}}
{{Football kit/pattern|arm|_belgranoac rugby 1900}}
{{Football kit/pattern|arm|_grey_hoops}}
{{Football kit/pattern|arm|_blue_green_hoop}}
{{Football kit/pattern|arm|_butcher stripes white}}
{{Football kit/pattern|arm|_hoops butcher stripes alternate white}}
{{Football kit/pattern|arm|_maroon_hoops}}
{{Football kit/pattern|arm|_maroon_hoops2}}
{{Football kit/pattern|arm|_yellowbluehoops}}
{{Football kit/pattern|arm|_banconacion}}
{{Football kit/pattern|arm|_thindarkgreyhoops}}
{{Football kit/pattern|arm|_navy_hoops}}
{{Football kit/pattern|arm|_thin_navyhoops}}
{{Football kit/pattern|arm|_thinnavyhoops}}
{{Football kit/pattern|arm|_orange_hoop}}
{{Football kit/pattern|arm|_red_hoops}}
{{Football kit/pattern|arm|_red_hoop}}
{{Football kit/pattern|arm|_redbluehoops}}
{{Football kit/pattern|arm|_redwhitehoops}}
{{Football kit/pattern|arm|_sky_hoops}}
{{Football kit/pattern|arm|_white_hoops}}
{{Football kit/pattern|arm|_white_hoop}}
{{Football kit/pattern|arm|_thinwhitehoops}}
{{Football kit/pattern|arm|_yellowhoops}}
{{Football kit/pattern|arm|_yellow_hoops}}
{{clear}}
==Sleeves==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|arm|_blackshoulders}}
{{Football kit/pattern|arm|_blacklines}}
{{Football kit/pattern|arm|_blackline}}
{{Football kit/pattern|arm|_arsenal1112h}}
{{Football kit/pattern|arm|_blueshoulders}}
{{Football kit/pattern|arm|_goldshoulders}}
{{Football kit/pattern|arm|_green_shoulders}}
{{Football kit/pattern|arm|_navyshoulders}}
{{Football kit/pattern|arm|_orange_shoulders}}
{{Football kit/pattern|arm|_redshoulders}}
{{Football kit/pattern|arm|_adidas_redstripes}}
{{Football kit/pattern|arm|_yellowshoulders}}
{{Football kit/pattern|arm|_whiteshoulders}}
{{Football kit/pattern|arm|_dkgreyshoulders}}
{{Football kit/pattern|arm|_dkredshoulders}}
{{Football kit/pattern|arm|_shouldersonblack}}
{{Football kit/pattern|arm|_shouldersonwhite}}
{{Football kit/pattern|arm|_blackredshoulders}}
{{Football kit/pattern|arm|_blackyellowshoulders}}
{{Football kit/pattern|arm|_whitehavenhome}}
{{Football kit/pattern|arm|_2 gold stripes on cuff}}
{{Football kit/pattern|arm|_2 yellow stripes on cuff}}
{{Football kit/pattern|arm|_blackadidasplate}}
{{Football kit/pattern|arm|_blackcuffpiping}}
{{Football kit/pattern|arm|_blackflair}}
{{Football kit/pattern|arm|_blackline}}
{{Football kit/pattern|arm|_blackline_border}}
{{Football kit/pattern|arm|_blackpanel}}
{{Football kit/pattern|arm|_blacksquares}}
{{Football kit/pattern|arm|_bluelines}}
{{Football kit/pattern|arm|_blue_panel}}
{{Football kit/pattern|arm|_bluestripe}}
{{Football kit/pattern|arm|_bluewhite_cuffs}}
{{Football kit/pattern|arm|_blueyellowstripedcuff}}
{{Football kit/pattern|arm|_ctwhales}}
{{Football kit/pattern|arm|_cuffpipingonwhite}}
{{Football kit/pattern|arm|_drkredhoop}}
{{Football kit/pattern|arm|_flareonwhite}}
{{Football kit/pattern|arm|_gold_lines}}
{{Football kit/pattern|arm|_greyupper}}
{{Football kit/pattern|arm|_greywhiteandstripes}}
{{Football kit/pattern|arm|_kappa_white}}
{{Football kit/pattern|arm|_khakilines}}
{{Football kit/pattern|arm|_lbdt}}
{{Football kit/pattern|arm|_lineonwhite}}
{{Football kit/pattern|arm|_linesonwhite}}
{{Football kit/pattern|arm|_lotto2}}
{{Football kit/pattern|arm|_maroonhorizontal}}
{{Football kit/pattern|arm|_navyandwhitesleeve}}
{{Football kit/pattern|arm|_navylines}}
{{Football kit/pattern|arm|_navy_shoulder_patch}}
{{Football kit/pattern|arm|_panelandlineonwhite}}
{{Football kit/pattern|arm|_panelonblack}}
{{Football kit/pattern|arm|_pinstripesonwhite}}
{{Football kit/pattern|arm|_redbluecuff}}
{{Football kit/pattern|arm|_redborderandshoulder}}
{{Football kit/pattern|arm|_redcuffpiping}}
{{Football kit/pattern|arm|_redline}}
{{Football kit/pattern|arm|_redlines}}
{{Football kit/pattern|arm|_redsquares}}
{{Football kit/pattern|arm|_redwhitecuffpiping}}
{{Football kit/pattern|arm|_redyellow}}
{{Football kit/pattern|arm|_shouldersandborder}}
{{Football kit/pattern|arm|_shoulder_stripes_black_shirt}}
{{Football kit/pattern|arm|_shoulder_stripes_black_shirt_alt}}
{{Football kit/pattern|arm|_shoulder_stripes_black_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_black_stripes_alt}}
{{Football kit/pattern|arm|_shoulder_stripes_black_stripes_alt}}
{{Football kit/pattern|arm|_shoulder_stripes_red_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_white_shirt}}
{{Football kit/pattern|arm|_shoulder_stripes_white_shirt_alt}}
{{Football kit/pattern|arm|_shoulder_stripes_white_stripes}}
{{Football kit/pattern|arm|_shoulder_stripes_white_stripes_alt}}
{{Football kit/pattern|arm|_twogreyhoops}}
{{Football kit/pattern|arm|_whiteband}}
{{Football kit/pattern|arm|_whitecuffpiping}}
{{Football kit/pattern|arm|_whiteflair}}
{{Football kit/pattern|arm|_whiteflareatshoulder}}
{{Football kit/pattern|arm|_whitelines}}
{{Football kit/pattern|arm|_whitepanelandline}}
{{Football kit/pattern|arm|_whiteshoulders}}
{{Football kit/pattern|arm|_whitesmalllower}}
{{Football kit/pattern|arm|_whitesquares}}
{{Football kit/pattern|arm|_white_stripes2}}
{{Football kit/pattern|arm|_whitewithspots}}
{{Football kit/pattern|arm|_yellowarmpits}}
{{Football kit/pattern|arm|_oxscredsleevewhitetip}}
{{Football kit/pattern|arm|_Whiteandgreystripesoncuff}}
{{clear}}
==Shorts==
<!--
Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.
-->
{{Football kit/pattern|shorts|_EastBengal1718a}}
{{Football kit/pattern|shorts|_blanksides2}}
{{Football kit/pattern|shorts|_umbro}}
{{Football kit/pattern|shorts|_kappa}}
{{Football kit/pattern|shorts|_blackbottom}}
{{Football kit/pattern|shorts|_blacksides}}
{{Football kit/pattern|shorts|_black_stripes_adidas}}
{{Football kit/pattern|shorts|_adidasblack2002}}
{{Football kit/pattern|shorts|_black_thinstripe_color}}
{{Football kit/pattern|shorts|_half_black}}
{{Football kit/pattern|shorts|_black_thinstripe_silver}}
{{Football kit/pattern|shorts|_bluebottom}}
{{Football kit/pattern|shorts|_bluesides}}
{{Football kit/pattern|shorts|_blue stripes}}
{{Football kit/pattern|shorts|_blue_stripes_adidas}}
{{Football kit/pattern|shorts|_blue_thin_stripes}}
{{Football kit/pattern|shorts|_skysides}}
{{Football kit/pattern|shorts|_sky_stripes}}
{{Football kit/pattern|shorts|_burgundy_sides}}
{{Football kit/pattern|shorts|_kappa_blue}}
{{Football kit/pattern|shorts|_darkbluesides_2}}
{{Football kit/pattern|shorts|_navy_stripes_adidas}}
{{Football kit/pattern|shorts|_navybottom}}
{{Football kit/pattern|shorts|_lightblue stripes}}
{{Football kit/pattern|shorts|_skybottom}}
{{Football kit/pattern|shorts|_goldbottom}}
{{Football kit/pattern|shorts|_goldsides}}
{{Football kit/pattern|shorts|_gold_stripes_adidas}}
{{Football kit/pattern|shorts|_Gold Stripes adidas}}
{{Football kit/pattern|shorts|_graysides}}
{{Football kit/pattern|shorts|_greenbottom}}
{{Football kit/pattern|shorts|_darkgreenbottom}}
{{Football kit/pattern|shorts|_greensides}}
{{Football kit/pattern|shorts|_lightgreensides}}
{{Football kit/pattern|shorts|_green_stripes_adidas}}
{{Football kit/pattern|shorts|_dk_grn_gold_stripes_dk_grn_bott}}
{{Football kit/pattern|shorts|_lotto}}
{{Football kit/pattern|shorts|_maroon_stripes_adidas}}
{{Football kit/pattern|shorts|_orangesides}}
{{Football kit/pattern|shorts|_orange_stripes}}
{{Football kit/pattern|shorts|_thinpinkstripes}}
{{Football kit/pattern|shorts|_redbottom}}
{{Football kit/pattern|shorts|_huracan1314h}}
{{Football kit/pattern|shorts|_redsides}}
{{Football kit/pattern|shorts|_red stripes}}
{{Football kit/pattern|shorts|_red_stripes_adidas}}
{{Football kit/pattern|shorts|_adidas_red}}
{{Football kit/pattern|shorts|_redwhitetrim}}
{{Football kit/pattern|shorts|_scarletonskyblue}}
{{Football kit/pattern|shorts|_sides_on_samred}}
{{Football kit/pattern|shorts|_oxsc2003}}
{{Football kit/pattern|shorts|_silverbottom}}
{{Football kit/pattern|shorts|_tealsides2}}
{{Football kit/pattern|shorts|_adidasonwhite}}
{{Football kit/pattern|shorts|_adidasonwhite2011}}
{{Football kit/pattern|shorts|_adidasspikeswhite}}
{{Football kit/pattern|shorts|_adidaswhite}}
{{Football kit/pattern|shorts|_sides_on_white}}
{{Football kit/pattern|shorts|_transparent_bottom}}
{{Football kit/pattern|shorts|_white border}}
{{Football kit/pattern|shorts|_whitebottom}}
{{Football kit/pattern|shorts|_whitesides}}
{{Football kit/pattern|shorts|_whitesides2}}
{{Football kit/pattern|shorts|_white stripes}}
{{Football kit/pattern|shorts|_white_stripes_adidas}}
{{Football kit/pattern|shorts|_whitehavenhome}}
{{Football kit/pattern|shorts|_yellow_stripes_adidas}}
{{Football kit/pattern|shorts|_adidas_yellow}}
{{Football kit/pattern|shorts|_yellowbottom}}
{{Football kit/pattern|shorts|_yellowsides}}
{{Football kit/pattern|shorts|_yellow_stripes}}
{{Football kit/pattern|shorts|_white_macron_bottom_left_leg}}
{{Football kit/pattern|shorts|_blue_macron_bottom_left_leg}}
{{clear}}
==Socks==
<!--Add new templates to the section below using the same format in ALPHABETICAL order.
Make sure you have read the instructions on [[Template talk:Football kit]] carefully.-->
{{Football kit/pattern|socks|_3_stripes_black}}
{{Football kit/pattern|socks|_2 black stripes}}
{{Football kit/pattern|socks|_band_black}}
{{Football kit/pattern|socks|_color_3_stripes_black}}
{{Football kit/pattern|socks|_blacktop}}
{{Football kit/pattern|socks|_blackhalf}}
{{Football kit/pattern|socks|_black_midband_silver}}
{{Football kit/pattern|socks|_black squares}}
{{Football kit/pattern|socks|_hoops_black}}
{{Football kit/pattern|socks|_hoops_black_blue}}
{{Football kit/pattern|socks|_hoops_black_white}}
{{Football kit/pattern|socks|_hoops_black_gold}}
{{Football kit/pattern|socks|_black_hoops_color}}
{{Football kit/pattern|socks|_hoops_black_red}}
{{Football kit/pattern|socks|_hoops_blue}}
{{Football kit/pattern|socks|_hoops_blue2}}
{{Football kit/pattern|socks|_hoops_blue_white}}
{{Football kit/pattern|socks|_2 blue stripes}}
{{Football kit/pattern|socks|_2bluestripes}}
{{Football kit/pattern|socks|_bluehorizontal}}
{{Football kit/pattern|socks|_blueband}}
{{Football kit/pattern|socks|_band_blue}}
{{Football kit/pattern|socks|_blue_midband}}
{{Football kit/pattern|socks|_bluetop}}
{{Football kit/pattern|socks|_color_2_stripes_blue}}
{{Football kit/pattern|socks|_color_3_stripes_blue}}
{{Football kit/pattern|socks|_bluestripe2}}
{{Football kit/pattern|socks|_hoops_blue_red}}
{{Football kit/pattern|socks|_color_3_stripes_dark_blue}}
{{Football kit/pattern|socks|_navy_midband}}
{{Football kit/pattern|socks|_hoops_navy}}
{{Football kit/pattern|socks|_hoops_navy_gold}}
{{Football kit/pattern|socks|_hoops_navy_white}}
{{Football kit/pattern|socks|_navy_outerbands}}
{{Football kit/pattern|socks|_navytop}}
{{Football kit/pattern|socks|_navystripe}}
{{Football kit/pattern|socks|_2_navy_stripes}}
{{Football kit/pattern|socks|_color_3_stripes_navy}}
{{Football kit/pattern|socks|_hoops_sky}}
{{Football kit/pattern|socks|_3_sky_stripes}}
{{Football kit/pattern|socks|_2lightbluestripes_2}}
{{Football kit/pattern|socks|_skystripe}}
{{Football kit/pattern|socks|_skyband}}
{{Football kit/pattern|socks|_sky_blue_on_top}}
{{Football kit/pattern|socks|_gold_midband}}
{{Football kit/pattern|socks|_goldstripe}}
{{Football kit/pattern|socks|_goldtop}}
{{Football kit/pattern|socks|_2 gold stripes}}
{{Football kit/pattern|socks|_3_old_gold_stripes}}
{{Football kit/pattern|socks|_hoops_gold}}
{{Football kit/pattern|socks|_hoops_gold_white}}
{{Football kit/pattern|socks|_hoops_green_2}}
{{Football kit/pattern|socks|_hoops_green_gold}}
{{Football kit/pattern|socks|_hoops_lightgreen}}
{{Football kit/pattern|socks|_2_green_stripes}}
{{Football kit/pattern|socks|_color_3_stripes_grey}}
{{Football kit/pattern|socks|_hoops_grey}}
{{Football kit/pattern|socks|_greentop}}
{{Football kit/pattern|socks|_teal_top}}
{{Football kit/pattern|socks|_greytop}}
{{Football kit/pattern|socks|_magentatop}}
{{Football kit/pattern|socks|_hoops_burgundy}}
{{Football kit/pattern|socks|_orange_top}}
{{Football kit/pattern|socks|_red_midband_color}}
{{Football kit/pattern|socks|_red_midband_color_2}}
{{Football kit/pattern|socks|_redtop}}
{{Football kit/pattern|socks|_redhalf2}}
{{Football kit/pattern|socks|_redstripe}}
{{Football kit/pattern|socks|_band_red}}
{{Football kit/pattern|socks|_band_claret}}
{{Football kit/pattern|socks|_3_stripes_green}}
{{Football kit/pattern|socks|_2_orange stripes}}
{{Football kit/pattern|socks|_3_orange stripes}}
{{Football kit/pattern|socks|_color_3_stripes_amber}}
{{Football kit/pattern|socks|_3 pink stripes}}
{{Football kit/pattern|socks|_hoops_red}}
{{Football kit/pattern|socks|_hoops_red_white}}
{{Football kit/pattern|socks|_2 red stripes}}
{{Football kit/pattern|socks|_3_stripes_red}}
{{Football kit/pattern|socks|_color_3_stripes_red}}
{{Football kit/pattern|socks|_cap1112a}}
{{Football kit/pattern|socks|_cap15a}}
{{Football kit/pattern|socks|_hoops_red_gold}}
{{Football kit/pattern|socks|_redtop_2whitestripes}}
{{Football kit/pattern|socks|_3_stripes_on_white_top}}
{{Football kit/pattern|socks|_color_3_stripes_on_white}}
{{Football kit/pattern|socks|_color_3_stripes_white}}
{{Football kit/pattern|socks|_2 white stripes}}
{{Football kit/pattern|socks|_2_stripes_white}}
{{Football kit/pattern|socks|_3_stripes_white}}
{{Football kit/pattern|socks|_whitestripe}}
{{Football kit/pattern|socks|_whitetop}}
{{Football kit/pattern|socks|_band_white}}
{{Football kit/pattern|socks|_top_on_white}}
{{Football kit/pattern|socks|_white_midband}}
{{Football kit/pattern|socks|_whitered_midband}}
{{Football kit/pattern|socks|_white_bands}}
{{Football kit/pattern|socks|_whitebands2}}
{{Football kit/pattern|socks|_hoops_white}}
{{Football kit/pattern|socks|_ 5_hoops_white}}
{{Football kit/pattern|socks|_white_hoops_color}}
{{Football kit/pattern|socks|_hoops_yellow}}
{{Football kit/pattern|socks|_yellowtop}}
{{Football kit/pattern|socks|_3_stripes_yellow}}
{{Football kit/pattern|socks|_color_3_stripes_yellow}}
{{Football kit/pattern|socks|_2 yellow stripes}}
{{Football kit/pattern|socks|_darkyellow_outerbands}}
{{Football kit/pattern|socks|_2 stripes grey and white with macron logo}}
{{Football kit/pattern|socks|_2 stripes grey and blue with macron logo}}
{{Football kit/pattern|socks|_white macron logo}}
{{Football kit/pattern|socks|_blue macron logo}}
{{Football kit/pattern|socks|_2 stripes white with macron logo}}
{{Football kit/pattern|socks|_2 stripes blue with macron logo}}
{{clear}}
==See also==
{{icon|Commons}} Media related to [[c:category:Football kit templates|Football kit templates]] at Wikimedia Commons
* [[Template:football kit]]
svuhnmbk80v1n0irx8t7lirf2febxr5
Template:Football kit
10
15875
74669
2026-09-10T16:05:20Z
B722N
6898
created template
74669
wikitext
text/x-wiki
<div style="width: 100px; margin: 0 auto; padding: 0;">
<div style="position: relative; left: 0px; top: 0px; width: 100px; height: {{#ifeq:{{{socks|}}}|none|95|135}}px; margin: 0 auto; padding: 0;">
<!-- Left arm -->
<div style="position: absolute; left: 0px; top: 0px; width: 31px; height: 59px; background-color: #{{{leftarm}}};color:inherit;">{{#if: {{{pattern_la|}}}|{{#ifexist:Media:Kit left arm{{{pattern_la}}}.{{{filetype|png}}} | [[File:Kit left arm{{{pattern_la}}}.{{{filetype|png}}}|top|link=|alt={{{alt|}}}|Team colours]] | [[Category:Pages using football kit with incorrect pattern parameters]] }} }}</div>
<div style="position: absolute; left: 0px; top: 0px; width: 31px; height: 59px;">[[File:Kit left arm.svg|top|link=|{{#if: {{{pattern_la|}}}|alt=|alt={{{alt|}}}{{!}}Team colours}}]]</div>
<!-- Body --->
<div style="position: absolute; left: 31px; top: 0px; width: 38px; height: 59px; background-color: #{{{body}}};color:inherit;">{{#if: {{{pattern_b|}}}|{{#ifexist:Media:Kit body{{{pattern_b}}}.{{{filetype|png}}} | [[File:Kit body{{{pattern_b}}}.{{{filetype|png}}}|top|link=|alt=]] | [[Category:Pages using football kit with incorrect pattern parameters]] }}| }}</div>
<div style="position: absolute; left: 31px; top: 0px; width: 38px; height: 59px;">[[File:Kit body.svg|top|link=|alt=]]</div>
<!-- Right arm -->
<div style="position: absolute; left: 69px; top: 0px; width: 31px; height: 59px; background-color: #{{{rightarm}}};color:inherit;">{{#if: {{{pattern_ra|}}}|{{#ifexist:Media:Kit right arm{{{pattern_ra}}}.{{{filetype|png}}} | [[File:Kit right arm{{{pattern_ra}}}.{{{filetype|png}}}|top|link=|alt=]] | [[Category:Pages using football kit with incorrect pattern parameters]] }}| }}</div>
<div style="position: absolute; left: 69px; top: 0px; width: 31px; height: 59px;">[[File:Kit right arm.svg|top|link=|alt=]]</div>
<!-- Shorts -->
<div style="position: absolute; left: 0px; top: 59px; width: 100px; height: 36px; background-color: #{{{shorts}}};color:inherit;">{{#if: {{{pattern_sh|}}}|{{#ifexist:Media:Kit shorts{{{pattern_sh}}}.{{{filetype|png}}} | [[File:Kit shorts{{{pattern_sh}}}.{{{filetype|png}}}|top|link=|alt=]] | [[Category:Pages using football kit with incorrect pattern parameters]] }}| }}</div>
<div style="position: absolute; left: 0px; top: 59px; width: 100px; height: 36px;">[[File:Kit shorts.svg|top|link=|alt=]]</div>
<!-- Socks -->{{#ifeq:{{{socks|}}}|none||
<div style="position: absolute; left: 0px; top: 95px; width: 100px; height: 40px; background-color: #{{{socks}}};color:inherit;">{{#if: {{{pattern_so|}}}|{{#ifexist:Media:Kit socks{{{pattern_so}}}.{{{filetype|png}}} | [[File:Kit socks{{{pattern_so}}}.{{{filetype|png}}}|top|link=|alt=]] | [[Category:Pages using football kit with incorrect pattern parameters]] }}| }}</div>
<div style="position: absolute; left: 0px; top: 95px; width: 100px; height: 40px;">[[File:Kit socks long.svg|top|link=|alt=]]</div>}}
</div>
<!-- Title -->
{{#if: {{{title|}}}|<div style="padding-top: 0.6em; text-align: center;">'''{{{title}}}'''</div>|}}
</div><!-- Preview warning -->{{#if: {{{pattern_la|}}}|{{#ifexist:Media:Kit left arm{{{pattern_la}}}.{{{filetype|png}}} || {{Preview warning|1=pattern_la="{{{pattern_la}}}", filetype="{{{filetype|png}}}" → {{Search link|File:Kit left arm{{{pattern_la}}}.{{{filetype|png}}} }} does not exist.}} }} }}{{#if: {{{pattern_b|}}}|{{#ifexist:Media:Kit body{{{pattern_b}}}.{{{filetype|png}}} || {{Preview warning|1=pattern_b="{{{pattern_b}}}", filetype="{{{filetype|png}}}" → {{Search link|File:Kit body{{{pattern_b}}}.{{{filetype|png}}} }} does not exist.}} }} }}{{#if: {{{pattern_ra|}}}|{{#ifexist:Media:Kit right arm{{{pattern_ra}}}.{{{filetype|png}}} || {{Preview warning|1=pattern_ra="{{{pattern_ra}}}", filetype="{{{filetype|png}}}" → {{Search link|File:Kit right arm{{{pattern_ra}}}.{{{filetype|png}}} }} does not exist.}} }} }}{{#if: {{{pattern_sh|}}}|{{#ifexist:Media:Kit shorts{{{pattern_sh}}}.{{{filetype|png}}} || {{Preview warning|1=pattern_sh="{{{pattern_sh}}}", filetype="{{{filetype|png}}}" → {{Search link|File:Kit shorts{{{pattern_sh}}}.{{{filetype|png}}} }} does not exist.}} }} }}{{#if: {{{pattern_so|}}}|{{#ifexist:Media:Kit socks{{{pattern_so}}}.{{{filetype|png}}} || {{Preview warning|1=pattern_so="{{{pattern_so}}}", filetype="{{{filetype|png}}}" → {{Search link|File:Kit socks{{{pattern_so}}}.{{{filetype|png}}} }} does not exist.}} }} }}<noinclude>
{{documentation}}
</noinclude>
6ezef1rqeqh6nmqinmxoepv25xjl030
Template:Football kit/doc
10
15876
74670
2026-09-10T16:05:44Z
B722N
6898
created template doc
74670
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE -->
{{high-use}}
{{expensive}}
{{Commons category|Football kit templates}}
The purpose of a football kit template is to show the look, feel, and design of an association football (or rugby) kit for both identification and historical purposes. For the most complete listing of templates available for use, see the [[commons:Category:Football kit templates|'''Football kit templates''']] category on Wikimedia Commons. Also, generic templates are available at '''[[Template:Football kit/pattern list]]'''.
== Specification ==
===Usage===
The most common usage is as a sub-template of an infobox such as '''{{tl|Infobox football club}}''', '''{{tl|Infobox football club season}}''', or '''{{tl|Infobox national football team}}''' in use on an article relating to a football club or an article relating to a club's season. In some instances, particularly in articles relating to noteworthy and high profile matches, the template can be used in a standalone instance by using '''{{tl|Football kit box}}'''.
===Example===
This template uses patterns (saved as partially transparent images on Commons) to cover solid blocks of color and render a complete kit. In the example below, the sleeves and shorts are dark red covered with white pattern, the body is white covered with red pattern, and the socks are white without pattern.
{{Football kit
| alt = Football kit (white jersey with two broad, red, red shorts with side-stripes; and white socks).
| pattern_la = _shouldersonwhiteandblue
| pattern_b = _redgradiantstripes
| pattern_ra = _shouldersonwhite
| pattern_sh = _adidaswhite
| pattern_so =
| leftarm = D80000
| body = FFFFFF
| rightarm = D80000
| shorts = D80000
| socks = FFFFFF
| title = Monarchs
}}
<syntaxhighlight lang="wikitext" style="overflow:auto;">
{{Football kit
| alt = Football kit (white jersey with two broad, red,no vertical stripes; red shorts with side-stripes; and white socks).\
| | pattern_sh = _adidaswhite
| pattern_so =
| leftarm = D80000
| body = FFFFFF
| rightarm = D80000
| shorts = D80000
| socks = FFFFFF
| title = Principal
}}
</syntaxhighlight>
===Parameters===
{{For|the available patterns|Template:Football kit/pattern list}}
The parameters for this template are as follows:
{{small|''Note: arm patterns are identified as left and right from the reader's point of view (as opposed to the shirt-wearer's point of view).''}}
{{Aligned table
|class=wikitable |col1style=font-family:monospace;padding-right:1.0em;
|row1header=on| Parameter | Description
| alt | alternative text for screen readers; see ''[[Wikipedia:Alternative text for images]]''
| pattern_la | pattern modifier for left arm
| pattern_b | pattern modifier for body
| pattern_ra | pattern modifier for right arm
| pattern_sh | pattern modifier for shorts
| pattern_so | pattern modifier for socks
| leftarm | color modifier for left arm
| body | color modifier for body
| rightarm | color modifier for right arm
| shorts | color modifier for shorts
| socks | color modifier for socks
| title | title that appears under the template as rendered
}}
If {{para|socks|none}}, the template does not output the kit socks.
You may specify the optional parameter {{para|filetype}} to use a different image format than the default PNG. For example, setting "filetype = svg" will direct the template to SVG files. When using this optional parameter, you must ensure that all of the images you want to use exist in the format that you select. Currently, most images only exist as PNG files and will not work with the SVG setting.
== Best practice ==
Whenever possible—for clubs of any stature—existing patterns should be used to render this template. Clubs that play in the highest level of competition within their country's league system (Premier League, La Liga, Serie A, MLS, etc.), however, may have an increased need for club and season specific templates to commensurate with the depth of information available for top flight clubs.
For any template change, attention should be paid to implement across Wikipedia sites worldwide. In particular, the [[:en:|English]], [[:nl:|Dutch]], [[:fr:|French]], [[:de:|German]], [[:it:|Italian]], [[:ja:|Japanese]], [[:pl:|Polish]], [[:pt:|Portuguese]], [[:ru:|Russian]], and [[:es:|Spanish]] sites should be updated anytime a template is changed or added. Additionally, when updating a club template for the current season, make sure to update both the "main" article for that club as well as the "current season" article for that club. Take extra caution when editing existing templates, many times multiple clubs will use the same template and an edit that works for one of the clubs may not work for another.
===Creating and naming a new pattern===
If you determine that a new pattern is necessary, use your image editor to create a new pattern including any details necessary to render the kit accurately. Templates for higher profile clubs should generally include more detail than those for lower profile clubs. For top flight clubs, the emphasis is on historical accuracy and season specific identification. For lower level clubs, the emphasis is on using generic templates and accurate representations of team colors.
Please follow the following rules for designing new patterns:
* Club badges, sponsor logos, and manufacturer logos should '''never''' be included.
* Every pattern '''must''' include a transparent field.
* Never include the word "transparent" in any file name.
* Each pattern must start with one of the following, as required:
** Kit_left_arm_
** Kit_body_
** Kit_right_arm_
** Kit_shorts_
** Kit_socks_
* Each pattern must end with .png or .svg (lower case).
====Generic patterns====
If you feel that the pattern that you are adding could be used for other clubs and is not specific to a particular club, you are creating a generic pattern.
Naming convention for the Kit_body_ patterns are described as follows:
* Multiple vertical lines are called '''stripes'''.
* Single vertical lines are called '''vertical'''.
* Multiple horizontal lines are called '''hoops'''.
* Single horizontal lines are called '''horizontal'''.
* Halves are called '''righthalf''' (where the pattern color is on the right as viewed) or '''lefthalf''' (where the pattern color is on the left as viewed).
* Sashes are called '''rightsash''' (/) or '''leftsash''' (\).
When creating generic Kit_body_ patterns, use the "''«color»«pattern identifier»''" naming structure, where:
* '''«color»''' is a word that clearly describes the color of the '''details added by your pattern'''.
* '''«pattern identifier»''' is a word that clearly describes the style of the details added by your pattern.
For example, the body template used in the example above is named ''Kit_body_redgradiantstripes.png''.
Alternatively, for generic Kit_body_ patterns, use the "''«pattern identifier»on«color»''" naming structure, where:
* '''«pattern identifier»''' is a word that clearly describes the style of the details added by your pattern.
* '''«color»''' is a word that clearly describes the color of the '''body of your pattern'''.
For example, the left sleeve template used in the example above is named ''Kit_left_arm_shouldersonwhite.png''.
For sleeves, shorts, and socks patterns, use a description best fits the design you are creating, while taking into account the guidelines above for naming the body patterns.
====Club-specific patterns====
If you feel that the pattern that you are adding could generally not be used by another club, you are creating a club-specific pattern. Please note that in many cases, the Kit_body_ pattern will be the only part that is necessary to customize (sleeves, shorts, and socks are frequently generic).
When creating club-specific patterns, use the ''«team identifier»«season identifier»«kit identifier»'' naming structure, where:
* '''«team identifier»''' is a word that clearly indicates the club for which the pattern was originally designed for.
* '''«season identifier»''' is a number that identifies the season for which the pattern was originally designed for (i.e. "1011" for most clubs or "2010" for MLS clubs).
* '''«kit identifier»''' is the letter h, a, or t to identify whether the pattern is for a home, away, or third kit.
For example, the body of the 2010/11 home kit for [[Wigan Athletic F.C.]] should be named ''Kit_body_wigan1011h.png''.
===Uploading a pattern===
Once your pattern has been created, upload the file to [[Commons:Upload|'''Wikimedia Commons''']] and categorize your new pattern as appropriate. Do not place a pattern into both a category and the parent category (e.g., categorize the pattern in 'Football kit body/crosses', not in both 'Football kit body/crosses' ''and'' 'Football kit templates'). Each pattern should be assigned to a '''single category'''.
== Tracking category ==
* {{clc|Pages using football kit with incorrect pattern parameters}}
== See also ==
{{Commons category|Football kit templates}}
<!--{{Commons category-inline|Football kit templates}}-->
* {{tl|Handball kit}}
* {{tl|Basketball kit}}
* [[Template:Infobox football club]]
* [[Template:Infobox football club season]]
* [[Template:Infobox national football team]]
* [[Template:Infobox rugby team]]
<includeonly>{{Sandbox other|
| <!--Categories below this line, please; interwikis at Wikidata-->
[[Category:"Template:Football kit" materials| ]]
[[Category:Association football infobox templates]]
[[Category:Rugby union templates]]
[[Category:Kit and uniform templates]]
}}</includeonly>
6dfwi5apk4a1mh9fkipqtzh564ivv5g
Template:Commons category
10
15877
74671
2026-09-10T16:06:37Z
B722N
6898
created template
74671
wikitext
text/x-wiki
{{Sister project
| position = {{{position|}}}
| project = commons
| text = Wikimedia Commons has {{{alt-term|media related to}}} {{#invoke:Commons link|getCategory|{{{1|}}}|linktext={{{2|}}}|<!--
-->nowrap={{{nowrap|}}}|italic={{{italic|1}}}|lcfirst={{{lcfirst|}}}|bold=1|tracking=1|qid={{{qid|}}}}}.}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
o1gcbgfxh3mjnj0bdmj4us6uqyut28l
Template:Commons category/doc
10
15878
74672
2026-09-10T16:06:58Z
B722N
6898
created template doc
74672
wikitext
text/x-wiki
{{Documentation subpage}}
{{High-use|all-pages=yes}}
{{Lua|Module:Commons link}}
<!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). -->
{{redirect|Template:CC|Creative Commons templates|Category:Creative Commons copyright templates}}
{{hatnote|This template is part of [[Wikipedia:Wikimedia sister projects|Wikimedia sister projects]].}}
{{tlb|Commons category}} links to a "Category:" name in the [[Wikimedia Commons]] repository that corresponds to the article or category. If the Commons category name is misspelled or missing, the link will still appear "[[Help:Link color|blue]]" even though the link will fail. Check the existence of the category on Commons as well as the spelling of names carefully. That said, {{No ping|Pi bot}} will attempt to fix or remove links to non-existent categories. In articles, this template should be placed at the top of the last section on the page so that it floats to the right of that section. A warning will appear if the Commons link is not on Wikidata.
{{tsh|Ccat|Commonscat|Cc}}
== Usage ==
{| style="clear:right"
|-
| {{tl2|Commons category}} || – || Fetches the Commons sitelink from Wikidata (where available)
|-
| {{tl2|Commons category|''catname''}} || – || Puts link-box connecting title ''catname''
|-
| {{tl2|Commons category|''catname''|''showname''}} || – || Puts link-box showing the title ''showname''
|-
| {{tl2|Commons category|''catname''|3=position=left}} || style="vertical-align:top;" | – || Floats link-box to the left side, as option to align box to left-margin
|-
| {{tl2|Commons category|3=nowrap=yes}} || style="vertical-align:top;" | – || Stops the text of the Commons category from wrapping
|-
| {{tl2|Commons category|3=lcfirst=yes}} || style="vertical-align:top;" | – || Displays the first letter as lower-case
|-
| {{tl2|Commons category|3=italic=no}} || style="vertical-align:top;" | – || Turn off italics for displayed text
|}
The two parameters ''catname'' and ''showname'' (1 & 2) are optional, and are intended for cases where the Commons category name is different from the Wikipedia page name. The first parameter is the name of the corresponding category on the Wikimedia Commons, ''without'' the "<code>Category:</code>" prefix. If this first parameter is used, then the template will display the Commons category name, which may be confusing to readers. This text can be overridden by the second parameter, where the Wikipedia page name would typically be used.
{{Commons category|Ursus maritimus|Polar bears}}
For example, on the [[Polar bear]] page, {{tlc|Commons category|Ursus maritimus|Polar bears}} produces a link to [[Commons:Category:Ursus maritimus]] displayed as "[[Commons:Category:Ursus maritimus|Polar bears]]".
The parameter {{para|position}} accepts one value, {{para|position|left}}, that moves the box to the left side, instead of the default right side. More information may be found at [[Template:Side box]].
== Location ==
<!-- Red messages in preview mode link to this section. -->
{{Commons templates location}}
== Resolving discrepancies ==
This template compares locally-defined values against the interwiki links to Commons stored on Wikidata. The discrepancies are highlighted through the addition of [[#Maintenance categories|maintenance categories]]. Pages can be removed from the tracking categories by correcting the local link; removing misplaced template uses; fixing the sitelinks on Wikidata; or expanding the category system on Commons. A workaround is to switch to {{tl|Commons category multi}}, but
ideally there should be one Commons category link per article, and it should be easy for readers to identify the related content on Commons. Some suggested approaches are:
The link is to a more general topic than the article:
# Is there a more specific Commons category that could be linked to instead?
# If not, could it be created with images connected to the article?
# Or if there aren't any images connected to the article on Commons, could the Commons category link be removed?
There are links to multiple Commons categories in the article:
# Could they be replaced by a single Commons category that has the rest as subcategories?
# Do all of the Commons categories still exist?
# Are they all necessary, or could they be removed?
The Commons category links back to the wrong Wikipedia article:
# Can you move the sitelink to the Wikidata item for the article?
== Tracking categories ==
=== Normal categories ===
* {{clc|Commons category link from Wikidata}}
* {{clc|Commons category link is on Wikidata}}
=== Maintenance categories ===
* {{clc|Commons category link is defined as the pagename}}
* {{clc|Commons category link is locally defined}}
* {{clc|Commons category link is the pagename}}
* {{clc|Inconsistent wikidata for Commons category}}
== TemplateData ==
{{TemplateData header}}
<TemplateData>
{
"description": "This template creates a small box containing a link to a category on Commons. If no value is provided the Commons category value from Wikidata is used, and if none was provided there then the page name is used.",
"params": {
"1": {
"label": "Category name",
"description": "The name of the Commons category this template will link to. If no value is provided the Commons category value from Wikidata is used, and if none was provided there then the page name is used.",
"type": "string",
"required": false
},
"2": {
"label": "Displayed text",
"description": "The text that the link will display to the user. If no value is provided it will default to category name or page name, in that order.",
"type": "string",
"required": false
},
"position": {
"label": "Position",
"description": "When set to 'left', the template will be positioned on the left side of the page. Otherwise it will default to the right side.",
"type": "string",
"required": false
},
"nowrap": {
"label": "nowrap",
"description": "Stops the text of the Commons category from wrapping",
"type": "string",
"required": false
},
"lcfirst": {
"label": "lcfirst",
"description": "Displays the first letter as lower-case",
"type": "string",
"required": false
}
}
}
</TemplateData>
== Redirects ==
* {{Tl|C cat}}
* {{Tl|Category commons}}
* {{Tl|Category Commons}}
* {{Tl|Cc}}
* {{Tl|Ccat}}
* {{Tl|Commons cat}}
* {{Tl|Commonscat}}
* {{Tl|Commonscategory}}
* {{Tl|Commonsimages cat}}
* {{Tl|Wikimedia commons cat}}
== See also ==
{{Commons templates see also}}
<includeonly>{{Sandbox other||
<!-- Categories go below this line, please; interwikis go to Wikidata, thank you! -->
[[Category:Interwiki category linking templates]]
[[Category:Interwiki link sidebar templates]]
[[Category:Wikimedia Commons templates|category]]
[[Category:Templates that add a tracking category]]
}}</includeonly>
srdeonb2f10fvtjp5fn3zo4mt1zzjyr