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|&lrm;&lt;|class="p"}}{{#tag:span|{{{1|tag}}}|class="nt"}}{{#if:{{{params|}}}|&#32;{{{params}}}}} }}{{#switch:{{{2|pair}}} |c|close = {{{content|}}} |s|single = &#32;{{#tag:span|&#47;&gt;|class="p"}} |o|open = {{#tag:span|&gt;|class="p"}}{{{content|}}} |p|pair = {{#tag:span|&gt;|class="p"}}{{{content|...}}} }}{{#switch:{{{2|pair}}} |s|single |o|open = <!--nothing--> |c|close |p|pair = {{#tag:span|&lrm;&lt;&#47;|class="p"}}{{#tag:span|{{{1|tag}}}|class="nt"}}{{#tag:span|&gt;|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|&lrm;&lt;|class="p"}}{{#tag:span|{{{1|tag}}}|class="nt"}}{{#if:{{{params|}}}|&#32;{{{params}}}}} }}{{#switch:{{{2|pair}}} |c|close = {{{content|}}} |s|single = &#32;{{#tag:span|&#47;&gt;|class="p"}} |o|open = {{#tag:span|&gt;|class="p"}}{{{content|}}} |p|pair = {{#tag:span|&gt;|class="p"}}{{{content|...}}} }}{{#switch:{{{2|pair}}} |s|single |o|open = <!--nothing--> |c|close |p|pair = {{#tag:span|&lrm;&lt;&#47;|class="p"}}{{#tag:span|{{{1|tag}}}|class="nt"}}{{#tag:span|&gt;|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;">&#123;&#123;{{#if:{{{1|}}}|{{{1}}}| tlf&#124;...}}<!-- -->{{#ifeq:{{{2|x}}}|{{{2|}}}| &#124;{{{2}}} | }}<!-- -->{{#ifeq:{{{3|x}}}|{{{3|}}}| &#124;{{{3}}} | }}<!-- -->{{#ifeq:{{{4|x}}}|{{{4|}}}| &#124;{{{4}}} | }}<!-- -->{{#ifeq:{{{5|x}}}|{{{5|}}}| &#124;{{{5}}} | }}<!-- -->{{#ifeq:{{{6|x}}}|{{{6|}}}| &#124;{{{6}}} | }}<!-- -->{{#ifeq:{{{7|x}}}|{{{7|}}}| &#124;{{{7}}} | }}<!-- -->{{#ifeq:{{{8|x}}}|{{{8|}}}| &#124;{{{8}}} | }}<!-- -->{{#ifeq:{{{9|x}}}|{{{9|}}}| &#124;{{{9}}} | }}<!-- -->&#125;&#125;</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&#32; |am = ከዚህ ጋር መምታታት የለበትም፦&#32; |ar = لا ينبغي الخلط مع<!--x-->&#32; |be = Не блытаць с&#32; |be-tarask = Ня блытаць з&#32; |bg = Не се бъркайте&#32; |bn = এটি সাথে বিভ্রান্ত হবেন না&#32; |bs = Da se ne zbunjujem sa&#32; |ca = No confondre amb&#32; |ceb = Dili malibog&#32; |cs = Nezaměňujte s{{Colon|lang = cs}} |da = Ikke forveksles med&#32; |de = Nicht zu verwechseln mit&#32; |el = Να μην συγχέεται με&#32; |en = Not to be confused with&#32; |eo = Ne konfuzu kun&#32; |es = No confundir con&#32; |et = Ärge segage&#32; |eu = Ez nahastu behar&#32; |fa = اشتباه نشود با<!--x-->&#32; |fi = Eri kuin&#32; |fr = Ne pas confondre avec&#32; |gl = Non se debe confundir con&#32; |he = אין לבלבל עם<!--x-->&#32; |hi = इससे भ्रमित न करें{{Colon|lang = hi}} |hr = Razlikovati od pojma&#32; |hu = Nem tévesztendő össze{{Colon|lang = hu}} |hy = Չի շփոթված&#32; |id = Jangan dikelirukan&#32; |it = Da non confondere con&#32; |ja = 下記とは異なります{{Colon|lang = ja}} |ka = არ იყოს დაბნეული&#32; |kk = Шатастыруға болмайды&#32; |ko = 혼동하지 말 것{{colon|lang = ko}} |ky = менен чаташтырбоо керек&#32; |la = Non confundendae sunt&#32; |lb = Net ze verwiessele mat&#32; |lt = Negalima painioti su&#32; |lv = Nevajadzētu sajaukt ar&#32; |mg = Tsy tokony hifangaro amin'ny&#32; |mk = Да не се меша со&#32; |ml = ഇതുമായി ആശയക്കുഴപ്പമുണ്ടാകരുത്{{Colon|lang = ml}} |mwl = Nun cunfundir cun&#32; |nds = Nich to verwesseln mit&#32; |nl = Niet te verwarren met&#32; |no = Ikke forveksles med&#32; |pl = Nie należy mylić z&#32; |pt = Não confundir com&#32; |ro = Nu trebuie confundat cu&#32; |ru = Не следует путать с&#32; |sd = ان سان پريشان نه ٿيو{{Colon|lang = sd}} |sk = Nesmie sa zamieňať&#32; |sl = Ne zamenjajte s/z&#32; |sq = Nuk duhet të ngatërrohet&#32; |sr = Да се не збуњују&#32; |sv = Ej att förväxla med&#32; |ta = குழப்பமடையக்கூடாது&#32; |tg = Бо хашмгин нашавед&#32; |th = ระวังสับสนกับ&#32; |tr = Şununla karıştırılmamalı{{Colon|lang = tr}} |uk = Не варто плутати з&#32; |ur = اس کے ساتھ الجھن میں نہ پڑیں{{Colon|lang = ur}} |uz = U bilan aralashmaslik kerak&#32; |vi = Không được nhầm lẫn với&#32; |zh-hans = 本页面或章节的主题不是 |zh-hant = 本頁面或章節的主題不是 |default = Not to be confused with&#32; }}{{Conj |type = or |1 = {{#if: {{{1|}}} | <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category | Category:{{PAGENAME:{{{1|}}}}} | {{FULLPAGENAME:{{{1|}}}}} }}|{{PAGENAME:{{{1|}}}}}]]</bdi> | ...[<noinclude>&zwnj;</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>&zwnj;</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> |-|–|— = &#32;–&#x202F;<bdi>{{Str right|{{{text|}}}|1}}</bdi> |#default = &#32;<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&#32; |am = ከዚህ ጋር መምታታት የለበትም፦&#32; |ar = لا ينبغي الخلط مع<!--x-->&#32; |be = Не блытаць с&#32; |be-tarask = Ня блытаць з&#32; |bg = Не се бъркайте&#32; |bn = এটি সাথে বিভ্রান্ত হবেন না&#32; |bs = Da se ne zbunjujem sa&#32; |ca = No confondre amb&#32; |ceb = Dili malibog&#32; |cs = Nezaměňujte s{{Colon|lang = cs}} |da = Ikke forveksles med&#32; |de = Nicht zu verwechseln mit&#32; |el = Να μην συγχέεται με&#32; |en = Not to be confused with&#32; |eo = Ne konfuzu kun&#32; |es = No confundir con&#32; |et = Ärge segage&#32; |eu = Ez nahastu behar&#32; |fa = اشتباه نشود با<!--x-->&#32; |fi = Eri kuin&#32; |fr = Ne pas confondre avec&#32; |gl = Non se debe confundir con&#32; |he = אין לבלבל עם<!--x-->&#32; |hi = इससे भ्रमित न करें{{Colon|lang = hi}} |hr = Razlikovati od pojma&#32; |hu = Nem tévesztendő össze{{Colon|lang = hu}} |hy = Չի շփոթված&#32; |id = Jangan dikelirukan&#32; |it = Da non confondere con&#32; |ja = 下記とは異なります{{Colon|lang = ja}} |ka = არ იყოს დაბნეული&#32; |kk = Шатастыруға болмайды&#32; |ko = 혼동하지 말 것{{colon|lang = ko}} |ky = менен чаташтырбоо керек&#32; |la = Non confundendae sunt&#32; |lb = Net ze verwiessele mat&#32; |lt = Negalima painioti su&#32; |lv = Nevajadzētu sajaukt ar&#32; |mg = Tsy tokony hifangaro amin'ny&#32; |mk = Да не се меша со&#32; |ml = ഇതുമായി ആശയക്കുഴപ്പമുണ്ടാകരുത്{{Colon|lang = ml}} |mwl = Nun cunfundir cun&#32; |nds = Nich to verwesseln mit&#32; |nl = Niet te verwarren met&#32; |no = Ikke forveksles med&#32; |pl = Nie należy mylić z&#32; |pt = Não confundir com&#32; |ro = Nu trebuie confundat cu&#32; |ru = Не следует путать с&#32; |sd = ان سان پريشان نه ٿيو{{Colon|lang = sd}} |sk = Nesmie sa zamieňať&#32; |sl = Ne zamenjajte s/z&#32; |sq = Nuk duhet të ngatërrohet&#32; |sr = Да се не збуњују&#32; |sv = Ej att förväxla med&#32; |ta = குழப்பமடையக்கூடாது&#32; |tg = Бо хашмгин нашавед&#32; |th = ระวังสับสนกับ&#32; |tr = Şununla karıştırılmamalı{{Colon|lang = tr}} |uk = Не варто плутати з&#32; |ur = اس کے ساتھ الجھن میں نہ پڑیں{{Colon|lang = ur}} |uz = U bilan aralashmaslik kerak&#32; |vi = Không được nhầm lẫn với&#32; |zh-hans = 本页面或章节的主题不是 |zh-hant = 本頁面或章節的主題不是 |default = Not to be confused with&#32; }}{{Conj |type = or |1 = {{#if: {{{1|}}} | <bdi style="font-style:normal">[[:{{#ifeq: {{NAMESPACE}} | Category | Category:{{PAGENAME:{{{1|}}}}} | {{FULLPAGENAME:{{{1|}}}}} }}|{{PAGENAME:{{{1|}}}}}]]</bdi> | ...[<noinclude>&zwnj;</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>&zwnj;</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> |-|–|— = &#32;–&#x202F;<bdi>{{Str right|{{{text|}}}|1}}</bdi> |#default = &#32;<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}}}}}}">&nbsp;</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|}}}}}}">&nbsp;</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}}}}}}">&nbsp;</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|}}}}}}">&nbsp;</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&nbsp;– 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&nbsp;– 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 &amp;#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 &lt;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=]]&nbsp;'''<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=]]&nbsp;'''<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&#32;' .. word elseif p.vowelfirst(raw) then return 'de l’' .. word elseif string.sub(gender or '',1,1)=='f' then -- gender == 'feminine' return 'de la&#32;' .. word else return 'du&#32;' .. word end else if p.vowelfirst(raw) then return 'd’' .. word else return 'de&#32;' .. 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&#32;' .. word elseif p.vowelfirst(raw) then return 'de l’' .. word elseif string.sub(gender or '',1,1)=='f' then -- gender == 'feminine' return 'de la&#32;' .. word else return 'du&#32;' .. word end else if p.vowelfirst(raw) then return 'd’' .. word else return 'de&#32;' .. 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=&#123;&#123;}}<!-- -->{{#switch:{{{2|}}}|+|-|={{#switch:{{{1|}}}|+|-|={{PAGENAME}}|{{PAGENAME:{{{1}}}}}}}|{{{2}}}}}<!-- when "link=no": just display -->{{#if:{{{parm|}}}|&#124;{{{parm}}}}}<!-- optional parm display -->{{#switch:{{{incl|{{{i|}}}}}}|0|1|2|3|4|5|6=&#125;&#125;}}<!-- -->{{#switch:{{{incl|{{{i|}}}}}}|3=</span>}}<!-- -->|{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=|{{#switch:{{{incl|{{{i|}}}}}}|0|4=&#123;&#123;|1|5=&#123;}}}}<!-- when +: not outside -->[[:{{#switch:{{{3|}}}|+|-|=|{{trim|{{{3}}}}}&#58;}}<!-- 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=&#123;&#123;|1|5=&#123;}}<!-- -->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{incl|{{{i|}}}}}}|0|4=&#123;&#123;|1|5=&#123;}}}}<!-- 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:&#124;|{{padleft:|1|{{{parm}}}}}|{{padleft:|6|{{{parm}}}}}=|&#124;}}{{{parm}}}}}<!-- opt. parm -->{{#switch:{{{incl|{{{i|}}}}}}|4|5|6|9=</kbd>}}{{#if:{{{code|}}}|</code>}}<!-- typewrite/code end -->{{#switch:{{{incl|{{{i|}}}}}}|2|3|6=&#125;&#125;|1|5=&#125;}}<!-- -->{{#switch:{{{incl|{{{i|}}}}}}|3=</span>}}<!-- -->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{incl|{{{i|}}}}}}|0|4=&#125;&#125;|1|5=&#125;}}}}<!-- inside -->]]{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=|{{#switch:{{{incl|{{{i|}}}}}}|0|4=&#125;&#125;|1|5=&#125;}}}}}}<!-- not outside -->{{#ifeq:{{lc:{{{code}}}}}|tt|</code>}}<!-- code end -->{{#if:{{{full|{{#ifeq:{{{5}}}|full|1}}}}}|<span class="plainlinks"><!-- -->&#160;<kbd>(</kbd><small>[{{fullurl:Template:{{{1|{{PAGENAME}}}}}}} {{int:view}}]<!-- -->&#160;&#8226;&#160;[{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=edit}} {{int:edit}}]<!-- -->&#160;&#8226;&#160;[[:Template talk:{{{1|{{PAGENAME}}}}}|{{int:talk}}]]<!-- -->&#160;&#8226;&#160;[{{fullurl:Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|limit=500}} Links]<!-- {{int:links}} needs fix -->&#160;&#8226;&#160;[{{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=&#123;&#123;}}<!-- -->{{#switch:{{{2|}}}|+|-|={{#switch:{{{1|}}}|+|-|={{PAGENAME}}|{{PAGENAME:{{{1}}}}}}}|{{{2}}}}}<!-- when "link=no": just display -->{{#if:{{{parm|}}}|&#124;{{{parm}}}}}<!-- optional parm display -->{{#switch:{{{incl|{{{i|}}}}}}|0|1|2|3|4|5|6=&#125;&#125;}}<!-- -->{{#switch:{{{incl|{{{i|}}}}}}|3=</span>}}<!-- -->|{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=|{{#switch:{{{incl|{{{i|}}}}}}|0|4=&#123;&#123;|1|5=&#123;}}}}<!-- when +: not outside -->[[:{{#switch:{{{3|}}}|+|-|=|{{trim|{{{3}}}}}&#58;}}<!-- 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=&#123;&#123;|1|5=&#123;}}<!-- -->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{incl|{{{i|}}}}}}|0|4=&#123;&#123;|1|5=&#123;}}}}<!-- 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:&#124;|{{padleft:|1|{{{parm}}}}}|{{padleft:|6|{{{parm}}}}}=|&#124;}}{{{parm}}}}}<!-- opt. parm -->{{#switch:{{{incl|{{{i|}}}}}}|4|5|6|9=</kbd>}}{{#if:{{{code|}}}|</code>}}<!-- typewrite/code end -->{{#switch:{{{incl|{{{i|}}}}}}|2|3|6=&#125;&#125;|1|5=&#125;}}<!-- -->{{#switch:{{{incl|{{{i|}}}}}}|3=</span>}}<!-- -->{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}={{#switch:{{{incl|{{{i|}}}}}}|0|4=&#125;&#125;|1|5=&#125;}}}}<!-- inside -->]]{{#switch:+|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}=|{{#switch:{{{incl|{{{i|}}}}}}|0|4=&#125;&#125;|1|5=&#125;}}}}}}<!-- not outside -->{{#ifeq:{{lc:{{{code}}}}}|tt|</code>}}<!-- code end -->{{#if:{{{full|{{#ifeq:{{{5}}}|full|1}}}}}|<span class="plainlinks"><!-- -->&#160;<kbd>(</kbd><small>[{{fullurl:Template:{{{1|{{PAGENAME}}}}}}} {{int:view}}]<!-- -->&#160;&#8226;&#160;[{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=edit}} {{int:edit}}]<!-- -->&#160;&#8226;&#160;[[:Template talk:{{{1|{{PAGENAME}}}}}|{{int:talk}}]]<!-- -->&#160;&#8226;&#160;[{{fullurl:Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|limit=500}} Links]<!-- {{int:links}} needs fix -->&#160;&#8226;&#160;[{{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|}}}}}|&#91;|&#123;=[[Category:Maintenance:Template W error]]{{color|red|'''Template W: parameter error'''}}<!-- -->|{{#switch:{{{link|&#06;}}}|none=<!-- -->|no|n|-|={{#if:{{{2|}}}|{{#switch:{{{2}}}|+|c={{{1}}}|{{{2}}}}}|{{{1|{{Projectname|w}}}}}}}<!-- option for only text without link -->|&#06;=[[:{{#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}}}}}}}<!-- &#58; -->|{{#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|}}}}}|&#91;|&#123;=[[Category:Maintenance:Template W error]]{{color|red|'''Template W: parameter error'''}}<!-- -->|{{#switch:{{{link|&#06;}}}|none=<!-- -->|no|n|-|={{#if:{{{2|}}}|{{#switch:{{{2}}}|+|c={{{1}}}|{{{2}}}}}|{{{1|{{Projectname|w}}}}}}}<!-- option for only text without link -->|&#06;=[[:{{#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}}}}}}}<!-- &#58; -->|{{#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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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||&#32;}} | 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) -->&#x6D4;{{#ifeq:{{{nospace|}}}|y||&#32;}} | Armn = <!-- U+0589 Armenian full stop (it's NOT an ASCII colon!) -->։{{#ifeq:{{{nospace|}}}|y||&#32;}} | Beng | Deva | Guru | Gujr | Knda | Mlym | Orya | Sinh | Taml | Telu | Deva-Pe-Zs = <!-- U+0964 Devanagari Danda -->।{{#ifeq:{{{nospace|}}}|y||&#32;}} | Bpmf | Hani | Hans | Hant | Jpan | Phpa | Hani-Pe = &#x3002; | Khmr | Khmr-Pe-Zs = <!-- U+17D4 Khmer sign Khan -->។{{#ifeq:{{{nospace|}}}|y||&#32;}} | Latn-Zs-i-Zs = &nbsp;i{{#ifeq:{{{nospace|}}}|y||&#32;}} | Thai | Zinh-space = &#32; }}<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||&#32;}} | 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) -->&#x6D4;{{#ifeq:{{{nospace|}}}|y||&#32;}} | Armn = <!-- U+0589 Armenian full stop (it's NOT an ASCII colon!) -->։{{#ifeq:{{{nospace|}}}|y||&#32;}} | Beng | Deva | Guru | Gujr | Knda | Mlym | Orya | Sinh | Taml | Telu | Deva-Pe-Zs = <!-- U+0964 Devanagari Danda -->।{{#ifeq:{{{nospace|}}}|y||&#32;}} | Bpmf | Hani | Hans | Hant | Jpan | Phpa | Hani-Pe = &#x3002; | Khmr | Khmr-Pe-Zs = <!-- U+17D4 Khmer sign Khan -->។{{#ifeq:{{{nospace|}}}|y||&#32;}} | Latn-Zs-i-Zs = &nbsp;i{{#ifeq:{{{nospace|}}}|y||&#32;}} | Thai | Zinh-space = &#32; }}<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 ), '&nbsp;<b>·</b>&#32;' ); 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 ), '&nbsp;<b>·</b>&#32;' ); 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>]&nbsp;<b>∙</b>&#32;<!--\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>]]&nbsp;<b>∙</b>&#32;<!--\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>]]&nbsp;<b>∙</b>&#32;}}' } }) end } } local pages = language_subpages( frame, function( title, page, code, langname ) return mw.ustring.format( '[[%s/%s|<bdi lang="%s">%s</bdi>]]</span>&nbsp;<b>∙</b>&#32;', 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>]]&nbsp;<b>∙</b>&#32;}}' } }) ) 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>]]&nbsp;<b>∙</b>&#32;' .. '[[Module:Languages/testcases/test/en|<bdi lang="en">English</bdi>]]&nbsp;<b>∙</b>&#32;' 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 ), '&nbsp;<b>·</b>&#32;' ); 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 ), '&nbsp;<b>·</b>&#32;' ); 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>]&nbsp;<b>∙</b>&#32;<!--\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>]]&nbsp;<b>∙</b>&#32;<!--\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>]]&nbsp;<b>∙</b>&#32;}}' } }) end } } local pages = language_subpages( frame, function( title, page, code, langname ) return mw.ustring.format( '[[%s/%s|<bdi lang="%s">%s</bdi>]]</span>&nbsp;<b>∙</b>&#32;', 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>]]&nbsp;<b>∙</b>&#32;}}' } }) ) 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>]]&nbsp;<b>∙</b>&#32;' .. '[[Module:Languages/testcases/test/en|<bdi lang="en">English</bdi>]]&nbsp;<b>∙</b>&#32;' 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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;<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=]]&nbsp;<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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]]&nbsp;'''<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=&nbsp;of {{{from}}}|ja=({{{from}}})|zh-hans=,基于&nbsp;{{{from}}}|zh=hant=,基於&nbsp;{{{from}}}|default=&nbsp;{{{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]]&nbsp;'''<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=&nbsp;of {{{from}}}|ja=({{{from}}})|zh-hans=,基于&nbsp;{{{from}}}|zh=hant=,基於&nbsp;{{{from}}}|default=&nbsp;{{{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">&#91;&#x202F;{{#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|}}}}}]&nbsp;'''·'''<!-- --> [{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}|action=edit}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|edit-link-display|fallback={{{edit|}}}}}]&nbsp;'''·'''<!-- --> [{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}|action=history}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|history-link-display|fallback={{{history|}}}}}]&nbsp;'''·'''<!-- --> | <!-- -->[{{fullurl:{{transclude|{{{1|{{DocPageName}}}}}}}|action=edit&preload=Template:Documentation/preload}} {{#invoke:TNT|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|create-link-display}}]&nbsp;'''·'''<!-- --> }} }}<!-- --> [{{fullurl:{{FULLPAGENAME}}|action=purge}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|purge-link-display|fallback={{{purge|}}}}}]<!-- -->&#x202F;&#93;</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) &mdash; {{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">&#91;&#x202F;{{#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|}}}}}]&nbsp;'''·'''<!-- --> [{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}|action=edit}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|edit-link-display|fallback={{{edit|}}}}}]&nbsp;'''·'''<!-- --> [{{fullurl:{{Transclude|{{{1|{{DocPageName}}}}}}}|action=history}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|history-link-display|fallback={{{history|}}}}}]&nbsp;'''·'''<!-- --> | <!-- -->[{{fullurl:{{transclude|{{{1|{{DocPageName}}}}}}}|action=edit&preload=Template:Documentation/preload}} {{#invoke:TNT|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|create-link-display}}]&nbsp;'''·'''<!-- --> }} }}<!-- --> [{{fullurl:{{FULLPAGENAME}}|action=purge}} {{#invoke:TNTFallback|msg|lang={{{lang|{{Int:Lang}}}}}|I18n/Documentation.tab|purge-link-display|fallback={{{purge|}}}}}]<!-- -->&#x202F;&#93;</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) &mdash; {{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>&lrm;useTemplateData=1</nowiki></code> or <code><nowiki>&lrm;useTemplateData=only</nowiki></code> on the <code><nowiki>&lrm;/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>&lrm;useTemplateData=1</nowiki></code> or <code><nowiki>&lrm;useTemplateData=only</nowiki></code> on the <code><nowiki>&lrm;/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 = ('&nbsp;'):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 = ('&nbsp;'):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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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&nbsp;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&nbsp;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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''{{{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=]]&nbsp;'''{{{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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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]]&nbsp;'''{{{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]]&nbsp;'''{{{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|}}}}}}}}}}}}|(|&#32;}}{{#if:{{{3|{{{from|}}}}}}|{{#if:{{{4|{{{to|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|改名元:{{cl|{{{3|{{{from}}}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|{{#if:{{{3|{{{from|}}}}}}|&#32;→&#32;|改名先:}}|}} |ko=분류 이동 {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|&#32;→&#32;|}} |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|}}}|&#32;|{{LangSwitch|lang={{#if:{{{2|{{{lang|}}}}}}|{{{2|{{{lang}}}}}}|{{int:Lang}}}}|ja={{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|)|&#32;}}|default=&#32;}}}}'''<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|}}}}}}}}}}}}|(|&#32;}}{{#if:{{{3|{{{from|}}}}}}|{{#if:{{{4|{{{to|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|改名元:{{cl|{{{3|{{{from}}}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|{{#if:{{{3|{{{from|}}}}}}|&#32;→&#32;|改名先:}}|}} |ko=분류 이동 {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|&#32;→&#32;|}} |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|}}}|&#32;|{{LangSwitch|lang={{#if:{{{2|{{{lang|}}}}}}|{{{2|{{{lang}}}}}}|{{int:Lang}}}}|ja={{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|)|&#32;}}|default=&#32;}}}}'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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|}}}}}}}}}}}}|(|&#32;}}{{#if:{{{1|{{{from|}}}}}}|{{#if:{{{2|{{{to|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|統合元:[[:Category:{{{1|{{{from|}}}}}}]]}}|}}{{#if:{{{2|{{{to|}}}}}}|{{#if:{{{1|{{{from|}}}}}}|&#32;→&#32;[[:Category:{{{2|{{{to|}}}}}}]]|統合先:[[:Category:{{{2|{{{to|}}}}}}]]}}|}}{{#if:{{{1|{{{from|{{{2|{{{to|}}}}}}}}}}}}|)|}} |ko=통합 {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|&#32;→&#32;[[: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|}}}}}}}}}}}}|(|&#32;}}{{#if:{{{1|{{{from|}}}}}}|{{#if:{{{2|{{{to|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|統合元:[[:Category:{{{1|{{{from|}}}}}}]]}}|}}{{#if:{{{2|{{{to|}}}}}}|{{#if:{{{1|{{{from|}}}}}}|&#32;→&#32;[[:Category:{{{2|{{{to|}}}}}}]]|統合先:[[:Category:{{{2|{{{to|}}}}}}]]}}|}}{{#if:{{{1|{{{from|{{{2|{{{to|}}}}}}}}}}}}|)|}} |ko=통합 {{#if:{{{1|{{{from|}}}}}}|[[:Category:{{{1|{{{from|}}}}}}]]|}} {{#if:{{{2|{{{to|}}}}}}|&#32;→&#32;[[: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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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]]&nbsp;'''{{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|}}}}}}}}}}}}|(|&#32;}}{{#if:{{{3|{{{from|}}}}}}|{{#if:{{{4|{{{to|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|転送元:{{cl|{{{3|{{{from}}}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|{{#if:{{{3|{{{from|}}}}}}|&#32;→&#32;{{cl|{{{4|{{{to}}}}}}}}|転送先:{{cl|{{{4|{{{to}}}}}}}}}}|}}{{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|)|}} | ko = 넘겨주기 {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|&#32;→&#32;{{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]]&nbsp;'''{{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|}}}}}}}}}}}}|(|&#32;}}{{#if:{{{3|{{{from|}}}}}}|{{#if:{{{4|{{{to|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|転送元:{{cl|{{{3|{{{from}}}}}}}}}}|}}{{#if:{{{4|{{{to|}}}}}}|{{#if:{{{3|{{{from|}}}}}}|&#32;→&#32;{{cl|{{{4|{{{to}}}}}}}}|転送先:{{cl|{{{4|{{{to}}}}}}}}}}|}}{{#if:{{{3|{{{from|{{{4|{{{to|}}}}}}}}}}}}|)|}} | ko = 넘겨주기 {{#if:{{{3|{{{from|}}}}}}|{{cl|{{{3|{{{from}}}}}}}}|}} {{#if:{{{4|{{{to|}}}}}}|&#32;→&#32;{{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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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=|✓]]&nbsp;<!-- -->'''<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=|✓]]&nbsp;<!-- -->'''<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=]]&nbsp;'''<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=]]&nbsp;'''<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&nbsp;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 === &mdash;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 === &mdash;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 === &mdash;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 &ndash;ISO 639 language code&ndash;. :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 &ndash;<code>Template:<var>Template name</var></code>&ndash;. 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 &ndash;<code>Template:<var>Template name</var>/layout</code>&ndash;.<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>&lt;noinclude&gt;</code> tag. Here is the syntax you must use for <code>Template:<var>Template name</var>/&lt;<var>prefix</var>&gt;</code>. <nowiki>{{</nowiki><code><var>Template name</var>/layout</code> |text=&lt;''translated text of the template''&gt; |lang=&lt;''prefix''&gt; <nowiki>}}&lt;noinclude> {{translated tag|license}} &lt;/noinclude></nowiki> === Create a documentation page === &mdash;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 === &mdash;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 &ndash;<code>Template:<var>Template name</var></code>&ndash;. <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=&amp;#32;({{I18n/red}}) }}</nowiki></code>”, * “<code><nowiki>bleu{{LangSwitch |fr=~ |default=&amp;#32;({{I18n/blue}}) }}</nowiki></code>”, and * “<code><nowiki>orange{{LangSwitch |en/fr=~ |default=&amp;#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=&#32;({{I18n/red}}) }} |style="background:#00A;color:#FFF"| bleu{{LangSwitch |fr=~ |default=&#32;({{I18n/blue}}) }} |style="background:#FA0;color:#FFF"| orange{{LangSwitch |fr=~ |default=&#32;({{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|}}}<!-- -->|&#58;&#32;[''{{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