Wikiphidiya nrwiki https://nr.wikipedia.org/wiki/Main_Page MediaWiki 1.47.0-wmf.2 first-letter Iinrhatjhi Khethekileko Asiqongelane Umsebenzisi Umsebenzisi asiqongelane Wikiphidiya Wikiphidiya asiqongelane Isimumathi Isimumathi asiqongelane MediaWiki MediaWiki asiqongelane Umhlahlandlelasakhiwo Umhlahlandlelasakhiwo asiqongelane Lisizo Lisizo asiqongelane Mkhakha Mkhakha asiqongelane TimedText TimedText talk Module Module talk Event Event talk Module:Message box 828 108 6609 446 2026-05-19T06:39:34Z NgamangaXhosa 1515 6609 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 Ithando 0 197 6620 5791 2026-05-19T07:45:18Z Kwamikagami 1412 6620 wikitext text/x-wiki [[Isimumathi:Love padlocks on the Butchers' Bridge (Ljubljana).jpg|thumb|ithando]] '''Ithando''' mimizwa emihle umuntu abanayo ngomunye umuntu. <ref>[[mwod:love#word-history|LOVE Definition & Meaning - Merriam-Webster]]</ref>[[Imizwa]] le kungaba ngeyabantu ahlala nabo ekumndeni wakhe nanyana kube mimizwa yomuntu ohlukileko kunaye ngokobulili. Ithando yinto ehle khulu ngombana lakha ubuhlobo begodu likhulisa nemindeni. Ithando kuyinto eletha ukuthula nokuzwana emakhayeni. Abantu bakghona ukubekezelelana nokuthuthukisana ngesibanga sethando. Woke amakhaya akhona ajame ngesibanga sethando. Ithando liletha ithabo nokujabula, lapho kuphelekhona ithando abantu bahlala badanile. Ithando libonakala lokha umuntu atshweyeka ngokuthi omunye umuntu uhleli kuhle lapho akhona. Likhombisa ukuzinkela kwabantu ababili ekutheni babe semaduze gokwenhliziyo nangommoya wabo. Ithando kuyinto yemvelo enganayo imibandela.<ref>Cordner, C., 2016. Unconditional love?. ''Cogent Arts & Humanities'', ''3''(1), p.1207918.</ref> Livela nofana lenzeka lapho umuntu angakacabangi khona. Imizwa yethando ingavuka lokha umuntu nakabona umuntu omuhle nofana umuntu onemikghwa, nofana oziphatha gendlela ayithandako. Abantu abathandako bakghone ukuthi balwe begodu babuye bakwazi ukulibalelana. == Iinkomba == [[Category: Ithando]] [[Category:Ilanga lethando]] [[category:Imizwa]] jjnq35pgpyffbju3tqcbva9l48nj89g Isindebele 0 329 6537 6108 2026-05-18T12:19:50Z NgamangaXhosa 1515 6537 wikitext text/x-wiki '''IsiNdebele seSewula''' (''Southern'' Ndebele), esaziwa nge'''siNdebele''', lilimi le-Afrika elivela esiqhemeni samaMbo wamalimi weBantu. Ilimeli likhulunywa maNdebele okubabantu abafumaneka e[[Isewula Afrika|Sewula Afrika]].<ref>https://www.krugerpark.co.za/africa_ndebele.html</ref> Bafumaneka eemfundeni ezifaka hlangana iMpumalanga, Gauteng, Limpopo, ne-''North-West''. KunesiNdebele esikhulunywa e-[[Limpopo]] eendaweni ezifana ne-[[Polokwane]] (Bhulungwane), Ga-Rathoka (KaSondonga), Ga-Mashashane, Ga Maraba / [[Kalkspruit]], [[Mokopane]] (Mghumbane), Zebediela (Sebetiela), eduze ukuya eNdebeleni yeSewula.<ref>https://www.sahistory.org.za/article/ndebele-history</ref> == Iinkomba == {{Reflist}} [[Mkhakha:Sewula Afrika]] [[Mkhakha:IsiNdebele]] [[Mkhakha:AmaNdebele]] 1ij4tfcplabdtm0pbas9mvx3i92cgpn 6538 6537 2026-05-18T12:20:07Z NgamangaXhosa 1515 6538 wikitext text/x-wiki '''IsiNdebele seSewula''' (''Southern'' Ndebele), esaziwa '''ngesiNdebele''', lilimi le-Afrika elivela esiqhemeni samaMbo wamalimi weBantu. Ilimeli likhulunywa maNdebele okubabantu abafumaneka e[[Isewula Afrika|Sewula Afrika]].<ref>https://www.krugerpark.co.za/africa_ndebele.html</ref> Bafumaneka eemfundeni ezifaka hlangana iMpumalanga, Gauteng, Limpopo, ne-''North-West''. KunesiNdebele esikhulunywa e-[[Limpopo]] eendaweni ezifana ne-[[Polokwane]] (Bhulungwane), Ga-Rathoka (KaSondonga), Ga-Mashashane, Ga Maraba / [[Kalkspruit]], [[Mokopane]] (Mghumbane), Zebediela (Sebetiela), eduze ukuya eNdebeleni yeSewula.<ref>https://www.sahistory.org.za/article/ndebele-history</ref> == Iinkomba == {{Reflist}} [[Mkhakha:Sewula Afrika]] [[Mkhakha:IsiNdebele]] [[Mkhakha:AmaNdebele]] oz994vqgkvvgfvf56drdmtb5ixabplh Umsebenzisi:Roman Oy Bobrov 2 361 6590 1918 2026-05-19T06:17:12Z NgamangaXhosa 1515 6590 wikitext text/x-wiki {{Not around|{{PAGENAME}}}} 43ncr18fghi0wiy07np8ue17ph7aec0 6591 6590 2026-05-19T06:17:40Z NgamangaXhosa 1515 Undid revision [[Special:Diff/6590|6590]] by [[Special:Contributions/NgamangaXhosa|NgamangaXhosa]] ([[User talk:NgamangaXhosa|talk]]) 6591 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 Abaphasi 0 477 6564 3115 2026-05-18T20:47:54Z Nomsa Skosana 123 6564 wikitext text/x-wiki '''Abaphasi''' babantu egade baphila emhlabeni bahlongakala, nje sele baphila ngomoya ukutlhogomela abantu bemakhabo abaphilako. Babizwa bona ngabaphasi ngombana bagujelwe balele phasi emalibeni. 29gzf8j6bojs5lpques44pfupk5k8qy Umsebenzisi asiqongelane:Roman Oy Bobrov 3 533 6592 2620 2026-05-19T06:18:51Z NgamangaXhosa 1515 6592 wikitext text/x-wiki {{Not around|{{PAGENAME}}}} == Invitation to connect with fellow contributors from language onboarding experiment == Hello, Hope this message finds you well! I would like to invite you to a community conversation to connect with fellow contributors from pilot wikis (Southern Ndebele, Tai Nüa, Iban, Obolo, Pannonian Rusyn) that graduated through a [https://diff.wikimedia.org/2024/10/31/wikipedia-goes-live-for-five-languages-through-the-future-of-language-incubation-initiative/ Language Onboarding Experiment] last year. In this conversation, we plan to facilitate sharing learnings, discussing technical needs post-graduation, and collaborating on solving challenges faced by the pilot wikis. We spoke with a few contributors from these wikis back in December, and their valuable input on contributions has given us some perspectives on what to investigate next. A report will soon be published on those learnings. We hope that this meeting will not only be a great opportunity for us to come together and learn from each other but also allow us to use your valuable input to shape our plans for the coming year! If you can attend the call, please sign up here, and I will share more details later: * [https://www.mediawiki.org/wiki/Language_Onboarding_and_Development/Community_conversations_2024-25#5_April_2025_01:00_UTC 5 April 2025, 01:00 UTC] * [https://www.mediawiki.org/wiki/Language_Onboarding_and_Development/Community_conversations_2024-25#4_April_2025_15:00_UTC 4 April 2025, 15:00 UTC] Looking forward to your participation! Cheers, [[User:SSethi (WMF)]] via [[Umsebenzisi:MediaWiki message delivery|MediaWiki message delivery]] ([[Umsebenzisi asiqongelane:MediaWiki message delivery|talk]]) 20:52, 27 Mbimbitho 2025 (SAST) <!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:SSethi_(WMF)/MassMessageList&oldid=28454981 --> :: Hi! If you haven't signed up yet, you can still consider doing so! You can find more information on [[mediawikiwiki:Language_Onboarding_and_Development/Community_conversations_2024-25|this page]] about the upcoming meetings on April 4th and 5th. :[[Umsebenzisi:SSethi (WMF)|SSethi (WMF)]] ([[Umsebenzisi asiqongelane:SSethi (WMF)|talk]]) 19:24, 2 Mabasa 2025 (SAST) t87my5zwt56q89z6gzod5eaf10ex4o6 Charles II of England 0 751 6622 5110 2026-05-19T07:47:40Z Kwamikagami 1412 6622 wikitext text/x-wiki Challie wesibili mntwana omdala wekosi u Charlse wokuthoma okunguye yedwa oseleko enarheni ye Scotland, Ireland ne Henrietta Maria of France. AfNgemva kukuphumala kuka charles wokuthoma ngonyaka ka-30 January 1649, Ngesikhathi sepi wabantu abamhlophe ekuyi British civil war, ipalamende ye Scotsland ibeke u Charles ikosi yesibili ngomhlaka 5 February 1649,kodwana, England yangena e skathini esiyi interregnum. Yabuya yaphathwa ngu Cromwell owahlula u Charles II epini Worcester on 3 September 1651. du2c2mjceg96qwp5y9ii6f1hh5oov7z 6623 6622 2026-05-19T07:48:42Z Kwamikagami 1412 Kwamikagami moved page [[Charles I of England]] to [[Charles II of England]]: wrong topic 6622 wikitext text/x-wiki Challie wesibili mntwana omdala wekosi u Charlse wokuthoma okunguye yedwa oseleko enarheni ye Scotland, Ireland ne Henrietta Maria of France. AfNgemva kukuphumala kuka charles wokuthoma ngonyaka ka-30 January 1649, Ngesikhathi sepi wabantu abamhlophe ekuyi British civil war, ipalamende ye Scotsland ibeke u Charles ikosi yesibili ngomhlaka 5 February 1649,kodwana, England yangena e skathini esiyi interregnum. Yabuya yaphathwa ngu Cromwell owahlula u Charles II epini Worcester on 3 September 1651. du2c2mjceg96qwp5y9ii6f1hh5oov7z Abantu bendabuko be-Afrika ama-Khoisan 0 765 6563 5183 2026-05-18T20:45:39Z Nomsa Skosana 123 6563 wikitext text/x-wiki '''Ama-Khoisan''' babantu bomdabu be-San ne-Khoekhoe beSewula Afrika. Ngaphambilini bebaziwa ngokuthi banemibala nje basebenzisa ilungelo labo lokuzazisa begodu baziveza njengama-San nama-Khoekhoe nofana ama-Khoe-San. == Ukwamukelwa kwama-Khoisan == ISewula Afrika ivowudele ukwamukelwa kwesimemezelo se-UN malungana namalungelo wabantu bendabuko kodwana ayikavumi i-ILO Convention No. 169. Abantu bendabuko be-San ne-Khoekhoe abavunywa ngokusemthethweni ngokuya ngomthetho welizwe njengomphakathi wesintu. Lokhu kuyatjhuguluka ngomthetho woburholi wendabuko nomthethomlingwa we-Khoisan okuhloswe bona wethulwe e-Palamende. Inani elipheleleko labantu beSewula Afrika lingaba ziingidi ezima-50, lapho kulinganiselwa bona isiqhema sabantu bomdabu sijame phezu ku-1%. == Iinqhema zama-Khoisan neendawo zawo == Iinqhema ezikulu zama-Khoisan zifaka hlangana ama-San Khomani ahlala khulu esifundeni se-Khalahari kunye nama-Khwe nama-Xun, ahlala khulu e-Platfontein e-Kimberley. IKhoekhoe ibunjwa ma-Nama ahlala khulu esifundeni se-North Cape. I-Koran khulukhulu eendaweni ze-Kimberley ne-Free State. I-Griqua eendaweni ze-Western Cape, Eastern Cape, Northern Cape, Free State kanye naKwaZulu-Natal. Ama-Cape Khoekhoe e-Western Cape ne-Eastern Cape ngokukhula kwamaphakethe eemfundazweni ze-Gauteng ne-Free State. ESewula Afrika yanje imiphakathi yama-Khoisan itjengisa iindlela zokuphila ezahlukahlukeneko zezomnotho namasiko. Amatjhuguluko wezehlalakuhle nezepolotiki alethwe lihlelo lezepolotiki leSewula Afrika yanje edale isikhala sokuhlukaniswa kwemikhakha yezehlalakuhle yebandlululo efana nombala. == Ilwazi lomdabu namaphrojekthi wama-Khoisan == Umthetho wokuvikelwa, ukuthuthukiswa nokuphathwa kwamahlelo welwazi lendabuko ka-2014 wasungula ukuvikelwa, ukuthuthukisa nokuphathwa kweenkhungo zelwazi lendabuko yemiphakathi. Umthethomlingwa lo unikela ngokusungulwa nokusebenza kwe-ofisi lenarha leenhlelo zelwazi lendabuko nokuphathwa kwamalungelo wabanikazi belwazi lendabuko. Iphrojekthi womthetho welwazi lomdabu isungula indlela yokuthola ilwazi lomdabu lemiphakathi yendawo. Ukungezelela umthethomlingwa lo uhlathulula ikambiso yokutlolisa, ukugunyaza nokuqinisekisa abasebenzi belwazi lomdabu. Inguqulo yesibili womthethomlingwa lo yenziwe ngokuya komjikelezo wokuthoma wokungena begodu inguqulo etja yesibili yavulwa bona ibonisane nomphakathi ngo-Nobayeni wee-2016. Ikomidi yePalamende yeSewula Afrika yokubusa ngokubambisana neendaba zendabuko yethule umthethomlingwa woburholi bendabuko nama-Khoisan phambi kwePalamende ngo-2016. Iphrojekthi le ifuna ukutjheja bona imiphakathi yama-Khoisan yomlando sele yamukelwa ngeminye imiphakathi yamasiko yeSewula Afrika. Ngokokuthoma eminyakeni ema-300 edlulileko, umthethomlingwa lo unganikela ukuvunywa okusemthethweni begodu uvule amathuba wokufikelela ubulungiswa emiphakathini yomlando wama-Khoisan. Umthethomlingwa lo uzokuvumela ama-Khoisan bona afakwe eenkambisweni zokuphatha zikaRhulumende ngaphakathi kweenkonzo ezihlukahlukeneko begodu uvumele iinkonzo lezi bona zenze amalungiselelo athileko wezinto eziqakathekileko zehlalakuhle, zomnotho nezamasiko wemiphakathi yama-Khoisan. [[Isimumathi:Khoisan languages.svg|thumb|I-diagramu yama-limi wama-Khoisan]] == Imizamo yokubulunga amasiko wama-Khoisan == Iinhlelo ezinengi ezihloswe ukubulunga amalimi wama-Khoisan, amasiko kunye namahlelo welwazi zithole ukuthandwa umnyaka woke. I-South African National Editor's Forum (SANEF), i-Pan South African Language Board (PanSALB) kunye ne-UN bathoma isemina ngendima yabezindaba ekuthuthukisweni nekulondolozweni amalimi wendabuko. Umnyanya lo obanjwe mhlazana amalanga ali-07 kuRhoboyi wee-2024, ukhulume ngomthelela wobuhlakani bokufakelwa eendabeni kunye namaqhinga lapho umkhakha weendaba zamalimi wendabuko ungadosa ngakho ukukhangisa kwedijithali. Isemina le idose ababiki beendaba, iimfundiswa, abahlaziyi kanye nabasebenzi emkhakheni weendaba zamabhizinisi ngokudzimelela ebantwini beendaba zomphakathi. Amaphrojekthi wokusebenzisana neenkhungo zefundo kanye neenhlangano zamasiko ahlonywa ukutlola nokukhuthaza amagugu wendabuko. I-PanSALB ibawe bona kube nendlela epheleleko yokukhuthaza ukuhlonipha amalimi wendabuko nokukhomba iindawo ezitlhogwa ukuvuselelwa. Lokhu kwagandelelwa ngesikhathi se-Khoisan National Language Indaba,umhlangano owahlanganisa ababambindima begodu okhambisana ne-International Decade of Indigenous Languages 2022-2032. I-PanSALB ikhuthaze woke amazinga kaRhulumende bona athathe amagadango wokuphendula iincomo ezenziwe ngesikhathi se Indaba. == Amanothi neenkhombo == 1. The Indigenous Peoples of Africa Co-ordinating Committee. (19 February 2020). Southern Africa - The Indigenous Peoples of Africa Co-ordinating Committee.https://www.ipacc.org.za/southern-africa/#:~:text=The%20indigenous%20peoples%20of%20South,Khoekhoe%2C%20including%20Nama%20and%20Griqua 2. Cassette, J., & Roos, E. (n.d.). Traditional Khoi-San Leadership Act: The importance of meaningful public participation during the law-making process. Cliffe Dekker Hofmeyr.https://www.cliffedekkerhofmeyr.com/news/publications/2023/Practice/ProBono/pro-bono-and-human-rights-alert-9-june-traditional-khoi-san-leadership-act 3. Jansen, Lesle and Horton, Theo. “South Africa”. In The Indigenous World 2024, ed. D. Mamo, IWGIA. April 2024. pp. 116-122.https://iwgia.org/en/south-africa/5358-iw-2024-southafrica.html 4. Zondo, W. B. (19 December 2024). In peril: How the traditional and Khoi-San Leadership Bill 2024 continues to threaten informal land rights and rural democracy — African law matters. African Law Matters.https://www.africanlawmatters.com/blog/in-peril-how-the-traditional-and-khoi-san-leadership-bill-2024-continues-to-threaten-informal-land-rights-and-rural-democracy 5.The Khoisan | South African History Online. (n.d.).https://www.sahistory.org.za/article/khoisan hms0cmq2egqxp048ah171jku79hpsqc Irhelo lababulali abanengi eSewula Afrika 0 1099 6621 6479 2026-05-19T07:45:52Z Kwamikagami 1412 6621 wikitext text/x-wiki Lolu luhlu lwababulali abanengi beSewula Afrika eSewula Afrika. Umbulali we-serial kuvamise ukuba mumuntu obulala abantu abathathu nofana ngaphezulu, begodu ukubulawa kwenzeka isikhathi esingaphezu kwenyanga begodu kufaka hlangana isikhathi eside hlangana nabo. Nanyana kunjalo, iSewula Afrika isebenzisa ihlathululo elula yokubulala abantu abanengi, iyihlathulula ngokuthi, "Ukubulawa kwabantu ababili nofana ngaphezulu ngokungasimthethweni mphulaphuli munye, ezehlakalweni ezihlukileko." == Ababulali abanengi abakhonjiweko == {| class="wikitable sortable" ! width="200px" |Name !Nickname / AKA ! width="100px" |Years active ! data-sort-type="number" |Proven victims ! data-sort-type="number" |Possible victims !Status !Notes !Ref |- |Richman Makhwenkwe |Moffat Park Killer |2005 - 2006 |6 |7 |Sentenced to life imprisonment |He raped and strangled his girlfriend then buried her body in a shallow grave in an overgrown park in [[Johannesburg]], then went on to kill other victims. | |- |Baninzi, Asande | |2001 |14 |18 |Sentenced to life imprisonment |Together with accomplice Mthutuzeli Nombewu, robbed and murdered people in the Cape Flats area | |- |Barber, Peter Roy |The Laughing Killer |1973–1979 |3 |4 |Executed in 1980 |English immigrant who murdered his mistresses and a 12-year-old girl in Pinetown after arguments | |- |Basson, Pierre |The Insurance Killer |1903–1906 |9 |9+ |Committed suicide to avoid apprehension |Murdered people in Claremont, Cape Town so he could get their life insurance; South Africa's first recorded serial killer | |- |Brown, John Frank |The Cross Dressing Killer(s) |1993–1995 |5 |5 |Sentenced to life imprisonment |Together with accomplice and lover Jacques Coetzee murdered other gay men around [[Johannesburg]] | |- |Brandt, Brydon | |1989–1997 |4 |5 |Sentenced to life imprisonment |Murdered prostitutes and his roommates in the Eastern Cape | |- |Burger, Cornelius | |1936–1937 |5 |5 |Died in a psychiatric facility |Murdered prostitutes as revenge for contracting a venereal disease | |- |Coetzee, Jacques |The Cross Dressing Killer(s) |1993–1995 |5 |5 |Committed suicide in custody |Together with accomplice and lover John Frank Brown murdered other gay men around [[Johannesburg]] | |- |Duma, Sibusiso | |2007 |7 |7 |Sentenced to life imprisonment |Killed various people around Pietermaritzburg during robberies | |- |Kgabi, John Phuko |The Ritual Killer |1974–1978 |6 |14 |Executed in 1980 |Former police officer who garroted and mutilated young girls in Atteridgeville and [[Limpopo]] | |- |Lineveldt, Gamal |The Cape Flats Murderer |1940 |4 |4 |Executed in 1941 |Responsible for the "Cape Flats Murders"; bludgeoned to death white women around the Cape Flats area | |- |Maake, Cedric |The Wemmer Pan Killer |1996–1997 |27 |27+ |Sentenced to life imprisonment |Serial rapist who murdered victims in the Wemmer Pan area | |- |Mabhayi, Bulelani |The Monster of Tholeni |2007–2012 |20 |20 |Sentenced to life imprisonment |House intruder who murdered women and children in the village of Tholeni | |- |Majola, Simon |The Bruma Lake Killer(s) |2000–2001 |8 |8+ |Sentenced to life imprisonment |Together with accomplice Themba Nkosi, known as "The Bruma Lake Killers"; robbed and drowned men in Bruma Lake | |- |Makamu, Fanuel |The Mpumalanga Serial Rapist |2000 |6 |6 |Sentenced to life imprisonment |Together with accomplice Henry Maile, robbed, raped and murdered women around [[Isifunda seMpumalanga|Mpumalanga]] | |- |Maketta, Jimmy |The Jesus Killer |2005 |16 |16 |Sentenced to life imprisonment |Murdered farm labourers in Philippi | |- |Makgae, Andries | |2012–2013 |3 |4+ |Sentenced to life imprisonment |Raped and murdered women around Onderstepoort; suspected in best friend's murder | |- |Makhubela, Dumisani |Lotto Gangster(s) |2005 |7 |7 |Sentenced to life imprisonment |Together with accomplice Johannes van Rooyen, robbed, raped and murdered people around Mpumalanga, including a family of four | |- |Mashiane, Johannes |The Beast of Atteridgeville |1977–1989 |13 |13 |Committed suicide to avoid apprehension |Murdered his girlfriend; after release, raped and strangled 12 young boys around Atteridgeville | |- |de Melker, Daisy | |1923–1932 |3 |3 |Executed in 1932 |Poisoned two husbands and her son with strychnine for life insurance; South Africa's first convicted female serial killer | |- |Mfeka, Samuel Bongani |The Kranskop Killer |1993–1996 |6 |6+ |Sentenced to life imprisonment |Raped and strangled women around KwaZulu-Natal | |- |Mogale, Jack |The West-End Killer |2008–2009 |16 |16 |Sentenced to life imprisonment |Kidnapped, raped and murdered women in southern Johannesburg | |- |Msomi, Elifasi |The Axe Killer |1953–1955 |15 |15 |Executed in 1956 |Murdered people while he was supposedly under the influence of a Tokoloshe | |- |Mulaudzi, Mukosi Freddy |The Limpopo Serial Killer |1990–2006 |13 |13 |Sentenced to life imprisonment |Murdered two people in 1990, then escaped from prison and resumed killing | |- |Ncama, Nicholas Lungisa |The East Cape Killer |1997 |6 |6 |Sentenced to life imprisonment |Raped and strangled women around Port Elizabeth | |- |Ndlangamandla, Velaphi |The Saloon Killer |1998 |19 |19 |Sentenced to life imprisonment |Robbed and murdered people during home invasions in Mpumalanga | |- |Ndlovu, Rosemary | |2012–2018 |6 |6 |Sentenced to life imprisonment |Former policewoman who murdered her ex-partner and relatives for life and funeral insurance policies | |- |Ntsieni, Ndivhuwo |The Univen serial killer |2014 |5 |5 |Sentenced to life imprisonment |Raped and murdered women and young girls in and around the University of Venda | |- |Nyauza, Richard |The Quarry Killer |2002–2006 |18 |19 |Sentenced to life imprisonment |Raped and murdered women after being infected with HIV, dumping their bodies in a quarry | |- |Randitsheni, David |The Modimolle Serial Killer |2004–2008 |10 |10 |Committed suicide in prison |Abducted, raped and murdered children in [[Modimolle]] | |- |van Rooyen, Gert | |1988–1989 |6 |6+ |Committed suicide to avoid apprehension |Pedophile who, together with accomplice and wife Joey Haarhoff, abducted, raped and murdered six teenage girls whose bodies have never been found | |- |van Rooyen, Johannes |Lotto Gangster(s) |2005 |7 |7 |Sentenced to life imprisonment |Together with accomplice Dumisani Makhubela, robbed, raped and murdered people around Mpumalanga, including a family of four | |- |van Schoor, Louis |The Apartheid Killer |1986–1989 |9 |39+ |20 years; released in the 2003 and died a free man in 2024 |Former policeman and security guard who killed black South Africans during alleged crimes | |- |Sedumedi, Khangayi |The Century City Killer |2011–2015 |4 |6 |Sentenced to life imprisonment |Raped and murdered women around Century City and Kensington | |- |Sidyno, Samuel |The Capital Park Serial Killer |1998–1999 |7 |7 |Sentenced to life imprisonment |Strangled teenagers and women, then disposed of their bodies near the Pretoria Zoo | |- |Sithole, Moses |The ABC Killer |1994–1995 |38 |76 |Sentenced to life imprisonment |Raped and murdered women around Atteridgeville, [[IBoksburg|Boksburg]] and Cleveland | |- |Stander, Riaan | |2001–2007 |3 |3 |Sentenced to life imprisonment |Murdered two prostitutes in Port Elizabeth after being released from prison for running over a woman with his car | |- |Sukude, Themba |The Newcastle Serial Killer |2004–2005 |4 |4 |Sentenced to life imprisonment |Attacked couples around parks, raping the female and bludgeoning the male to death with rocks. He later switched to solely targeting men | |- |Taki, Thozamile |The Sugarcane Killer |2007 |13 |13 |Sentenced to life imprisonment |Robbed and murdered women around KwaZulu-Natal and Eastern Cape, dumping their bodies in sugarcane and tea plantations | |- |Thwala, Sipho |The Phoenix Strangler |1996–1997 |16 |16+ |Sentenced to life imprisonment |Raped and murdered women in sugarcane fields near Phoenix | |- |Vilakazi, Themba |The Railway Killer |2005 |3 |5 |Sentenced to life imprisonment |Murdered black males around Pretoria | |- |Wilken, Stewart |The Boetie Boer |1990–1997 |10 |10+ |Sentenced to life imprisonment |Raped and murdered prostitutes, young boys and his own daughter around Port Elizabeth | |- |Williams, Tommy |The City Serial Killer |1987–2008 |3 |3 |Sentenced to life imprisonment |Strangled three acquaintances in varying circumstances; South Africa's longest active serial offender | |- |Xitavhudzi, Elias |The Pangaman |1953–1959 |16 |16 |Executed in 1960 |Murdered and mutilated white women around Atteridgeville | |- |Zikode, Christopher Mhlengwa |The Donnybrook Serial Killer |1994–1995 |18 |18 |Sentenced to life imprisonment |Necrophiliac house intruder who murdered people around Donnybrook, then had sex with the female victims' corpses | |} == Ababulali abanengi abangaziwako == {| class="wikitable sortable" ! width="200px" |Isiteketiso ! width="100px" | Iminyaka yokusebenza ! data-sort-type="number" | Iinhlupheki eziqinisekisiweko ! data-sort-type="number" | Abangaba ziinhlupheki ! Iindawo lapho zisebenza khona ! Amanothi ! Ref |- | Umbulali wezifebe we-Cape Town | 1992–1996 | 19 | 19 | I-Western Cape | Iinfebe eziklinyiweko nezisebenzi zasekhaya e -Cape Town | |- | Umbulali we-Fosaville | 1999–2003 | 13 | 13 | KwaZulu-Natal | Abafazi abathunjiweko, babotjhwa begodu baklinywa e- Newlands East | |- | Umbulali we-Sleepy Hollow | 1990s–2007 | 13 | 16+ | Kwa-Zulu Natal (kuqinisekisiwe)<br /><br /><br /><br /> I-Free State, e-Eastern Cape (kusolwa) | Abafazi abadlwengulwako nabaklinyako, inengi labo abathengisa ucansi nabathengisa umzimba, basebenzisa amaphenti wabo | |} [[Category:Sewula Afrika]] [[Category:Afrika]] tm6lojw3t79clf31twh29q2rhxvxlx0 Umhlahlandlelasakhiwo:Not around 10 1106 6533 6507 2026-05-18T12:09:35Z NgamangaXhosa 1515 6533 wikitext text/x-wiki <big>'''''Kungenzeka bona umsebenzisi lo utjhiye i-Wikipedia'''. {{{1}}} akazange ahlele i-Wikipedia isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu.''</big> <noinclude>{{documentation}}</noinclude> qkqg67hmjfsbrvthutqnhpyoe9ygwqf 6587 6533 2026-05-19T05:55:30Z NgamangaXhosa 1515 6587 wikitext text/x-wiki <big>'''''Kungenzeka bona umsebenzisi lo utjhiye i-Wikiphidiya'''. {{{1}}} akazange ahlele i-Wikipedia isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu.''</big> <noinclude>{{documentation}}</noinclude> oebwx6796xu6yjzcboogdr70hcx2zt8 6588 6587 2026-05-19T06:13:08Z NgamangaXhosa 1515 6588 wikitext text/x-wiki <big>'''''Kungenzeka bona umsebenzisi lo utjhiye i-Wikiphidiya'''. {{{1}}} akazange ahlele i-Wikiphidiya isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu.''</big> <noinclude>{{documentation}}</noinclude> 39hy4iuzv74n7y4aavt5989wsn41bxi 6589 6588 2026-05-19T06:15:50Z NgamangaXhosa 1515 6589 wikitext text/x-wiki [[File:Decision making.svg|45px]] <big>'''''Kungenzeka bona umsebenzisi lo utjhiye i-Wikiphidiya'''.</big> {{{1}}} akazange ahlele i-Wikiphidiya isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu.'' <noinclude>{{documentation}}</noinclude> bzm49jfmo7qoioy1q3a5g4aesbypev1 6593 6589 2026-05-19T06:19:30Z NgamangaXhosa 1515 6593 wikitext text/x-wiki [[File:Decision making.svg|45px]] <big>'''''Kungenzeka bona umsebenzisi lo utjhiye i-Wikiphidiya'''.</big> {{{1}}} akazange ahlele i-Wikiphidiya isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu.''<noinclude>{{documentation}}</noinclude> cm98rhvre9qql89jju2vwy1zezx2801 6594 6593 2026-05-19T06:19:46Z NgamangaXhosa 1515 6594 wikitext text/x-wiki [[File:Decision making.svg|40px]] <big>'''''Kungenzeka bona umsebenzisi lo utjhiye i-Wikiphidiya'''.</big> {{{1}}} akazange ahlele i-Wikiphidiya isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu.''<noinclude>{{documentation}}</noinclude> drhvy7tnud9uftb666vnhocyn12h6ec 6595 6594 2026-05-19T06:20:06Z NgamangaXhosa 1515 6595 wikitext text/x-wiki [[File:Decision making.svg|45px]] <big>'''''Kungenzeka bona umsebenzisi lo utjhiye i-Wikiphidiya'''.</big> {{{1}}} akazange ahlele i-Wikiphidiya isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu.''<noinclude>{{documentation}}</noinclude> cm98rhvre9qql89jju2vwy1zezx2801 6597 6595 2026-05-19T06:23:22Z NgamangaXhosa 1515 6597 wikitext text/x-wiki [[File:Decision making.svg|40px]] <big>'''''Kungenzeka bona umsebenzisi lo utjhiye i-Wikiphidiya'''.</big> {{{1}}} akazange ahlele i-Wikiphidiya isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu.''<noinclude>{{documentation}}</noinclude> drhvy7tnud9uftb666vnhocyn12h6ec 6606 6597 2026-05-19T06:35:18Z NgamangaXhosa 1515 6606 wikitext text/x-wiki {{{{#ifeq:{{{spacetype|}}}|tmbox|tmbox|mbox}} |image = [[File:Decision making.svg|50px]] |text = '''Kungenzeka bona umsebenzisi lo utjhiye i-Wikiphidiya'''. {{#if:{{{2|}}}|{{{2}}}|<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>''Example''</noinclude>}} akazange ahlele i-Wikiphidiya isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu. }}<noinclude> {{documentation}} </noinclude> buomvvgjq3wufh05917to5qblrsu4rw 6607 6606 2026-05-19T06:36:23Z NgamangaXhosa 1515 6607 wikitext text/x-wiki {{{{#ifeq:{{{spacetype|}}}|tmbox|tmbox|mbox}} |image = [[File:Decision making.svg|50px]] |text = '''Kungenzeka bona umsebenzisi lo utjhiye i-Wikiphidiya'''. {{#if:{{{1|}}}|{{{1}}}|<includeonly>{{BASEPAGENAME}}</includeonly><noinclude>''Example''</noinclude>}} akazange ahlele i-Wikiphidiya isikhathi eside. Njengomphumela, nanyana ngiziphi iimbawo ezenziwe lapha zingathola ipendulo. Nawufuna isizo, kungatlhogeka bona uye komunye umuntu. }}<noinclude> {{documentation}} </noinclude> 8iq8k74zt9l8w45mhq9uk2uqawb0kgu Umhlahlandlelasakhiwo:Xmark 10 1113 6561 6518 2026-05-18T13:45:52Z NgamangaXhosa 1515 6561 wikitext text/x-wiki [[{{ {{{|safesubst:}}}#switch:{{ {{{|safesubst:}}}lc:{{{color|{{{colour|}}}}}} }} |red |rd |r =File:X mark.svg |darkred |dkred |drd |dr =File:Dark red x.svg |orange |or |o =File:Orange x.svg |yellow |yel |y =File:Dark yellow x.svg |black |blk |k =File:Black x.svg |grey |gray |gry |gy =File:SemiTransBlack x.svg <!--default--> |File:X mark.svg }}|{{Str number/trim|{{ {{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|20}}}}px|link=|alt=&#9746;|20px]]<span style="display:none">N</span><!--template:Xmark--><noinclude> {{documentation}} </noinclude> a05jrzy1hd56hxsmhmpcj15prnxk20q Umhlahlandlelasakhiwo:Table flip 10 1120 6527 2026-05-18T11:59:26Z NgamangaXhosa 1515 Created page with "<span class="nowrap" role="img" aria-label="flipping table">(╯°□°)╯︵ ┻━┻</span><noinclude>{{documentation}} </noinclude>" 6527 wikitext text/x-wiki <span class="nowrap" role="img" aria-label="flipping table">(╯°□°)╯︵ ┻━┻</span><noinclude>{{documentation}} </noinclude> aisrqofzypuobmyddhulyh999eb21ya Umhlahlandlelasakhiwo:Isikere 10 1121 6528 2026-05-18T12:01:44Z NgamangaXhosa 1515 Created page with "[[File:Twemoji12 2702.svg|{{{size|30px}}}|alt=scissors]] '''{{{1|Ukugijima ngesikere kuyingozi khulu ku-Wikipedia!}}}'''<noinclude> {{documentation}} </noinclude>" 6528 wikitext text/x-wiki [[File:Twemoji12 2702.svg|{{{size|30px}}}|alt=scissors]] '''{{{1|Ukugijima ngesikere kuyingozi khulu ku-Wikipedia!}}}'''<noinclude> {{documentation}} </noinclude> aifzm7scs43agmtlfaghfk7vbhpz6ke Umhlahlandlelasakhiwo:Doge 10 1122 6529 2026-05-18T12:04:38Z NgamangaXhosa 1515 Created page with "[[File:Doge.svg|20px|alt=|link=|doge]]<noinclude>{{documentation |content= {{humor}} Isifanekiso lesi sisetjenziselwa ukutjengisa isithombe seDoge. ==Ukusetjenziswa== Isifanekiso lesi asinawo amapharamitha. <syntaxhighlight lang="wikitext"> {{Doge}} </syntaxhighlight> }} </noinclude>" 6529 wikitext text/x-wiki [[File:Doge.svg|20px|alt=|link=|doge]]<noinclude>{{documentation |content= {{humor}} Isifanekiso lesi sisetjenziselwa ukutjengisa isithombe seDoge. ==Ukusetjenziswa== Isifanekiso lesi asinawo amapharamitha. <syntaxhighlight lang="wikitext"> {{Doge}} </syntaxhighlight> }} </noinclude> 1o9f64yrpsngf56rlyqr833d8ls86xg 6531 6529 2026-05-18T12:08:40Z NgamangaXhosa 1515 6531 wikitext text/x-wiki [[File:Doge.svg|20px|alt=|link=|doge]]<noinclude>{{documentation |content= {{humor}} Umhlahlandlelasakhiwo lesi sisetjenziselwa ukutjengisa isithombe seDoge. ==Ukusetjenziswa== Isifanekiso lesi asinawo amapharamitha. <syntaxhighlight lang="wikitext"> {{Doge}} </syntaxhighlight> }} </noinclude> n19kd4u9h9ics27vs0z35uep297b3qy Umhlahlandlelasakhiwo:Humor 10 1123 6530 2026-05-18T12:07:20Z NgamangaXhosa 1515 Created page with "<big>'''Ikhasi leli liqukethe izinto ezithathwa njengezihlekisako'''. Iinsetjenziswa ezinjalo akukafaneli zithathwe njengezingakaqakatheki.</big> <noinclude>{{documentation}}</noinclude>" 6530 wikitext text/x-wiki <big>'''Ikhasi leli liqukethe izinto ezithathwa njengezihlekisako'''. Iinsetjenziswa ezinjalo akukafaneli zithathwe njengezingakaqakatheki.</big> <noinclude>{{documentation}}</noinclude> 4ieip8n43xruhv24zbnc1jojfetxwv8 6532 6530 2026-05-18T12:09:18Z NgamangaXhosa 1515 6532 wikitext text/x-wiki <big>'''''Ikhasi leli liqukethe izinto ezithathwa njengezihlekisako'''. Iinsetjenziswa ezinjalo akukafaneli zithathwe njengezingakaqakatheki.''</big> <noinclude>{{documentation}}</noinclude> axofly2ml68th798xx7zezytuumycx8 Umsebenzisi:NgamangaXhosa 2 1124 6534 2026-05-18T12:11:52Z NgamangaXhosa 1515 Created page with "Ngenze isizo elikhulu kuWikipedia yesiNdebele seSewula. {{doge}} {{N/A icon}}" 6534 wikitext text/x-wiki Ngenze isizo elikhulu kuWikipedia yesiNdebele seSewula. {{doge}} {{N/A icon}} ewaumt7rh7sou89bof0tttzm6v3a9d6 6535 6534 2026-05-18T12:12:11Z NgamangaXhosa 1515 6535 wikitext text/x-wiki Ngenze isizo elikhulu kuWikipedia yesiNdebele seSewula. {{shrug}} {{doge}} {{N/A icon}} a08f7y3c68rwh9qk8jpxjt3zwnn3ngr 6575 6535 2026-05-19T05:34:32Z NgamangaXhosa 1515 6575 wikitext text/x-wiki {{mail|NgamangaXhosa}} Ngenze isizo elikhulu kuWikipedia yesiNdebele seSewula. {{shrug}} {{doge}} {{N/A icon}} 6ipjswxvl2rn1m21ea8stj3f75biwij Umhlahlandlelasakhiwo:Facepalm 10 1125 6536 2026-05-18T12:17:06Z NgamangaXhosa 1515 Created page with "{{{{{|safesubst:}}}#switch: {{{{{|safesubst:}}}lc:{{{1}}}}} | supreme | sfod=[[File:Facepalm3.svg|{{{size|20px}}}|alt=Isandlasobuso|class=skin-invert]] '''Isandlasobuso''' | #default=[[File:Facepalm3.svg|{{{size|15px}}}|alt=Isandlasobuso|class=skin-invert]] '''{{{1|Isandlasobuso}}} '''}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage, interwikis to Wikidata, not here --> </noinclude>" 6536 wikitext text/x-wiki {{{{{|safesubst:}}}#switch: {{{{{|safesubst:}}}lc:{{{1}}}}} | supreme | sfod=[[File:Facepalm3.svg|{{{size|20px}}}|alt=Isandlasobuso|class=skin-invert]] '''Isandlasobuso''' | #default=[[File:Facepalm3.svg|{{{size|15px}}}|alt=Isandlasobuso|class=skin-invert]] '''{{{1|Isandlasobuso}}} '''}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage, interwikis to Wikidata, not here --> </noinclude> 9160661zpl1b35xtt3uethhngn4f6p7 Umsebenzisi asiqongelane:JayJaytutu 3 1126 6539 2026-05-18T12:21:40Z NgamangaXhosa 1515 /* Ngibawa ungamotjhisi iWikipedia */ new section 6539 wikitext text/x-wiki == Ngibawa ungamotjhisi iWikipedia == Nawuragela phambili nokwenza njalo, ungavinjelwa mlawuli. Zoke iintjhuguluko zakho: {{Declined}} [[Umsebenzisi:NgamangaXhosa|NgamangaXhosa]] ([[Umsebenzisi asiqongelane:NgamangaXhosa|talk]]) 14:21, 18 Nkwenkwezi 2026 (SAST) sx30vgmkv3rmnmbwszjngc5ravesysp 6540 6539 2026-05-18T12:24:30Z NgamangaXhosa 1515 6540 wikitext text/x-wiki == Ngibawa ungamotjhisi iWikipedia == Nawuragela phambili nokwenza njalo, ungavinjelwa mlawuli. Zoke iintjhuguluko zakho: {{Declined}} kunye {{N/A icon}}. -- [[Umsebenzisi:NgamangaXhosa|NgamangaXhosa]] ([[Umsebenzisi asiqongelane:NgamangaXhosa|talk]]) 14:21, 18 Nkwenkwezi 2026 (SAST) rcaarwpla2fwj483ljlrf78ycfkbgdk Umhlahlandlelasakhiwo:Not done not likely 10 1127 6541 2026-05-18T13:12:42Z NgamangaXhosa 1515 Created page with "'''Akukenziwa begodu akukafaneli bona kwenziwe'''<noinclude> {{documentation}} </noinclude>" 6541 wikitext text/x-wiki '''Akukenziwa begodu akukafaneli bona kwenziwe'''<noinclude> {{documentation}} </noinclude> him5gafpjykf5yqce14qhe7m6bggayn 6562 6541 2026-05-18T13:46:48Z NgamangaXhosa 1515 6562 wikitext text/x-wiki {{{{{|safesubst:}}}xmark|18}} '''{{{{{|safesubst:}}}ucfirst:{{{1|Akukenziwa begodu akukafaneli bona kwenziwe}}}}}'''<noinclude> {{documentation}} </noinclude> kfmiqgk16hrl2n3kedate6zviyd3iy4 Umhlahlandlelasakhiwo:You've got mail 10 1128 6542 2026-05-18T13:17:15Z NgamangaXhosa 1515 Created page with "<big>'''''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!''' Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi ''{{tl|You've got mail}}.<noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude>" 6542 wikitext text/x-wiki <big>'''''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!''' Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi ''{{tl|You've got mail}}.<noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude> olw8dql9wboowm44gjglyoenbtfh6k3 6543 6542 2026-05-18T13:18:02Z NgamangaXhosa 1515 6543 wikitext text/x-wiki [[file:Mail-message-new.svg|left|25px]] <big>'''''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!''' Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi ''{{tl|You've got mail}}.<noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude> bsl430fwjluhnqcv3gujxmdlmokce83 6544 6543 2026-05-18T13:18:17Z NgamangaXhosa 1515 6544 wikitext text/x-wiki [[file:Mail-message-new.svg|left|50px]] <big>'''''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!''' Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi ''{{tl|You've got mail}}.<noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude> 5mi919k6x57fol1omd6ijtl6kenpcw0 6547 6544 2026-05-18T13:22:03Z NgamangaXhosa 1515 6547 wikitext text/x-wiki [[file:Mail-message-new.svg|left|50px]] <big>'''''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!''' Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi ''{{tl|You've got mail}}.</big><noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude> rktv3ni7v0zr7dv9vzfono2sz1hc6wr 6548 6547 2026-05-18T13:22:31Z NgamangaXhosa 1515 6548 wikitext text/x-wiki [[file:Mail-message-new.svg|left|50px]] <big>'''''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!'''</big> Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi ''{{tl|You've got mail}}.<noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude> ortvwm8nvdx9lkabmqet66032dx65pr 6549 6548 2026-05-18T13:22:59Z NgamangaXhosa 1515 6549 wikitext text/x-wiki [[file:Mail-message-new.svg|left|50px]] <big> '''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!'''</big> Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi {{tl|You've got mail}}.<noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude> 1o95g2evxypkt2zh77x4xfw2zxzk20y 6551 6549 2026-05-18T13:24:51Z NgamangaXhosa 1515 6551 wikitext text/x-wiki [[file:Mail-message-new.svg|left|50px]] <big> '''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!'''</big> Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi {{tl|You've got mail}} nofana {{tl|ygm}}.<noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude> kavkx5kh70b8tirzlccyegojugj2t1q 6552 6551 2026-05-18T13:25:14Z NgamangaXhosa 1515 6552 wikitext text/x-wiki [[file:Mail-message-new.svg|left|45px]] <big> '''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!'''</big> Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi {{tl|You've got mail}} nofana {{tl|ygm}}.<noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude> 7e5nkpw7jp8v88zj2niwgviegpubsm9 Umhlahlandlelasakhiwo:Tl 10 1129 6545 2026-05-18T13:20:00Z NgamangaXhosa 1515 Created page with "<span class="nowrap">&#123;&#123;</span>[[Umhlahlandlelasakhiwo:{{{1}}}|{{{1}}}]]<span class="nowrap">&#125;&#125;</span><noinclude> {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude>" 6545 wikitext text/x-wiki <span class="nowrap">&#123;&#123;</span>[[Umhlahlandlelasakhiwo:{{{1}}}|{{{1}}}]]<span class="nowrap">&#125;&#125;</span><noinclude> {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> 426vuhh2ag394kwx7lcul6dlts5hw5v Umsebenzisi asiqongelane:Nomsa Skosana 3 1130 6546 2026-05-18T13:21:32Z NgamangaXhosa 1515 /* Une-imeyela! */ new section 6546 wikitext text/x-wiki == Une-imeyela! == {{You've got mail}} [[Umsebenzisi:NgamangaXhosa|NgamangaXhosa]] ([[Umsebenzisi asiqongelane:NgamangaXhosa|talk]]) 15:21, 18 Nkwenkwezi 2026 (SAST) 6ee1z159snrqc8r8mwdhwwqqp46saz9 Umhlahlandlelasakhiwo:Ygm 10 1131 6550 2026-05-18T13:23:29Z NgamangaXhosa 1515 Redirected page to [[Umhlahlandlelasakhiwo:You've got mail]] 6550 wikitext text/x-wiki #REDIRECT [[Umhlahlandlelasakhiwo:You've got mail]] lu4l9qfngamdfgn306eq5rjztf4ungh Umhlahlandlelasakhiwo:You're welcome 10 1132 6553 2026-05-18T13:29:07Z NgamangaXhosa 1515 Created page with "<b class="nowrap">[[File:Face-smile.svg|18px|alt=|link=]] Wamukelekile!<!--Umhlahlandlelasakhiwo:You're welcome--><noinclude> {{documentation}} </noinclude>" 6553 wikitext text/x-wiki <b class="nowrap">[[File:Face-smile.svg|18px|alt=|link=]] Wamukelekile!<!--Umhlahlandlelasakhiwo:You're welcome--><noinclude> {{documentation}} </noinclude> 0fcyy53lbsiwv3rz96hwp3fo5sucgzo 6554 6553 2026-05-18T13:29:31Z NgamangaXhosa 1515 6554 wikitext text/x-wiki <b class="nowrap">[[File:Face-smile.svg|18px|alt=|link=]] Wamukelekile!</b><!--Umhlahlandlelasakhiwo:You're welcome--><noinclude> {{documentation}} </noinclude> lqh5nhfq3jqs8mn06lqtk4ri1g3ranh Umhlahlandlelasakhiwo:Thank you 10 1133 6555 2026-05-18T13:30:54Z NgamangaXhosa 1515 Created page with "<span class="nowrap">[[File:Face-smile.svg|18px|link=]] '''Ngiyathokoza'''</span><!--Template:Thank you--><noinclude> {{documentation}} </noinclude>" 6555 wikitext text/x-wiki <span class="nowrap">[[File:Face-smile.svg|18px|link=]] '''Ngiyathokoza'''</span><!--Template:Thank you--><noinclude> {{documentation}} </noinclude> 39cqf9toqqvxea6hbgrmzeyfmtivvox Umhlahlandlelasakhiwo:Stop 10 1134 6556 2026-05-18T13:33:21Z NgamangaXhosa 1515 Created page with "[[File:Dialog-stop-hand.svg|{{Str number/trim|{{{1|30}}}}}px|Stop|alt=stop|link=|30px]]<noinclude> {{Documentation|content=Umhlahlandlelasakhiwo lesi silingana no: :<code><nowiki>[[File:Dialog-stop-hand.svg|{{Str number/trim|{{{1|30}}}}}px|Stop|alt=stop|link=|30px]]</nowiki></code> [[Category:Wikipedia-specific image insertion templates]] }} </noinclude>" 6556 wikitext text/x-wiki [[File:Dialog-stop-hand.svg|{{Str number/trim|{{{1|30}}}}}px|Stop|alt=stop|link=|30px]]<noinclude> {{Documentation|content=Umhlahlandlelasakhiwo lesi silingana no: :<code><nowiki>[[File:Dialog-stop-hand.svg|{{Str number/trim|{{{1|30}}}}}px|Stop|alt=stop|link=|30px]]</nowiki></code> [[Category:Wikipedia-specific image insertion templates]] }} </noinclude> rubci3vv7zawounilwlox7x3jvqplcv Umhlahlandlelasakhiwo:Bulb 10 1135 6557 2026-05-18T13:35:14Z NgamangaXhosa 1515 Created page with "[[File:Dialog-information on.svg|{{Str number/trim|{{{1|20}}}}}px|alt=Light bulb icon|link=|20px]]<span style="display:none">B</span><!--umhlahlandlelasakhiwo:bulb--><noinclude> {{documentation}} </noinclude>" 6557 wikitext text/x-wiki [[File:Dialog-information on.svg|{{Str number/trim|{{{1|20}}}}}px|alt=Light bulb icon|link=|20px]]<span style="display:none">B</span><!--umhlahlandlelasakhiwo:bulb--><noinclude> {{documentation}} </noinclude> 8ofq6cej28xtbevszdz0yag2egvn271 Umhlahlandlelasakhiwo:Warnsign 10 1136 6558 2026-05-18T13:37:42Z NgamangaXhosa 1515 Created page with "{{Respond|Ambox warning pn.svg|{{{1|Ukukhalima}}}}}<noinclude> {{Documentation}} <!--Please add this template's categories to the /doc subpage, not here - thanks!--> </noinclude>" 6558 wikitext text/x-wiki {{Respond|Ambox warning pn.svg|{{{1|Ukukhalima}}}}}<noinclude> {{Documentation}} <!--Please add this template's categories to the /doc subpage, not here - thanks!--> </noinclude> jy91y0i43shs4u08b9j2x3xahl8c10r Umhlahlandlelasakhiwo:AfD changed 10 1137 6559 2026-05-18T13:40:36Z NgamangaXhosa 1515 Created page with "* <small>'''Tjheja:''' I-imitlolo le '''itjhuguluke khulu''' solo yaphakanyiswa yi-AfD. ~<includeonly>~</includeonly>~~</small> <noinclude>{{Documentation}}</noinclude>" 6559 wikitext text/x-wiki * <small>'''Tjheja:''' I-imitlolo le '''itjhuguluke khulu''' solo yaphakanyiswa yi-AfD. ~<includeonly>~</includeonly>~~</small> <noinclude>{{Documentation}}</noinclude> 3nqklm1wvjy8uhmn8tkufqvaybrsgdk 6560 6559 2026-05-18T13:42:01Z NgamangaXhosa 1515 6560 wikitext text/x-wiki * <small>'''Tjheja:''' Iimitlolo le '''itjhuguluke khulu''' solo yaphakanyiswa yi-AfD. ~<includeonly>~</includeonly>~~</small> <noinclude>{{Documentation}}</noinclude> p3o5k1swafz0sxaokszieu77trmsw0g Umhlahlandlelasakhiwo:Mail 10 1138 6565 2026-05-19T02:58:14Z NgamangaXhosa 1515 Created page with "<includeonly>{{#if: {{NAMESPACE}} |[[File:Nuvola apps email.svg|16px|link=]] {{#if: {{{1|}}} | [[ Special:EmailUser/{{{1}}} | {{#if: {{{2|}}} | {{{2}}} | iposi {{{1}}} }} ]] | {{#switch: {{NAMESPACE}} | User | User talk = [[ Special:EmailUser/{{#titleparts: {{PAGENAME}}|1}} | ngithumelele iposi ]] | #default = {{error|Please specify user's name as first parameter.}} }} }} | {{error|Mail template not usable in article space!}} }}</incl..." 6565 wikitext text/x-wiki <includeonly>{{#if: {{NAMESPACE}} |[[File:Nuvola apps email.svg|16px|link=]] {{#if: {{{1|}}} | [[ Special:EmailUser/{{{1}}} | {{#if: {{{2|}}} | {{{2}}} | iposi {{{1}}} }} ]] | {{#switch: {{NAMESPACE}} | User | User talk = [[ Special:EmailUser/{{#titleparts: {{PAGENAME}}|1}} | ngithumelele iposi ]] | #default = {{error|Please specify user's name as first parameter.}} }} }} | {{error|Mail template not usable in article space!}} }}</includeonly><noinclude>{{mail|Example|iposi Example}}{{documentation}}</noinclude> l7ngfrqbxi4fljixqb0lt4xbr6mjyg0 Umhlahlandlelasakhiwo:Error 10 1139 6566 2026-05-19T02:59:20Z NgamangaXhosa 1515 Created page with "{{#invoke:Error|error|{{{message|{{{1}}}}}}|tag={{{tag|}}}}}<noinclude> {{documentation}} </noinclude>" 6566 wikitext text/x-wiki {{#invoke:Error|error|{{{message|{{{1}}}}}}|tag={{{tag|}}}}}<noinclude> {{documentation}} </noinclude> axsripqkyjus55mon24y6efvuedy0d2 Module:Error 828 1140 6567 2026-05-19T02:59:49Z NgamangaXhosa 1515 Created page with "-- 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',..." 6567 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 Umhlahlandlelasakhiwo:Helped 10 1141 6568 2026-05-19T03:02:52Z NgamangaXhosa 1515 Created page with "<span class="nowrap">[[File:Yes check.svg|20px|link=|alt=]] '''{{{1|Kusiziwe}}}'''</span><!--template:helped--><noinclude>{{documentation|content= [[Category:Image with comment templates]] }}</noinclude>" 6568 wikitext text/x-wiki <span class="nowrap">[[File:Yes check.svg|20px|link=|alt=]] '''{{{1|Kusiziwe}}}'''</span><!--template:helped--><noinclude>{{documentation|content= [[Category:Image with comment templates]] }}</noinclude> jhzbz1vq2cmocnh99o03w4hqv1wkmqm Umhlahlandlelasakhiwo:Blockedtaggedclosing 10 1142 6569 2026-05-19T03:06:30Z NgamangaXhosa 1515 Created page with "{{Respond|bluecheck|{{{1|Ivinjelwe begodu ithegiwe. Ukuvala.}}}}}<noinclude>{{documentation|content= [[Category:Image with comment templates|{{PAGENAME}}]] [[Category:SPI templates]]}} </noinclude>" 6569 wikitext text/x-wiki {{Respond|bluecheck|{{{1|Ivinjelwe begodu ithegiwe. Ukuvala.}}}}}<noinclude>{{documentation|content= [[Category:Image with comment templates|{{PAGENAME}}]] [[Category:SPI templates]]}} </noinclude> og3nmvb8i70o3hv1oxggix5ag82wqoy Umhlahlandlelasakhiwo:Agree 10 1143 6570 2026-05-19T03:08:13Z NgamangaXhosa 1515 Created page with "<span class="nowrap">[[File:Symbol confirmed.svg|20px|link=|alt=]] '''{{{1|Ukuvuma}}}'''</span><noinclude> {{Documentation}} <!--Categories go on the /doc subpage --> </noinclude>" 6570 wikitext text/x-wiki <span class="nowrap">[[File:Symbol confirmed.svg|20px|link=|alt=]] '''{{{1|Ukuvuma}}}'''</span><noinclude> {{Documentation}} <!--Categories go on the /doc subpage --> </noinclude> jxa1zj6yavwwslvas7fj0qt7ueukeak Umhlahlandlelasakhiwo:Location map 10 1144 6571 2026-05-19T03:09:10Z NgamangaXhosa 1515 Created page with "<includeonly>{{#invoke:Location map|main}}</includeonly><noinclude>{{documentation}}</noinclude>" 6571 wikitext text/x-wiki <includeonly>{{#invoke:Location map|main}}</includeonly><noinclude>{{documentation}}</noinclude> dg6vj3epjyfwx0m7tx62smhp6gs0y2u Module:Location map 828 1145 6572 2026-05-19T03:10:01Z NgamangaXhosa 1515 Created page with "require('strict') local p = {} local getArgs = require('Module:Arguments').getArgs local function round(n, decimals) local pow = 10^(decimals or 0) return math.floor(n * pow + 0.5) / pow end function p.getMapParams(map, frame) if not map then error('The name of the location map definition to use must be specified', 2) end local moduletitle = mw.title.new('Module:Location map/data/' .. map) if not moduletitle then error(string.format('%q is not a valid name..." 6572 Scribunto text/plain require('strict') local p = {} local getArgs = require('Module:Arguments').getArgs local function round(n, decimals) local pow = 10^(decimals or 0) return math.floor(n * pow + 0.5) / pow end function p.getMapParams(map, frame) if not map then error('The name of the location map definition to use must be specified', 2) end local moduletitle = mw.title.new('Module:Location map/data/' .. map) if not moduletitle then error(string.format('%q is not a valid name for a location map definition', map), 2) elseif moduletitle.exists then local mapData = mw.loadData('Module:Location map/data/' .. map) return function(name, params) if name == nil then return 'Module:Location map/data/' .. map elseif mapData[name] == nil then return '' elseif params then return mw.message.newRawMessage(tostring(mapData[name]), unpack(params)):plain() else return mapData[name] end end else error('Unable to find the specified location map definition: "Module:Location map/data/' .. map .. '" does not exist', 2) end end function p.data(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true}) end if not map then map = p.getMapParams(args[1], frame) end local params = {} for k,v in ipairs(args) do if k > 2 then params[k-2] = v end end return map(args[2], #params ~= 0 and params) end local hemisphereMultipliers = { longitude = { W = -1, w = -1, E = 1, e = 1 }, latitude = { S = -1, s = -1, N = 1, n = 1 } } local function decdeg(degrees, minutes, seconds, hemisphere, decimal, direction) if decimal then if degrees then error('Decimal and DMS degrees cannot both be provided for ' .. direction, 2) elseif minutes then error('Minutes can only be provided with DMS degrees for ' .. direction, 2) elseif seconds then error('Seconds can only be provided with DMS degrees for ' .. direction, 2) elseif hemisphere then error('A hemisphere can only be provided with DMS degrees for ' .. direction, 2) end local retval = tonumber(decimal) if retval then return retval end error('The value "' .. decimal .. '" provided for ' .. direction .. ' is not valid', 2) elseif seconds and not minutes then error('Seconds were provided for ' .. direction .. ' without minutes also being provided', 2) elseif not degrees then if minutes then error('Minutes were provided for ' .. direction .. ' without degrees also being provided', 2) elseif hemisphere then error('A hemisphere was provided for ' .. direction .. ' without degrees also being provided', 2) end return nil end decimal = tonumber(degrees) if not decimal then error('The degree value "' .. degrees .. '" provided for ' .. direction .. ' is not valid', 2) elseif minutes and not tonumber(minutes) then error('The minute value "' .. minutes .. '" provided for ' .. direction .. ' is not valid', 2) elseif seconds and not tonumber(seconds) then error('The second value "' .. seconds .. '" provided for ' .. direction .. ' is not valid', 2) end decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600 if hemisphere then local multiplier = hemisphereMultipliers[direction][hemisphere] if not multiplier then error('The hemisphere "' .. hemisphere .. '" provided for ' .. direction .. ' is not valid', 2) end decimal = decimal * multiplier end return decimal end -- Finds a parameter in a transclusion of {{Coord}}. local function coord2text(para,coord) -- this should be changed for languages which do not use Arabic numerals or the degree sign local lat, long = mw.ustring.match(coord,'<span class="p%-latitude latitude">([^<]+)</span><span class="p%-longitude longitude">([^<]+)</span>') if lat then return tonumber(para == 'longitude' and long or lat) end local result = mw.text.split(mw.ustring.match(coord,'%-?[%.%d]+°[NS] %-?[%.%d]+°[EW]') or '', '[ °]') if para == 'longitude' then result = {result[3], result[4]} end if not tonumber(result[1]) or not result[2] then mw.log('Malformed coordinates value') mw.logObject(para, 'para') mw.logObject(coord, 'coord') return error('Malformed coordinates value', 2) end return tonumber(result[1]) * hemisphereMultipliers[para][result[2]] end -- effectively make removeBlanks false for caption and maplink, and true for everything else -- if useWikidata is present but blank, convert it to false instead of nil -- p.top, p.bottom, and their callers need to use this function p.valueFunc(key, value) if value then value = mw.text.trim(value) end if value ~= '' or key == 'caption' or key == 'maplink' then return value elseif key == 'useWikidata' then return false end end local function getContainerImage(args, map) if args.AlternativeMap then return args.AlternativeMap elseif args.relief then local digits = mw.ustring.match(args.relief,'^[1-9][0-9]?$') or '1' -- image1 to image99 if map('image' .. digits) ~= '' then return map('image' .. digits) end end return map('image') end function p.top(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local width local default_as_number = tonumber(mw.ustring.match(tostring(args.default_width),"%d*")) if not args.width then width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1)) elseif mw.ustring.sub(args.width, -2) == 'px' then width = mw.ustring.sub(args.width, 1, -3) else width = args.width end local width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; if width_as_number == 0 then -- check to see if width is junk. If it is, then use default calculation width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1)) width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; end if args.max_width ~= "" and args.max_width ~= nil then -- check to see if width bigger than max_width local max_as_number = tonumber(mw.ustring.match(args.max_width,"%d*")) or 0; if width_as_number>max_as_number and max_as_number>0 then width = args.max_width; end end local retval = frame:extensionTag{name = 'templatestyles', args = {src = 'Module:Location map/styles.css'}} if args.float == 'center' then retval = retval .. '<div class="center">' end if args.caption and args.caption ~= '' and args.border ~= 'infobox' then retval = retval .. '<div class="locmap noresize thumb ' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'tleft' elseif args.float == '"center"' or args.float == 'center' or args.float == '"none"' or args.float == 'none' then retval = retval .. 'tnone' else retval = retval .. 'tright' end retval = retval .. '"><div class="thumbinner" style="width:' .. (width + 2) .. 'px' if args.border == 'none' then retval = retval .. ';border:none' elseif args.border then retval = retval .. ';border-color:' .. args.border end retval = retval .. '"><div style="position:relative;width:' .. width .. 'px' .. (args.border ~= 'none' and ';border:1px solid lightgray">' or '">') else retval = retval .. '<div class="locmap" style="width:' .. width .. 'px;' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'float:left;clear:left' elseif args.float == '"center"' or args.float == 'center' then retval = retval .. 'float:none;clear:both;margin-left:auto;margin-right:auto' elseif args.float == '"none"' or args.float == 'none' then retval = retval .. 'float:none;clear:none' else retval = retval .. 'float:right;clear:right' end retval = retval .. '"><div style="width:' .. width .. 'px;padding:0"><div style="position:relative;width:' .. width .. 'px">' end local image = getContainerImage(args, map) local currentTitle = mw.title.getCurrentTitle() retval = string.format( '%s[[File:%s|%spx|%s%s|class=notpageimage noviewer]]', retval, image, width, args.alt or ((args.label or currentTitle.text) .. ' is located in ' .. map('name')), args.maplink and ('|link=' .. args.maplink) or '' ) if args.caption and args.caption ~= '' then if (currentTitle.namespace == 0) and mw.ustring.find(args.caption, '##') then retval = retval .. '[[Category:Pages using location map with a double number sign in the caption]]' end end if args.overlay_image then return retval .. '<div style="position:absolute;top:0;left:0">[[File:' .. args.overlay_image .. '|' .. width .. 'px|class=notpageimage noviewer]]</div>' else return retval end end function p.bottom(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local retval = '</div>' local currentTitle = mw.title.getCurrentTitle() if not args.caption or args.border == 'infobox' then if args.border then retval = retval .. '<div style="padding-top:0.2em">' else retval = retval .. '<div style="font-size:91%;padding-top:3px">' end retval = retval .. (args.caption or (args.label or currentTitle.text) .. ' (' .. map('name') .. ')') .. '</div>' elseif args.caption ~= '' then -- This is not the pipe trick. We're creating a link with no text on purpose, so that CSS can give us a nice image retval = retval .. '<div class="thumbcaption"><div class="magnify">[[:File:' .. getContainerImage(args, map) .. '| ]]</div>' .. args.caption .. '</div>' end if args.switcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. args.switcherLabel .. '</span>' elseif args.autoSwitcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">Show map of ' .. map('name') .. '</span>' end retval = retval .. '</div></div>' if args.caption_undefined then mw.log('Removed parameter caption_undefined used.') local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then retval = retval .. '[[Category:Location maps with removed parameters|caption_undefined]]' end end if map('skew') ~= '' or map('lat_skew') ~= '' or map('crosses180') ~= '' or map('type') ~= '' then mw.log('Removed parameter used in map definition ' .. map()) if currentTitle.namespace == 0 then local key = (map('skew') ~= '' and 'skew' or '') .. (map('lat_skew') ~= '' and 'lat_skew' or '') .. (map('crosses180') ~= '' and 'crosses180' or '') .. (map('type') ~= '' and 'type' or '') retval = retval .. '[[Category:Location maps with removed parameters|' .. key .. ' ]]' end end if string.find(map('name'), '|', 1, true) then mw.log('Pipe used in name of map definition ' .. map()) if currentTitle.namespace == 0 then retval = retval .. '[[Category:Location maps with a name containing a pipe]]' end end if args.float == 'center' then retval = retval .. '</div>' end return retval end local function markOuterDiv(x, y, imageDiv, labelDiv, label_size) return mw.html.create('div') :addClass('od') :addClass('notheme') -- T236137 :cssText('top:' .. round(y, 3) .. '%;left:' .. round(x, 3) .. '%;font-size:' .. label_size .. '%') :node(imageDiv) :node(labelDiv) end local function markImageDiv(mark, marksize, label, link, alt, title) local builder = mw.html.create('div') :addClass('id') :cssText('left:-' .. round(marksize / 2) .. 'px;top:-' .. round(marksize / 2) .. 'px') :attr('title', title) if marksize ~= 0 then builder:wikitext(string.format( '[[File:%s|%dx%dpx|%s|link=%s%s|class=notpageimage noviewer]]', mark, marksize, marksize, label, link, alt and ('|alt=' .. alt) or '' )) end return builder end local function markLabelDiv(label, label_size, label_width, position, background, x, marksize) if tonumber(label_size) == 0 then return mw.html.create('div'):addClass('l0'):wikitext(label) end local builder = mw.html.create('div') :cssText('width:' .. label_width .. 'em') local distance = round(marksize / 2 + 1) if position == 'top' then -- specified top builder:addClass('pv'):cssText('bottom:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'bottom' then -- specified bottom builder:addClass('pv'):cssText('top:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'left' or (tonumber(x) > 70 and position ~= 'right') then -- specified left or autodetected to left builder:addClass('pl'):cssText('right:' .. distance .. 'px') else -- specified right or autodetected to right builder:addClass('pr'):cssText('left:' .. distance .. 'px') end builder = builder:tag('div') :wikitext(label) if background then builder:cssText('background-color:' .. background) end return builder:done() end local function getX(longitude, left, right) local width = (right - left) % 360 if width == 0 then width = 360 end local distanceFromLeft = (longitude - left) % 360 -- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter if distanceFromLeft - width / 2 >= 180 then distanceFromLeft = distanceFromLeft - 360 end return 100 * distanceFromLeft / width end local function getY(latitude, top, bottom) return 100 * (top - latitude) / (top - bottom) end function p.mark(frame, args, map) if not args then args = getArgs(frame, {wrappers = 'Template:Location map~'}) end local mapnames = {} if not map then if args[1] then map = {} for mapname in mw.text.gsplit(args[1], '#', true) do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) mapnames[#mapnames + 1] = mapname end if #map == 1 then map = map[1] end else map = p.getMapParams('World', frame) args[1] = 'World' end end if type(map) == 'table' then local outputs = {} local oldargs = args[1] for k,v in ipairs(map) do args[1] = mapnames[k] outputs[k] = tostring(p.mark(frame, args, v)) end args[1] = oldargs return table.concat(outputs, '#PlaceList#') .. '#PlaceList#' end local x, y, longitude, latitude longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude') latitude = decdeg(args.lat_deg, args.lat_min, args.lat_sec, args.lat_dir, args.lat, 'latitude') if args.excludefrom then -- If this mark is to be excluded from certain maps entirely (useful in the context of multiple maps) for exclusionmap in mw.text.gsplit(args.excludefrom, '#', true) do -- Check if this map is excluded. If so, return an empty string. if args[1] == exclusionmap then return '' end end end local builder = mw.html.create() local currentTitle = mw.title.getCurrentTitle() if args.coordinates then -- Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]] -- if longitude or latitude then -- error('Coordinates from [[Module:Coordinates]] and individual coordinates cannot both be provided') -- end longitude = coord2text('longitude', args.coordinates) latitude = coord2text('latitude', args.coordinates) elseif not longitude and not latitude and args.useWikidata then -- If they didn't provide either coordinate, try Wikidata. If they provided one but not the other, don't. local entity = mw.wikibase.getEntity() if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local value = entity.claims.P625[1].mainsnak.datavalue.value longitude, latitude = value.longitude, value.latitude end if args.link and (currentTitle.namespace == 0) then builder:wikitext('[[Category:Location maps with linked markers with coordinates from Wikidata]]') end end if not longitude then error('No value was provided for longitude') elseif not latitude then error('No value was provided for latitude') end if currentTitle.namespace > 0 then if (not args.lon_deg) ~= (not args.lat_deg) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Degrees]]') elseif (not args.lon_min) ~= (not args.lat_min) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Minutes]]') elseif (not args.lon_sec) ~= (not args.lat_sec) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Seconds]]') elseif (not args.lon_dir) ~= (not args.lat_dir) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Hemisphere]]') elseif (not args.long) ~= (not args.lat) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Decimal]]') end end if ((tonumber(args.lat_deg) or 0) < 0) and ((tonumber(args.lat_min) or 0) ~= 0 or (tonumber(args.lat_sec) or 0) ~= 0 or (args.lat_dir and args.lat_dir ~='')) then builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]') end if ((tonumber(args.lon_deg) or 0) < 0) and ((tonumber(args.lon_min) or 0) ~= 0 or (tonumber(args.lon_sec) or 0) ~= 0 or (args.lon_dir and args.lon_dir ~= '')) then builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]') end if (((tonumber(args.lat_min) or 0) < 0) or ((tonumber(args.lat_sec) or 0) < 0)) then builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]') end if (((tonumber(args.lon_min) or 0) < 0) or ((tonumber(args.lon_sec) or 0) < 0)) then builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]') end if args.skew or args.lon_shift or args.markhigh then mw.log('Removed parameter used in invocation.') local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = (args.skew and 'skew' or '') .. (args.lon_shift and 'lon_shift' or '') .. (args.markhigh and 'markhigh' or '') builder:wikitext('[[Category:Location maps with removed parameters|' .. key ..' ]]') end end if map('x') ~= '' then x = tonumber(mw.ext.ParserFunctions.expr(map('x', { latitude, longitude }))) else x = tonumber(getX(longitude, map('left'), map('right'))) end if map('y') ~= '' then y = tonumber(mw.ext.ParserFunctions.expr(map('y', { latitude, longitude }))) else y = tonumber(getY(latitude, map('top'), map('bottom'))) end if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then mw.log('Mark placed outside map boundaries without outside flag set. x = ' .. x .. ', y = ' .. y) local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = currentTitle.prefixedText builder:wikitext('[[Category:Location maps with marks outside map and outside parameter not set|' .. key .. ' ]]') end end local mark = args.mark or map('mark') if mark == '' then mark = 'Red pog.svg' end local marksize = tonumber(args.marksize) or tonumber(map('marksize')) or 8 local imageDiv = markImageDiv(mark, marksize, args.label or mw.title.getCurrentTitle().text, args.link or '', args.alt, args[2]) local label_size = args.label_size or 91 local labelDiv if args.label and args.position ~= 'none' then labelDiv = markLabelDiv(args.label, label_size, args.label_width or 6, args.position, args.background, x, marksize) end return builder:node(markOuterDiv(x, y, imageDiv, labelDiv, label_size)) end local function switcherSeparate(s) if s == nil then return {} end local retval = {} for i in string.gmatch(s .. '#', '([^#]*)#') do i = mw.text.trim(i) retval[#retval + 1] = (i ~= '' and i) end return retval end function p.main(frame, args, map) local caption_list = {} if not args then args = getArgs(frame, {wrappers = 'Template:Location map', valueFunc = p.valueFunc}) end if args.useWikidata == nil then args.useWikidata = true end if not map then if args[1] then map = {} for mapname in string.gmatch(args[1], '[^#]+') do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) end if args['caption'] then if args['caption'] == "" then while #caption_list < #map do caption_list[#caption_list + 1] = args['caption'] end else for caption in mw.text.gsplit(args['caption'], '##', true) do caption_list[#caption_list + 1] = caption end end end if #map == 1 then map = map[1] end else map = p.getMapParams('World', frame) end end if type(map) == 'table' then local altmaps = switcherSeparate(args.AlternativeMap) if #altmaps > #map then error(string.format('%d AlternativeMaps were provided, but only %d maps were provided', #altmaps, #map)) end local overlays = switcherSeparate(args.overlay_image) if #overlays > #map then error(string.format('%d overlay_images were provided, but only %d maps were provided', #overlays, #map)) end if #caption_list > #map then error(string.format('%d captions were provided, but only %d maps were provided', #caption_list, #map)) end local outputs = {} args.autoSwitcherLabel = true for k,v in ipairs(map) do args.AlternativeMap = altmaps[k] args.overlay_image = overlays[k] args.caption = caption_list[k] outputs[k] = p.main(frame, args, v) end return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>' else return p.top(frame, args, map) .. tostring( p.mark(frame, args, map) ) .. p.bottom(frame, args, map) end end return p 07icxbtq9eg84dyuhbuyo1sfebx4tq4 Umhlahlandlelasakhiwo:Main 10 1146 6573 2026-05-19T03:12:41Z NgamangaXhosa 1515 Created page with "''Umtlolo omkhulu: [[{{{1}}}]]'' <noinclude>{{documentation}}</noinclude>" 6573 wikitext text/x-wiki ''Umtlolo omkhulu: [[{{{1}}}]]'' <noinclude>{{documentation}}</noinclude> 44gfwr2qifffu2wkrjhdkcq6392wqwh Umhlahlandlelasakhiwo:Die 10 1147 6574 2026-05-19T03:17:50Z NgamangaXhosa 1515 Created page with "<span style="margin:0em 0.1em">[[File:{{#switch: {{{1|}}}{{{color|}}} |2red=Kismet-Deuce.png |3green=Kismet-Trey.png |4green=Kismet-Four.png |5red=Kismet-Five.png |3red=Dice-3.png |6red=Dice-6.png |#default={{#ifeq:{{{1}}}|0 |Dice-0.png |{{#ifeq:{{{color|}}}|blue |DFace {{{1}}}B |Die face {{{1}}}{{#ifeq: {{{color|}}} | red |r|b}} }}.svg }} }}|frameless|upright=0.13|alt={{{1}}}]]</span>{{#if: {{{2|}}} |{{{separator|}}}<span style="m..." 6574 wikitext text/x-wiki <span style="margin:0em 0.1em">[[File:{{#switch: {{{1|}}}{{{color|}}} |2red=Kismet-Deuce.png |3green=Kismet-Trey.png |4green=Kismet-Four.png |5red=Kismet-Five.png |3red=Dice-3.png |6red=Dice-6.png |#default={{#ifeq:{{{1}}}|0 |Dice-0.png |{{#ifeq:{{{color|}}}|blue |DFace {{{1}}}B |Die face {{{1}}}{{#ifeq: {{{color|}}} | red |r|b}} }}.svg }} }}|frameless|upright=0.13|alt={{{1}}}]]</span>{{#if: {{{2|}}} |{{{separator|}}}<span style="margin:0em 0.1em">[[File:{{#switch: {{{2|}}}{{{color|}}} |2red=Kismet-Deuce.png |3green=Kismet-Trey.png |4green=Kismet-Four.png |5red=Kismet-Five.png |3red=Dice-3.png |6red=Dice-6.png |#default={{#ifeq:{{{2}}}|0 |Dice-0.png |{{#ifeq:{{{color|}}}|blue |DFace {{{2}}}B |Die face {{{2}}}{{#ifeq: {{{color|}}} | red |r|b}} }}.svg }} }}|frameless|upright=0.13|alt={{{2}}}]]</span> |}}{{#if: {{{3|}}} |{{{separator|}}}<span style="margin:0em 0.1em">[[File:{{#switch: {{{3|}}}{{{color|}}} |2red=Kismet-Deuce.png |3green=Kismet-Trey.png |4green=Kismet-Four.png |5red=Kismet-Five.png |3red=Dice-3.png |6red=Dice-6.png |#default={{#ifeq:{{{3}}}|0 |Dice-0.png |{{#ifeq:{{{color|}}}|blue |DFace {{{3}}}B |Die face {{{3}}}{{#ifeq: {{{color|}}} | red |r|b}} }}.svg }} }}|frameless|upright=0.13|alt={{{3}}}]]</span> |}}{{#if: {{{4|}}} |{{{separator|}}}<span style="margin:0em 0.1em">[[File:{{#switch: {{{4|}}}{{{color|}}} |2red=Kismet-Deuce.png |3green=Kismet-Trey.png |4green=Kismet-Four.png |5red=Kismet-Five.png |3red=Dice-3.png |6red=Dice-6.png |#default={{#ifeq:{{{4}}}|0 |Dice-0.png |{{#ifeq:{{{color|}}}|blue |DFace {{{4}}}B |Die face {{{4}}}{{#ifeq: {{{color|}}} | red |r|b}} }}.svg }} }}|frameless|upright=0.13|alt={{{4}}}]]</span> |}}{{#if: {{{5|}}} |{{{separator|}}}<span style="margin:0em 0.1em">[[File:{{#switch: {{{5|}}}{{{color|}}} |2red=Kismet-Deuce.png |3green=Kismet-Trey.png |4green=Kismet-Four.png |5red=Kismet-Five.png |3red=Dice-3.png |6red=Dice-6.png |#default={{#ifeq:{{{5}}}|0 |Dice-0.png |{{#ifeq:{{{color|}}}|blue |DFace {{{5}}}B |Die face {{{5}}}{{#ifeq: {{{color|}}} | red |r|b}} }}.svg }} }}|frameless|upright=0.13|alt={{{5}}}]]</span> |}}{{#if: {{{6|}}} |{{{separator|}}}<span style="margin:0em 0.1em">[[File:{{#switch: {{{6|}}}{{{color|}}} |2red=Kismet-Deuce.png |3green=Kismet-Trey.png |4green=Kismet-Four.png |5red=Kismet-Five.png |3red=Dice-3.png |6red=Dice-6.png |#default={{#ifeq:{{{6}}}|0 |Dice-0.png |{{#ifeq:{{{color|}}}|blue |DFace {{{6}}}B |Die face {{{6}}}{{#ifeq: {{{color|}}} | red |r|b}} }}.svg }} }}|frameless|upright=0.13|alt={{{6}}}]]</span> |}}<noinclude> {{Documentation}} <!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --> </noinclude> 9gsy7iq9brl9y1v2iz2drcois6edfn1 Wikiphidiya:Iimbawo zokuqondisa kabutjha 4 1148 6576 2026-05-19T05:41:13Z NgamangaXhosa 1515 Created page with "Ikhasi leli liqukethe iimbawo '''zokuqondisa kabutjha''' okutjha okwenziwe ngendlela ye-Athikili yokuDala. Nanyana yini engasi isibawo sokuqondisa kabutjha izokulahlwa ngokuzenzakalelayo nofana isuswe. Yenza iimbawo ngokusebenzisa indlela le: <code><nowiki>== Redirect request: [[...]] ==</nowiki> <nowiki>*Target of redirect: [[...]]</nowiki> <nowiki>*Reason: ...</nowiki> <nowiki>*Source (if applicable): ...</nowiki> <nowiki>~~~~</nowiki></code> ----" 6576 wikitext text/x-wiki Ikhasi leli liqukethe iimbawo '''zokuqondisa kabutjha''' okutjha okwenziwe ngendlela ye-Athikili yokuDala. Nanyana yini engasi isibawo sokuqondisa kabutjha izokulahlwa ngokuzenzakalelayo nofana isuswe. Yenza iimbawo ngokusebenzisa indlela le: <code><nowiki>== Redirect request: [[...]] ==</nowiki> <nowiki>*Target of redirect: [[...]]</nowiki> <nowiki>*Reason: ...</nowiki> <nowiki>*Source (if applicable): ...</nowiki> <nowiki>~~~~</nowiki></code> ---- ci9kiimxpwe00v294tm0zt207o05bdd 6577 6576 2026-05-19T05:42:10Z NgamangaXhosa 1515 6577 wikitext text/x-wiki Ikhasi leli liqukethe iimbawo '''zokuqondisa kabutjha''' okutjha okwenziwe ngendlela ye-[[Wikiphidiya:Athikili yokuDala|Athikili yokuDala]]. Nanyana yini engasi isibawo sokuqondisa kabutjha izokulahlwa ngokuzenzakalelayo nofana isuswe. Yenza iimbawo ngokusebenzisa indlela le: <code><nowiki>== Redirect request: [[...]] ==</nowiki> <nowiki>*Target of redirect: [[...]]</nowiki> <nowiki>*Reason: ...</nowiki> <nowiki>*Source (if applicable): ...</nowiki> <nowiki>~~~~</nowiki></code> ---- 30dtyre5dwljjtk7u9rgx7hp2ui8huk 6579 6577 2026-05-19T05:46:31Z ThatEquatorialGuineaEditor (alt) 1517 6579 wikitext text/x-wiki Ikhasi leli liqukethe iimbawo '''zokuqondisa kabutjha''' okutjha okwenziwe ngendlela ye-[[Wikiphidiya:Athikili yokuDala|Athikili yokuDala]]. Nanyana yini engasi isibawo sokuqondisa kabutjha izokulahlwa ngokuzenzakalelayo nofana isuswe. Yenza iimbawo ngokusebenzisa indlela le: <code><nowiki>== Redirect request: [[...]] ==</nowiki> <nowiki>*Target of redirect: [[...]]</nowiki> <nowiki>*Reason: ...</nowiki> <nowiki>*Source (if applicable): ...</nowiki> <nowiki>~~~~</nowiki></code> ---- == Redirect request: [[IsiNdebele]] == *Target of redirect: [[Isindebele]] *Reason: Amaledere amakhulu, madoda. *Source (if applicable): ... [[Umsebenzisi:ThatEquatorialGuineaEditor (alt)|ThatEquatorialGuineaEditor (alt)]] ([[Umsebenzisi asiqongelane:ThatEquatorialGuineaEditor (alt)|talk]]) 07:46, 19 Nkwenkwezi 2026 (SAST) tb0tc0877gkzu3l9vw1e5sh7bmf9uik 6581 6579 2026-05-19T05:48:22Z NgamangaXhosa 1515 /* Redirect request: IsiNdebele */ Reply 6581 wikitext text/x-wiki Ikhasi leli liqukethe iimbawo '''zokuqondisa kabutjha''' okutjha okwenziwe ngendlela ye-[[Wikiphidiya:Athikili yokuDala|Athikili yokuDala]]. Nanyana yini engasi isibawo sokuqondisa kabutjha izokulahlwa ngokuzenzakalelayo nofana isuswe. Yenza iimbawo ngokusebenzisa indlela le: <code><nowiki>== Redirect request: [[...]] ==</nowiki> <nowiki>*Target of redirect: [[...]]</nowiki> <nowiki>*Reason: ...</nowiki> <nowiki>*Source (if applicable): ...</nowiki> <nowiki>~~~~</nowiki></code> ---- == Redirect request: [[IsiNdebele]] == *Target of redirect: [[Isindebele]] *Reason: Amaledere amakhulu, madoda. *Source (if applicable): ... [[Umsebenzisi:ThatEquatorialGuineaEditor (alt)|ThatEquatorialGuineaEditor (alt)]] ([[Umsebenzisi asiqongelane:ThatEquatorialGuineaEditor (alt)|talk]]) 07:46, 19 Nkwenkwezi 2026 (SAST) :*{{Done}}. Ngiyathokoza ngokusiza iWikipedia! [[Umsebenzisi:NgamangaXhosa|NgamangaXhosa]] ([[Umsebenzisi asiqongelane:NgamangaXhosa|talk]]) 07:48, 19 Nkwenkwezi 2026 (SAST) 287l6z9jxg7s22yhly2o54cp4vntvv3 6582 6581 2026-05-19T05:48:45Z NgamangaXhosa 1515 6582 wikitext text/x-wiki Ikhasi leli liqukethe iimbawo '''zokuqondisa kabutjha''' okutjha okwenziwe ngendlela ye-[[Wikiphidiya:Athikili yokuDala|Athikili yokuDala]]. Nanyana yini engasi isibawo sokuqondisa kabutjha izokulahlwa ngokuzenzakalelayo nofana isuswe. Yenza iimbawo ngokusebenzisa indlela le: <code><nowiki>== Redirect request: [[...]] ==</nowiki> <nowiki>*Target of redirect: [[...]]</nowiki> <nowiki>*Reason: ...</nowiki> <nowiki>*Source (if applicable): ...</nowiki> <nowiki>~~~~</nowiki></code> ---- == Redirect request: [[IsiNdebele]] == *Target of redirect: [[Isindebele]] *Reason: Amaledere amakhulu, madoda. *Source (if applicable): ... [[Umsebenzisi:ThatEquatorialGuineaEditor (alt)|ThatEquatorialGuineaEditor (alt)]] ([[Umsebenzisi asiqongelane:ThatEquatorialGuineaEditor (alt)|talk]]) 07:46, 19 Nkwenkwezi 2026 (SAST) :{{Done}}. Ngiyathokoza ngokusiza iWikipedia! [[Umsebenzisi:NgamangaXhosa|NgamangaXhosa]] ([[Umsebenzisi asiqongelane:NgamangaXhosa|talk]]) 07:48, 19 Nkwenkwezi 2026 (SAST) 284pnsgmhdpbcc52vxqn2ov2p3xfjzu 6625 6582 2026-05-19T11:39:05Z NgamangaXhosa 1515 6625 wikitext text/x-wiki Ikhasi leli liqukethe iimbawo '''zokuqondisa kabutjha''' okutjha okwenziwe ngendlela ye-[[Wikiphidiya:Athikili yokuDala|Athikili yokuDala]]. Nanyana yini engasi isibawo sokuqondisa kabutjha izokulahlwa ngokuzenzakalelayo nofana isuswe. Yenza iimbawo ngokusebenzisa indlela le: <code><nowiki>== Redirect request: [[...]] ==</nowiki> <nowiki>*Target of redirect: [[...]]</nowiki> <nowiki>*Reason: ...</nowiki> <nowiki>*Source (if applicable): ...</nowiki> <nowiki>~~~~</nowiki></code> ---- == Redirect request: [[IsiNdebele]] == *Target of redirect: [[Isindebele]] *Reason: Amaledere amakhulu, madoda. *Source (if applicable): ... [[Umsebenzisi:ThatEquatorialGuineaEditor (alt)|ThatEquatorialGuineaEditor (alt)]] ([[Umsebenzisi asiqongelane:ThatEquatorialGuineaEditor (alt)|talk]]) 07:46, 19 Nkwenkwezi 2026 (SAST) :{{Done}}. Ngiyathokoza ngokusiza iWikiphidiya! [[Umsebenzisi:NgamangaXhosa|NgamangaXhosa]] ([[Umsebenzisi asiqongelane:NgamangaXhosa|talk]]) 07:48, 19 Nkwenkwezi 2026 (SAST) e8ivizrdb8hp5ex1rycra23ry6pqqbb Umsebenzisi:ThatEquatorialGuineaEditor (alt) 2 1149 6578 2026-05-19T05:43:49Z ThatEquatorialGuineaEditor (alt) 1517 Created page with "{{#babel:es|nr-3}} Habari." 6578 wikitext text/x-wiki {{#babel:es|nr-3}} Habari. cqt3syp4w23jo2fd9lfpuakugr7dc44 Umsebenzisi asiqongelane:ThatEquatorialGuineaEditor (alt) 3 1150 6580 2026-05-19T05:47:01Z NgamangaXhosa 1515 /* Une-imeyela! */ new section 6580 wikitext text/x-wiki == Une-imeyela! == {{ygm}} [[Umsebenzisi:NgamangaXhosa|NgamangaXhosa]] ([[Umsebenzisi asiqongelane:NgamangaXhosa|talk]]) 07:47, 19 Nkwenkwezi 2026 (SAST) lwfy1wymq1mbeq1qa3c81x0xhye0cvo IsiNdebele 0 1151 6583 2026-05-19T05:49:01Z NgamangaXhosa 1515 Redirected page to [[Isindebele]] 6583 wikitext text/x-wiki #REDIRECT [[Isindebele]] syazeneobecpkgm25s34ks2kndd9cfb Umsebenzisi asiqongelane:NgamangaXhosa 3 1152 6584 2026-05-19T05:51:28Z ThatEquatorialGuineaEditor (alt) 1517 /* Ngiyathokoza */ new section 6584 wikitext text/x-wiki == Ngiyathokoza == {{Thank you}} ngokungisiza ukuhlela i-Wikipedia ngesiNdebele seSewuta. [[Umsebenzisi:ThatEquatorialGuineaEditor (alt)|ThatEquatorialGuineaEditor (alt)]] ([[Umsebenzisi asiqongelane:ThatEquatorialGuineaEditor (alt)|talk]]) 07:51, 19 Nkwenkwezi 2026 (SAST) 2hsaktnwzr87714p9vp2sx62nt8wv90 6585 6584 2026-05-19T05:51:51Z NgamangaXhosa 1515 /* Ngiyathokoza */ Reply 6585 wikitext text/x-wiki == Ngiyathokoza == {{Thank you}} ngokungisiza ukuhlela i-Wikipedia ngesiNdebele seSewuta. [[Umsebenzisi:ThatEquatorialGuineaEditor (alt)|ThatEquatorialGuineaEditor (alt)]] ([[Umsebenzisi asiqongelane:ThatEquatorialGuineaEditor (alt)|talk]]) 07:51, 19 Nkwenkwezi 2026 (SAST) :{{You're welcome}} [[Umsebenzisi:NgamangaXhosa|NgamangaXhosa]] ([[Umsebenzisi asiqongelane:NgamangaXhosa|talk]]) 07:51, 19 Nkwenkwezi 2026 (SAST) r30h28sv62osvffd79j12c3s7dm3ol2 6586 6585 2026-05-19T05:52:08Z NgamangaXhosa 1515 6586 wikitext text/x-wiki == Ngiyathokoza == {{Thank you}} ngokungisiza ukuhlela i-Wikipedia ngesiNdebele seSewuta. [[Umsebenzisi:ThatEquatorialGuineaEditor (alt)|ThatEquatorialGuineaEditor (alt)]] ([[Umsebenzisi asiqongelane:ThatEquatorialGuineaEditor (alt)|talk]]) 07:51, 19 Nkwenkwezi 2026 (SAST) :{{You're welcome}} [[Umsebenzisi:NgamangaXhosa|NgamangaXhosa]] ([[Umsebenzisi asiqongelane:NgamangaXhosa|talk]]) 07:52, 19 Nkwenkwezi 2026 (SAST) 287ymmzvw4ak9hq921imj08l9woe7ud Umsebenzisi asiqongelane:MikitkoSynAlexeev 3 1153 6596 2026-05-19T06:21:43Z NgamangaXhosa 1515 Created page with "{{Not around|{{PAGENAME}}}}" 6596 wikitext text/x-wiki {{Not around|{{PAGENAME}}}} 43ncr18fghi0wiy07np8ue17ph7aec0 Umhlahlandlelasakhiwo:Mbox 10 1154 6598 2026-05-19T06:25:01Z NgamangaXhosa 1515 Created page with "{{#invoke:Message box|mbox}}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --> </noinclude>" 6598 wikitext text/x-wiki {{#invoke:Message box|mbox}}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --> </noinclude> aqsrswx233se5jbjaza2b2hrk7pgx53 Module:Message box/configuration 828 1155 6599 2026-05-19T06:27:25Z NgamangaXhosa 1515 Created page with "-------------------------------------------------------------------------------- -- Message box configuration -- -- -- -- This module contains configuration data for [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-spee..." 6599 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 Module:Category handler/data 828 1156 6600 2026-05-19T06:29:54Z NgamangaXhosa 1515 Created page with "-- 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(..." 6600 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 1157 6601 2026-05-19T06:31:08Z NgamangaXhosa 1515 Created page with "-------------------------------------------------------------------------------- -- [[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. ----------------------------..." 6601 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 1158 6602 2026-05-19T06:32:13Z NgamangaXhosa 1515 Created page with "-- 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..." 6602 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 1159 6603 2026-05-19T06:32:40Z NgamangaXhosa 1515 Created page with "-- 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 userbo..." 6603 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 Module:Namespace detect/data 828 1160 6604 2026-05-19T06:33:13Z NgamangaXhosa 1515 Created page with "-------------------------------------------------------------------------------- -- 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..." 6604 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 1161 6605 2026-05-19T06:33:40Z NgamangaXhosa 1515 Created page with "-------------------------------------------------------------------------------- -- Namespace detect configuration data -- -- -- -- This module stores configuration data for Module:Namespace detect. Here -- -- you can localise the module to your wiki's language. -- --..." 6605 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 Umhlahlandlelasakhiwo:Tmbox 10 1162 6608 2026-05-19T06:37:59Z NgamangaXhosa 1515 Created page with "{{#invoke:Message box|tmbox}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>" 6608 wikitext text/x-wiki {{#invoke:Message box|tmbox}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> jcav8pdjkvcwg8gc4m0b4gox7yjnxku Module:Message box/tmbox.css 828 1163 6610 2026-05-19T06:40:26Z NgamangaXhosa 1515 Created page with "/* {{pp|small=y}} */ .tmbox { margin: 4px 0; border-collapse: collapse; border: 1px solid #c0c090; /* Default "notice" gray-brown */ background-color: #f8eaba; box-sizing: border-box; } /* For the "small=yes" option. */ .tmbox.mbox-small { font-size: 88%; line-height: 1.25em; } .tmbox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .tmbox-delete { border: 2px solid #b32424; /* Red */ } .tmbox-content { bord..." 6610 sanitized-css text/css /* {{pp|small=y}} */ .tmbox { margin: 4px 0; border-collapse: collapse; border: 1px solid #c0c090; /* Default "notice" gray-brown */ background-color: #f8eaba; box-sizing: border-box; } /* For the "small=yes" option. */ .tmbox.mbox-small { font-size: 88%; line-height: 1.25em; } .tmbox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .tmbox-delete { border: 2px solid #b32424; /* Red */ } .tmbox-content { border: 2px solid #f28500; /* Orange */ } .tmbox-style { border: 2px solid #fc3; /* Yellow */ } .tmbox-move { border: 2px solid #9932cc; /* Purple */ } .tmbox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .tmbox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .tmbox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .tmbox .mbox-empty-cell { border: none; padding: 0; width: 1px; } /* keep synced with each other type of message box as this isn't qualified */ .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .tmbox { margin: 4px 10%; } .tmbox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } @media screen { html.skin-theme-clientpref-night .tmbox { background-color: #2e2505; /* Dark brown, same hue/saturation as light */ } html.skin-theme-clientpref-night .tmbox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .tmbox { background-color: #2e2505; /* Dark brown, same hue/saturation as light */ } html.skin-theme-clientpref-os .tmbox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } /** T367463 */ body.skin--responsive table.tmbox img { max-width: none !important; } ffh2lypp0mcty5c7j53ntmwywlflceo 6614 6610 2026-05-19T06:46:25Z NgamangaXhosa 1515 6614 sanitized-css text/css .tmbox { margin: 4px 0; border-collapse: collapse; border: 1px solid #c0c090; /* Default "notice" gray-brown */ background-color: #f8eaba; box-sizing: border-box; } /* For the "small=yes" option. */ .tmbox.mbox-small { font-size: 88%; line-height: 1.25em; } .tmbox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .tmbox-delete { border: 2px solid #b32424; /* Red */ } .tmbox-content { border: 2px solid #f28500; /* Orange */ } .tmbox-style { border: 2px solid #fc3; /* Yellow */ } .tmbox-move { border: 2px solid #9932cc; /* Purple */ } .tmbox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .tmbox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .tmbox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .tmbox .mbox-empty-cell { border: none; padding: 0; width: 1px; } /* keep synced with each other type of message box as this isn't qualified */ .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .tmbox { margin: 4px 10%; } .tmbox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } @media screen { html.skin-theme-clientpref-night .tmbox { background-color: #2e2505; /* Dark brown, same hue/saturation as light */ } html.skin-theme-clientpref-night .tmbox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .tmbox { background-color: #2e2505; /* Dark brown, same hue/saturation as light */ } html.skin-theme-clientpref-os .tmbox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } /** T367463 */ body.skin--responsive table.tmbox img { max-width: none !important; } 85ylhi9duvtn6hrmfoxd35tfl1431pb Module:Message box/ombox.css 828 1164 6611 2026-05-19T06:41:10Z NgamangaXhosa 1515 Created page with "/* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: var(--background-color-neutral-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-de..." 6611 sanitized-css text/css /* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: var(--background-color-neutral-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-delete { border: 2px solid #b32424; /* Red */ } .ombox-content { border: 1px solid #f28500; /* Orange */ } .ombox-style { border: 1px solid #fc3; /* Yellow */ } .ombox-move { border: 1px solid #9932cc; /* Purple */ } .ombox-protection { border: 2px solid #a2a9b1; /* Gray-gold */ } .ombox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .ombox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .ombox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .ombox .mbox-empty-cell { border: none; padding: 0; width: 1px; } /* keep synced with each other type of message box as this isn't qualified */ .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .ombox { margin: 4px 10%; } .ombox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } /** T367463 */ body.skin--responsive table.ombox img { max-width: none !important; } @media screen { html.skin-theme-clientpref-night .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } s3kd4o8l90hza7k55c82cm0ltkd3xp2 6612 6611 2026-05-19T06:42:26Z NgamangaXhosa 1515 6612 sanitized-css text/css .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: var(--background-color-neutral-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-delete { border: 2px solid #b32424; /* Red */ } .ombox-content { border: 1px solid #f28500; /* Orange */ } .ombox-style { border: 1px solid #fc3; /* Yellow */ } .ombox-move { border: 1px solid #9932cc; /* Purple */ } .ombox-protection { border: 2px solid #a2a9b1; /* Gray-gold */ } .ombox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .ombox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .ombox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .ombox .mbox-empty-cell { border: none; padding: 0; width: 1px; } /* keep synced with each other type of message box as this isn't qualified */ .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .ombox { margin: 4px 10%; } .ombox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } /** T367463 */ body.skin--responsive table.ombox img { max-width: none !important; } @media screen { html.skin-theme-clientpref-night .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } j5hpz75a9bm4jwa16xb00sw1cl5djn7 6613 6612 2026-05-19T06:45:01Z NgamangaXhosa 1515 6613 sanitized-css text/css .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: var(--background-color-neutral-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-delete { border: 2px solid #b32424; /* Red */ } .ombox-content { border: 1px solid #f28500; /* Orange */ } .ombox-style { border: 1px solid #fc3; /* Yellow */ } .ombox-move { border: 1px solid #9932cc; /* Purple */ } .ombox-protection { border: 2px solid #a2a9b1; /* Gray-gold */ } .ombox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .ombox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .ombox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .ombox .mbox-empty-cell { border: none; padding: 0; width: 1px; } .ombox .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .ombox { margin: 4px 10%; } .ombox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } /** T367463 */ body.skin--responsive table.ombox img { max-width: none !important; } @media screen { html.skin-theme-clientpref-night .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } 5gv8lkpvzcasyypj8kwtvyoliam8iq0 6615 6613 2026-05-19T06:47:30Z NgamangaXhosa 1515 Undid revision [[Special:Diff/6613|6613]] by [[Special:Contributions/NgamangaXhosa|NgamangaXhosa]] ([[User talk:NgamangaXhosa|talk]]) 6615 sanitized-css text/css .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: var(--background-color-neutral-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-delete { border: 2px solid #b32424; /* Red */ } .ombox-content { border: 1px solid #f28500; /* Orange */ } .ombox-style { border: 1px solid #fc3; /* Yellow */ } .ombox-move { border: 1px solid #9932cc; /* Purple */ } .ombox-protection { border: 2px solid #a2a9b1; /* Gray-gold */ } .ombox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .ombox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .ombox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .ombox .mbox-empty-cell { border: none; padding: 0; width: 1px; } /* keep synced with each other type of message box as this isn't qualified */ .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .ombox { margin: 4px 10%; } .ombox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } /** T367463 */ body.skin--responsive table.ombox img { max-width: none !important; } @media screen { html.skin-theme-clientpref-night .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } j5hpz75a9bm4jwa16xb00sw1cl5djn7 Umhlahlandlelasakhiwo:Umbox 10 1165 6616 2026-05-19T06:57:53Z NgamangaXhosa 1515 Created page with "{{ safesubst:<noinclude/>ifsubst||<templatestyles src="Template:Umbox/styles.css" />}}<!-- --><div class="umbox {{{{{|safesubst:}}}#if:{{{class|}}}|{{{class|}}}|}}" style="{{ safesubst:<noinclude/>ifsubst|background-color: var(--background-color-content-added, #a3d3ff); border: var(--border-color-progressive, #36c) 1px solid; margin: 2em 0 1em; padding: 0.5em 1em; font-weight: bold; overflow: auto; vertical-align: middle;}} {{{{{|safesubst:}}}#if:{{{style|}}}|{{{style|}}..." 6616 wikitext text/x-wiki {{ safesubst:<noinclude/>ifsubst||<templatestyles src="Template:Umbox/styles.css" />}}<!-- --><div class="umbox {{{{{|safesubst:}}}#if:{{{class|}}}|{{{class|}}}|}}" style="{{ safesubst:<noinclude/>ifsubst|background-color: var(--background-color-content-added, #a3d3ff); border: var(--border-color-progressive, #36c) 1px solid; margin: 2em 0 1em; padding: 0.5em 1em; font-weight: bold; overflow: auto; vertical-align: middle;}} {{{{{|safesubst:}}}#if:{{{style|}}}|{{{style|}}}|}}"><noinclude><!-- // Image --></noinclude>{{{{{|safesubst:}}}#if:{{{image|}}}|[[File:{{{image}}}|left|{{{image-size|40px}}}|link={{{imagelink|}}}]]}}<noinclude><!-- // Text --></noinclude>{{{text|}}}</div><noinclude> {{Documentation}} <!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE, THANKS --> </noinclude> sc9gr4m0e4jkg0i69cxsbzpt4rl3hl6 Umhlahlandlelasakhiwo:Ifsubst 10 1166 6617 2026-05-19T06:58:18Z NgamangaXhosa 1515 Created page with "{{ safesubst:<noinclude/>#if:{{{demo|}}} |{{ safesubst:<noinclude/>#ifeq:{{{demo}}} |no |{{{no|{{{2|}}}}}} |{{{yes|{{{1|}}}}}} }} |{{ safesubst:<noinclude/>#ifeq:{{ safesubst:<noinclude/>NAMESPACE}}|{{NAMESPACE}} |{{{no|{{{2|}}}}}} |{{{yes|{{{1|}}}}}} }}}}<noinclude> {{Documentation}} </noinclude>" 6617 wikitext text/x-wiki {{ safesubst:<noinclude/>#if:{{{demo|}}} |{{ safesubst:<noinclude/>#ifeq:{{{demo}}} |no |{{{no|{{{2|}}}}}} |{{{yes|{{{1|}}}}}} }} |{{ safesubst:<noinclude/>#ifeq:{{ safesubst:<noinclude/>NAMESPACE}}|{{NAMESPACE}} |{{{no|{{{2|}}}}}} |{{{yes|{{{1|}}}}}} }}}}<noinclude> {{Documentation}} </noinclude> 6n9xrkgwrhqddknwc59l4tya8074m0o Umhlahlandlelasakhiwo:Umbox/styles.css 10 1167 6618 2026-05-19T06:59:11Z NgamangaXhosa 1515 Created page with ".umbox { background-color: var(--background-color-content-added, #a3d3ff); border: 1px solid var(--border-color-progressive, #36c); padding: 0.5em 1em; margin: 2em 0 1em; font-weight: bold; overflow: auto; vertical-align: middle; }" 6618 sanitized-css text/css .umbox { background-color: var(--background-color-content-added, #a3d3ff); border: 1px solid var(--border-color-progressive, #36c); padding: 0.5em 1em; margin: 2em 0 1em; font-weight: bold; overflow: auto; vertical-align: middle; } 8l5tcscdaytbdr01322sa6xslrrmmv2 Umhlahlandlelasakhiwo:You've got mail/doc 10 1168 6619 2026-05-19T07:01:14Z NgamangaXhosa 1515 Created page with "{{umbox |image={{SAFESUBST:<noinclude />#if:{{{tweet|}}}||Mail-message-new.svg}} |text=<big>'''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!'''</big> Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi {{tl|You've got mail}} nofana {{tl|ygm}}. }} <noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-P..." 6619 wikitext text/x-wiki {{umbox |image={{SAFESUBST:<noinclude />#if:{{{tweet|}}}||Mail-message-new.svg}} |text=<big>'''Lotjha. Sibawa uhlole i-imeyili yakho; une-imeyela!'''</big> Kungathatha imizuzu embalwa kusukela ngesikhathi i-imeyili ithunyelwa bona ivele ebhokisini lakho lokungenayo. Ungasusa isaziso lesi nanyana kunini ngokususa umhlahlandlelasakhiwo esithi {{tl|You've got mail}} nofana {{tl|ygm}}. }} <noinclude>{{documentation}}<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUB-PAGE, THANKS --></noinclude> 2im7346slc39an2u5602zl432b6s54f Charles I of England 0 1169 6624 2026-05-19T07:48:42Z Kwamikagami 1412 Kwamikagami moved page [[Charles I of England]] to [[Charles II of England]]: wrong topic 6624 wikitext text/x-wiki #REDIRECT [[Charles II of England]] 4sb0xfn9wry2ewg45b5e93i5fwj8int