وِکیٖپیٖڈیا kswiki https://ks.wikipedia.org/wiki/%D8%A7%D9%8E%DB%81%D9%8E%D9%85_%D8%B5%D9%8E%D9%81%DB%81%D9%95 MediaWiki 1.47.0-wmf.20 first-letter میڈیا خاص کَتھ رُکُن رُکُن کَتھ وِکیٖپیٖڈیا وِکیٖپیٖڈیا کَتھ فَیِل فَیِل کَتھ میٖڈیاوِکی میٖڈیاوِکی کَتھ فرما فرما کَتھ مَدَتھ مَدَتھ کَتھ زٲژ زٲژ کَتھ TimedText TimedText talk Module Module talk Event Event talk Module:TableTools 828 5781 151903 51525 2024-08-18T04:19:07Z en>Pppery 0 Update from sandbox per request 151903 Scribunto text/plain ------------------------------------------------------------------------------------ -- TableTools -- -- -- -- This module includes a number of functions for dealing with Lua tables. -- -- It is a meta-module, meant to be called from other Lua modules, and should not -- -- be called directly from #invoke. -- ------------------------------------------------------------------------------------ local libraryUtil = require('libraryUtil') local p = {} -- Define often-used variables and functions. local floor = math.floor local infinity = math.huge local checkType = libraryUtil.checkType local checkTypeMulti = libraryUtil.checkTypeMulti ------------------------------------------------------------------------------------ -- isPositiveInteger -- -- This function returns true if the given value is a positive integer, and false -- if not. Although it doesn't operate on tables, it is included here as it is -- useful for determining whether a given table key is in the array part or the -- hash part of a table. ------------------------------------------------------------------------------------ function p.isPositiveInteger(v) return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity end ------------------------------------------------------------------------------------ -- isNan -- -- This function returns true if the given number is a NaN value, and false if -- not. Although it doesn't operate on tables, it is included here as it is useful -- for determining whether a value can be a valid table key. Lua will generate an -- error if a NaN is used as a table key. ------------------------------------------------------------------------------------ function p.isNan(v) return type(v) == 'number' and v ~= v end ------------------------------------------------------------------------------------ -- shallowClone -- -- This returns a clone of a table. The value returned is a new table, but all -- subtables and functions are shared. Metamethods are respected, but the returned -- table will have no metatable of its own. ------------------------------------------------------------------------------------ function p.shallowClone(t) checkType('shallowClone', 1, t, 'table') local ret = {} for k, v in pairs(t) do ret[k] = v end return ret end ------------------------------------------------------------------------------------ -- removeDuplicates -- -- This removes duplicate values from an array. Non-positive-integer keys are -- ignored. The earliest value is kept, and all subsequent duplicate values are -- removed, but otherwise the array order is unchanged. ------------------------------------------------------------------------------------ function p.removeDuplicates(arr) checkType('removeDuplicates', 1, arr, 'table') local isNan = p.isNan local ret, exists = {}, {} for _, v in ipairs(arr) do if isNan(v) then -- NaNs can't be table keys, and they are also unique, so we don't need to check existence. ret[#ret + 1] = v elseif not exists[v] then ret[#ret + 1] = v exists[v] = true end end return ret end ------------------------------------------------------------------------------------ -- numKeys -- -- This takes a table and returns an array containing the numbers of any numerical -- keys that have non-nil values, sorted in numerical order. ------------------------------------------------------------------------------------ function p.numKeys(t) checkType('numKeys', 1, t, 'table') local isPositiveInteger = p.isPositiveInteger local nums = {} for k in pairs(t) do if isPositiveInteger(k) then nums[#nums + 1] = k end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- affixNums -- -- This takes a table and returns an array containing the numbers of keys with the -- specified prefix and suffix. For example, for the table -- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return -- {1, 3, 6}. ------------------------------------------------------------------------------------ function p.affixNums(t, prefix, suffix) checkType('affixNums', 1, t, 'table') checkType('affixNums', 2, prefix, 'string', true) checkType('affixNums', 3, suffix, 'string', true) local function cleanPattern(s) -- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') end prefix = prefix or '' suffix = suffix or '' prefix = cleanPattern(prefix) suffix = cleanPattern(suffix) local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$' local nums = {} for k in pairs(t) do if type(k) == 'string' then local num = mw.ustring.match(k, pattern) if num then nums[#nums + 1] = tonumber(num) end end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- numData -- -- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table -- of subtables in the format -- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}. -- Keys that don't end with an integer are stored in a subtable named "other". The -- compress option compresses the table so that it can be iterated over with -- ipairs. ------------------------------------------------------------------------------------ function p.numData(t, compress) checkType('numData', 1, t, 'table') checkType('numData', 2, compress, 'boolean', true) local ret = {} for k, v in pairs(t) do local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$') if num then num = tonumber(num) local subtable = ret[num] or {} if prefix == '' then -- Positional parameters match the blank string; put them at the start of the subtable instead. prefix = 1 end subtable[prefix] = v ret[num] = subtable else local subtable = ret.other or {} subtable[k] = v ret.other = subtable end end if compress then local other = ret.other ret = p.compressSparseArray(ret) ret.other = other end return ret end ------------------------------------------------------------------------------------ -- compressSparseArray -- -- This takes an array with one or more nil values, and removes the nil values -- while preserving the order, so that the array can be safely traversed with -- ipairs. ------------------------------------------------------------------------------------ function p.compressSparseArray(t) checkType('compressSparseArray', 1, t, 'table') local ret = {} local nums = p.numKeys(t) for _, num in ipairs(nums) do ret[#ret + 1] = t[num] end return ret end ------------------------------------------------------------------------------------ -- sparseIpairs -- -- This is an iterator for sparse arrays. It can be used like ipairs, but can -- handle nil values. ------------------------------------------------------------------------------------ function p.sparseIpairs(t) checkType('sparseIpairs', 1, t, 'table') local nums = p.numKeys(t) local i = 0 local lim = #nums return function () i = i + 1 if i <= lim then local key = nums[i] return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- size -- -- This returns the size of a key/value pair table. It will also work on arrays, -- but for arrays it is more efficient to use the # operator. ------------------------------------------------------------------------------------ function p.size(t) checkType('size', 1, t, 'table') local i = 0 for _ in pairs(t) do i = i + 1 end return i end local function defaultKeySort(item1, item2) -- "number" < "string", so numbers will be sorted before strings. local type1, type2 = type(item1), type(item2) if type1 ~= type2 then return type1 < type2 elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then return tostring(item1) < tostring(item2) else return item1 < item2 end end ------------------------------------------------------------------------------------ -- keysToList -- -- Returns an array of the keys in a table, sorted using either a default -- comparison function or a custom keySort function. ------------------------------------------------------------------------------------ function p.keysToList(t, keySort, checked) if not checked then checkType('keysToList', 1, t, 'table') checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'}) end local arr = {} local index = 1 for k in pairs(t) do arr[index] = k index = index + 1 end if keySort ~= false then keySort = type(keySort) == 'function' and keySort or defaultKeySort table.sort(arr, keySort) end return arr end ------------------------------------------------------------------------------------ -- sortedPairs -- -- Iterates through a table, with the keys sorted using the keysToList function. -- If there are only numerical keys, sparseIpairs is probably more efficient. ------------------------------------------------------------------------------------ function p.sortedPairs(t, keySort) checkType('sortedPairs', 1, t, 'table') checkType('sortedPairs', 2, keySort, 'function', true) local arr = p.keysToList(t, keySort, true) local i = 0 return function () i = i + 1 local key = arr[i] if key ~= nil then return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- isArray -- -- Returns true if the given value is a table and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArray(v) if type(v) ~= 'table' then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- isArrayLike -- -- Returns true if the given value is iterable and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArrayLike(v) if not pcall(pairs, v) then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- invert -- -- Transposes the keys and values in an array. For example, {"a", "b", "c"} -> -- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to -- the index of the last duplicate) and NaN values are ignored. ------------------------------------------------------------------------------------ function p.invert(arr) checkType("invert", 1, arr, "table") local isNan = p.isNan local map = {} for i, v in ipairs(arr) do if not isNan(v) then map[v] = i end end return map end ------------------------------------------------------------------------------------ -- listToSet -- -- Creates a set from the array part of the table. Indexing the set by any of the -- values of the array returns true. For example, {"a", "b", "c"} -> -- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them -- never equal to any value (including other NaNs or even themselves). ------------------------------------------------------------------------------------ function p.listToSet(arr) checkType("listToSet", 1, arr, "table") local isNan = p.isNan local set = {} for _, v in ipairs(arr) do if not isNan(v) then set[v] = true end end return set end ------------------------------------------------------------------------------------ -- deepCopy -- -- Recursive deep copy function. Preserves identities of subtables. ------------------------------------------------------------------------------------ local function _deepCopy(orig, includeMetatable, already_seen) if type(orig) ~= "table" then return orig end -- already_seen stores copies of tables indexed by the original table. local copy = already_seen[orig] if copy ~= nil then return copy end copy = {} already_seen[orig] = copy -- memoize before any recursion, to avoid infinite loops for orig_key, orig_value in pairs(orig) do copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen) end if includeMetatable then local mt = getmetatable(orig) if mt ~= nil then setmetatable(copy, _deepCopy(mt, true, already_seen)) end end return copy end function p.deepCopy(orig, noMetatable, already_seen) checkType("deepCopy", 3, already_seen, "table", true) return _deepCopy(orig, not noMetatable, already_seen or {}) end ------------------------------------------------------------------------------------ -- sparseConcat -- -- Concatenates all values in the table that are indexed by a number, in order. -- sparseConcat{a, nil, c, d} => "acd" -- sparseConcat{nil, b, c, d} => "bcd" ------------------------------------------------------------------------------------ function p.sparseConcat(t, sep, i, j) local arr = {} local arr_i = 0 for _, v in p.sparseIpairs(t) do arr_i = arr_i + 1 arr[arr_i] = v end return table.concat(arr, sep, i, j) end ------------------------------------------------------------------------------------ -- length -- -- Finds the length of an array, or of a quasi-array with keys such as "data1", -- "data2", etc., using an exponential search algorithm. It is similar to the -- operator #, but may return a different value when there are gaps in the array -- portion of the table. Intended to be used on data loaded with mw.loadData. For -- other tables, use #. -- Note: #frame.args in frame object always be set to 0, regardless of the number -- of unnamed template parameters, so use this function for frame.args. ------------------------------------------------------------------------------------ function p.length(t, prefix) -- requiring module inline so that [[Module:Exponential search]] which is -- only needed by this one function doesn't get millions of transclusions local expSearch = require("Module:Exponential search") checkType('length', 1, t, 'table') checkType('length', 2, prefix, 'string', true) return expSearch(function (i) local key if prefix then key = prefix .. tostring(i) else key = i end return t[key] ~= nil end) or 0 end ------------------------------------------------------------------------------------ -- inArray -- -- Returns true if searchElement is a member of the array, and false otherwise. -- Equivalent to JavaScript array.includes(searchElement) or -- array.includes(searchElement, fromIndex), except fromIndex is 1 indexed ------------------------------------------------------------------------------------ function p.inArray(array, searchElement, fromIndex) checkType("inArray", 1, array, "table") -- if searchElement is nil, error? fromIndex = tonumber(fromIndex) if fromIndex then if (fromIndex < 0) then fromIndex = #array + fromIndex + 1 end if fromIndex < 1 then fromIndex = 1 end for _, v in ipairs({unpack(array, fromIndex)}) do if v == searchElement then return true end end else for _, v in pairs(array) do if v == searchElement then return true end end end return false end ------------------------------------------------------------------------------------ -- merge -- -- Given the arrays, returns an array containing the elements of each input array -- in sequence. ------------------------------------------------------------------------------------ function p.merge(...) local arrays = {...} local ret = {} for i, arr in ipairs(arrays) do checkType('merge', i, arr, 'table') for _, v in ipairs(arr) do ret[#ret + 1] = v end end return ret end ------------------------------------------------------------------------------------ -- extend -- -- Extends the first array in place by appending all elements from the second -- array. ------------------------------------------------------------------------------------ function p.extend(arr1, arr2) checkType('extend', 1, arr1, 'table') checkType('extend', 2, arr2, 'table') for _, v in ipairs(arr2) do arr1[#arr1 + 1] = v end end return p 4n03zk6kcoeg4gz82mieeh94c1szcjy 151904 151070 2026-09-21T16:34:11Z 511KeV 8268 1 revision imported from [[:en:Module:TableTools]] 151070 Scribunto text/plain ------------------------------------------------------------------------------------ -- TableTools -- -- -- -- This module includes a number of functions for dealing with Lua tables. -- -- It is a meta-module, meant to be called from other Lua modules, and should not -- -- be called directly from #invoke. -- ------------------------------------------------------------------------------------ local libraryUtil = require('libraryUtil') local p = {} -- Define often-used variables and functions. local floor = math.floor local infinity = math.huge local checkType = libraryUtil.checkType local checkTypeMulti = libraryUtil.checkTypeMulti ------------------------------------------------------------------------------------ -- isPositiveInteger -- -- This function returns true if the given value is a positive integer, and false -- if not. Although it doesn't operate on tables, it is included here as it is -- useful for determining whether a given table key is in the array part or the -- hash part of a table. ------------------------------------------------------------------------------------ function p.isPositiveInteger(v) return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity end ------------------------------------------------------------------------------------ -- isNan -- -- This function returns true if the given number is a NaN value, and false if -- not. Although it doesn't operate on tables, it is included here as it is useful -- for determining whether a value can be a valid table key. Lua will generate an -- error if a NaN is used as a table key. ------------------------------------------------------------------------------------ function p.isNan(v) return type(v) == 'number' and v ~= v end ------------------------------------------------------------------------------------ -- shallowClone -- -- This returns a clone of a table. The value returned is a new table, but all -- subtables and functions are shared. Metamethods are respected, but the returned -- table will have no metatable of its own. ------------------------------------------------------------------------------------ function p.shallowClone(t) checkType('shallowClone', 1, t, 'table') local ret = {} for k, v in pairs(t) do ret[k] = v end return ret end ------------------------------------------------------------------------------------ -- removeDuplicates -- -- This removes duplicate values from an array. Non-positive-integer keys are -- ignored. The earliest value is kept, and all subsequent duplicate values are -- removed, but otherwise the array order is unchanged. ------------------------------------------------------------------------------------ function p.removeDuplicates(arr) checkType('removeDuplicates', 1, arr, 'table') local isNan = p.isNan local ret, exists = {}, {} for _, v in ipairs(arr) do if isNan(v) then -- NaNs can't be table keys, and they are also unique, so we don't need to check existence. ret[#ret + 1] = v elseif not exists[v] then ret[#ret + 1] = v exists[v] = true end end return ret end ------------------------------------------------------------------------------------ -- numKeys -- -- This takes a table and returns an array containing the numbers of any numerical -- keys that have non-nil values, sorted in numerical order. ------------------------------------------------------------------------------------ function p.numKeys(t) checkType('numKeys', 1, t, 'table') local isPositiveInteger = p.isPositiveInteger local nums = {} for k in pairs(t) do if isPositiveInteger(k) then nums[#nums + 1] = k end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- affixNums -- -- This takes a table and returns an array containing the numbers of keys with the -- specified prefix and suffix. For example, for the table -- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return -- {1, 3, 6}. ------------------------------------------------------------------------------------ function p.affixNums(t, prefix, suffix) checkType('affixNums', 1, t, 'table') checkType('affixNums', 2, prefix, 'string', true) checkType('affixNums', 3, suffix, 'string', true) local function cleanPattern(s) -- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') end prefix = prefix or '' suffix = suffix or '' prefix = cleanPattern(prefix) suffix = cleanPattern(suffix) local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$' local nums = {} for k in pairs(t) do if type(k) == 'string' then local num = mw.ustring.match(k, pattern) if num then nums[#nums + 1] = tonumber(num) end end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- numData -- -- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table -- of subtables in the format -- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}. -- Keys that don't end with an integer are stored in a subtable named "other". The -- compress option compresses the table so that it can be iterated over with -- ipairs. ------------------------------------------------------------------------------------ function p.numData(t, compress) checkType('numData', 1, t, 'table') checkType('numData', 2, compress, 'boolean', true) local ret = {} for k, v in pairs(t) do local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$') if num then num = tonumber(num) local subtable = ret[num] or {} if prefix == '' then -- Positional parameters match the blank string; put them at the start of the subtable instead. prefix = 1 end subtable[prefix] = v ret[num] = subtable else local subtable = ret.other or {} subtable[k] = v ret.other = subtable end end if compress then local other = ret.other ret = p.compressSparseArray(ret) ret.other = other end return ret end ------------------------------------------------------------------------------------ -- compressSparseArray -- -- This takes an array with one or more nil values, and removes the nil values -- while preserving the order, so that the array can be safely traversed with -- ipairs. ------------------------------------------------------------------------------------ function p.compressSparseArray(t) checkType('compressSparseArray', 1, t, 'table') local ret = {} local nums = p.numKeys(t) for _, num in ipairs(nums) do ret[#ret + 1] = t[num] end return ret end ------------------------------------------------------------------------------------ -- sparseIpairs -- -- This is an iterator for sparse arrays. It can be used like ipairs, but can -- handle nil values. ------------------------------------------------------------------------------------ function p.sparseIpairs(t) checkType('sparseIpairs', 1, t, 'table') local nums = p.numKeys(t) local i = 0 local lim = #nums return function () i = i + 1 if i <= lim then local key = nums[i] return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- size -- -- This returns the size of a key/value pair table. It will also work on arrays, -- but for arrays it is more efficient to use the # operator. ------------------------------------------------------------------------------------ function p.size(t) checkType('size', 1, t, 'table') local i = 0 for _ in pairs(t) do i = i + 1 end return i end local function defaultKeySort(item1, item2) -- "number" < "string", so numbers will be sorted before strings. local type1, type2 = type(item1), type(item2) if type1 ~= type2 then return type1 < type2 elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then return tostring(item1) < tostring(item2) else return item1 < item2 end end ------------------------------------------------------------------------------------ -- keysToList -- -- Returns an array of the keys in a table, sorted using either a default -- comparison function or a custom keySort function. ------------------------------------------------------------------------------------ function p.keysToList(t, keySort, checked) if not checked then checkType('keysToList', 1, t, 'table') checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'}) end local arr = {} local index = 1 for k in pairs(t) do arr[index] = k index = index + 1 end if keySort ~= false then keySort = type(keySort) == 'function' and keySort or defaultKeySort table.sort(arr, keySort) end return arr end ------------------------------------------------------------------------------------ -- sortedPairs -- -- Iterates through a table, with the keys sorted using the keysToList function. -- If there are only numerical keys, sparseIpairs is probably more efficient. ------------------------------------------------------------------------------------ function p.sortedPairs(t, keySort) checkType('sortedPairs', 1, t, 'table') checkType('sortedPairs', 2, keySort, 'function', true) local arr = p.keysToList(t, keySort, true) local i = 0 return function () i = i + 1 local key = arr[i] if key ~= nil then return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- isArray -- -- Returns true if the given value is a table and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArray(v) if type(v) ~= 'table' then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- isArrayLike -- -- Returns true if the given value is iterable and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArrayLike(v) if not pcall(pairs, v) then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- invert -- -- Transposes the keys and values in an array. For example, {"a", "b", "c"} -> -- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to -- the index of the last duplicate) and NaN values are ignored. ------------------------------------------------------------------------------------ function p.invert(arr) checkType("invert", 1, arr, "table") local isNan = p.isNan local map = {} for i, v in ipairs(arr) do if not isNan(v) then map[v] = i end end return map end ------------------------------------------------------------------------------------ -- listToSet -- -- Creates a set from the array part of the table. Indexing the set by any of the -- values of the array returns true. For example, {"a", "b", "c"} -> -- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them -- never equal to any value (including other NaNs or even themselves). ------------------------------------------------------------------------------------ function p.listToSet(arr) checkType("listToSet", 1, arr, "table") local isNan = p.isNan local set = {} for _, v in ipairs(arr) do if not isNan(v) then set[v] = true end end return set end ------------------------------------------------------------------------------------ -- deepCopy -- -- Recursive deep copy function. Preserves identities of subtables. ------------------------------------------------------------------------------------ local function _deepCopy(orig, includeMetatable, already_seen) if type(orig) ~= "table" then return orig end -- already_seen stores copies of tables indexed by the original table. local copy = already_seen[orig] if copy ~= nil then return copy end copy = {} already_seen[orig] = copy -- memoize before any recursion, to avoid infinite loops for orig_key, orig_value in pairs(orig) do copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen) end if includeMetatable then local mt = getmetatable(orig) if mt ~= nil then setmetatable(copy, _deepCopy(mt, true, already_seen)) end end return copy end function p.deepCopy(orig, noMetatable, already_seen) checkType("deepCopy", 3, already_seen, "table", true) return _deepCopy(orig, not noMetatable, already_seen or {}) end ------------------------------------------------------------------------------------ -- sparseConcat -- -- Concatenates all values in the table that are indexed by a number, in order. -- sparseConcat{a, nil, c, d} => "acd" -- sparseConcat{nil, b, c, d} => "bcd" ------------------------------------------------------------------------------------ function p.sparseConcat(t, sep, i, j) local arr = {} local arr_i = 0 for _, v in p.sparseIpairs(t) do arr_i = arr_i + 1 arr[arr_i] = v end return table.concat(arr, sep, i, j) end ------------------------------------------------------------------------------------ -- length -- -- Finds the length of an array, or of a quasi-array with keys such as "data1", -- "data2", etc., using an exponential search algorithm. It is similar to the -- operator #, but may return a different value when there are gaps in the array -- portion of the table. Intended to be used on data loaded with mw.loadData. For -- other tables, use #. -- Note: #frame.args in frame object always be set to 0, regardless of the number -- of unnamed template parameters, so use this function for frame.args. ------------------------------------------------------------------------------------ function p.length(t, prefix) -- requiring module inline so that [[Module:Exponential search]] which is -- only needed by this one function doesn't get millions of transclusions local expSearch = require("Module:Exponential search") checkType('length', 1, t, 'table') checkType('length', 2, prefix, 'string', true) return expSearch(function (i) local key if prefix then key = prefix .. tostring(i) else key = i end return t[key] ~= nil end) or 0 end ------------------------------------------------------------------------------------ -- inArray -- -- Returns true if searchElement is a member of the array, and false otherwise. -- Equivalent to JavaScript array.includes(searchElement) or -- array.includes(searchElement, fromIndex), except fromIndex is 1 indexed ------------------------------------------------------------------------------------ function p.inArray(array, searchElement, fromIndex) checkType("inArray", 1, array, "table") -- if searchElement is nil, error? fromIndex = tonumber(fromIndex) if fromIndex then if (fromIndex < 0) then fromIndex = #array + fromIndex + 1 end if fromIndex < 1 then fromIndex = 1 end for _, v in ipairs({unpack(array, fromIndex)}) do if v == searchElement then return true end end else for _, v in pairs(array) do if v == searchElement then return true end end end return false end ------------------------------------------------------------------------------------ -- merge -- -- Given the arrays, returns an array containing the elements of each input array -- in sequence. ------------------------------------------------------------------------------------ function p.merge(...) local arrays = {...} local ret = {} for i, arr in ipairs(arrays) do checkType('merge', i, arr, 'table') for _, v in ipairs(arr) do ret[#ret + 1] = v end end return ret end ------------------------------------------------------------------------------------ -- extend -- -- Extends the first array in place by appending all elements from the second -- array. ------------------------------------------------------------------------------------ function p.extend(arr1, arr2) checkType('extend', 1, arr1, 'table') checkType('extend', 2, arr2, 'table') for _, v in ipairs(arr2) do arr1[#arr1 + 1] = v end end return p 4n03zk6kcoeg4gz82mieeh94c1szcjy وِکیٖپیٖڈیا:چوک 4 5904 151875 151570 2026-09-21T15:20:51Z MediaWiki message delivery 3853 /* Your feedback wanted: Remove (Language link added:) and similar edits from Special:RecentChanges */ نٔو حِصہٕ 151875 wikitext text/x-wiki __NEWSECTIONLINK__ __NOTOC__ <div style="border:1px #FFFFFF solid; overflow:auto;"> <h2 style="display: block; margin: 0; border: 0; padding: .4em .5em .2em; background-color: #d1e4ff; font-weight: bold; text-align: center;"> کٲشرِ وِکیٖپیٖڈیا چوکِ پؠٹھ خٲر مَقدَم۔ </h2> <!-- 3 line spacing of h2 is important for subsection edit links to work correctly, PLEASE DO NOT FIX --> <div style="margin-top:2em; border:1px #FFFFFF solid; text-align:center;"> <h2 style="display: block; margin: 0; border: 0; padding: .4em .5em .2em; background-color: #d1e4ff; font-weight: bold;"> کَتھ باتھ </h2> <!-- 3 line spacing of h2 is important for subsection edit links to work correctly, PLEASE DO NOT FIX --> {| class="wikitable" style="margin-center:auto; margin-right:auto; margin-bottom:0;" | style="width:20%; vertical-align:top; padding-top: .5em;" |[[File:WP teahouse logo.png|link=Wikipedia:Teahouse|center|x45px]]<big>'''[[Wikipedia: چاے جاے|چاے جاے]]'''</big><br />اکھ مِلَن سار جاے ییٚتِؠتھ تُہؠ ہیکو پَنٕنؠ سَوال پرٕٛژھِت |} {{اؠسَمبَلی|plain=yes|grey=yes|other=no|icon-size=x45px}}</div> <div style="margin-top:2em; border:1px #FFFFFF solid; text-align:center;"> <h2 style="display: block; margin: 0 0 .75em; border: 0; padding: .4em .5em .2em; background-color: #d1e4ff; font-weight: bold;"> نٕو عَوٲمی پٲغام </h2> <!-- 3 line spacing of h2 is important for subsection edit links to work correctly, PLEASE DO NOT FIX --> <div style="margin-top:.01em; border:1px #FFFFFF solid; text-align:center;"> <h2 style="display: block; margin: 0 0 .75em; border: 0; padding: .4em .5em .2em; background-color: #d1e48f; font-weight: small;"> <center/>{{Auto-archive|archive_after_last_comment=7d|archive_to_subpage=مَحفوٗظ خانہٕ %3}}<center> </h2> <!-- 3 line spacing of h2 is important for subsection edit links to work correctly, PLEASE DO NOT FIX --> == <span lang="en" dir="ltr" class="mw-content-ltr">Movement Strategy and Governance News – Issue 7</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="msg-newsletter"/> <div style = "line-height: 1.2"> <span style="font-size:200%;">'''Movement Strategy and Governance News'''</span><br> <span style="font-size:120%; color:#404040;">'''Issue 7, July-September 2022'''</span><span style="font-size:120%; float:right;">[[m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7|'''Read the full newsletter''']]</span> ---- Welcome to the 7th issue of Movement Strategy and Governance News! The newsletter distributes relevant news and events about the implementation of Wikimedia's [[:m:Special:MyLanguage/Movement Strategy/Initiatives|Movement Strategy recommendations]], other relevant topics regarding Movement governance, as well as different projects and activities supported by the Movement Strategy and Governance (MSG) team of the Wikimedia Foundation. The MSG Newsletter is delivered quarterly, while the more frequent [[:m:Special:MyLanguage/Movement Strategy/Updates|Movement Strategy Weekly]] will be delivered weekly. Please remember to subscribe [[m:Special:MyLanguage/Global message delivery/Targets/MSG Newsletter Subscription|here]] if you would like to receive future issues of this newsletter. </div><div style="margin-top:3px; padding:10px 10px 10px 20px; background:#fffff; border:2px solid #808080; border-radius:4px; font-size:100%;"> * '''Movement sustainability''': Wikimedia Foundation's annual sustainability report has been published. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A1|continue reading]]) * '''Improving user experience''': recent improvements on the desktop interface for Wikimedia projects. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A2|continue reading]]) * '''Safety and inclusion''': updates on the revision process of the Universal Code of Conduct Enforcement Guidelines. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A3|continue reading]]) * '''Equity in decisionmaking''': reports from Hubs pilots conversations, recent progress from the Movement Charter Drafting Committee, and a new white paper for futures of participation in the Wikimedia movement. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A4|continue reading]]) * '''Stakeholders coordination''': launch of a helpdesk for Affiliates and volunteer communities working on content partnership. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A5|continue reading]]) * '''Leadership development''': updates on leadership projects by Wikimedia movement organizers in Brazil and Cape Verde. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A6|continue reading]]) * '''Internal knowledge management''': launch of a new portal for technical documentation and community resources. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A7|continue reading]]) * '''Innovate in free knowledge''': high-quality audiovisual resources for scientific experiments and a new toolkit to record oral transcripts. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A8|continue reading]]) * '''Evaluate, iterate, and adapt''': results from the Equity Landscape project pilot ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A9|continue reading]]) * '''Other news and updates''': a new forum to discuss Movement Strategy implementation, upcoming Wikimedia Foundation Board of Trustees election, a new podcast to discuss Movement Strategy, and change of personnel for the Foundation's Movement Strategy and Governance team. ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/7#A10|continue reading]]) </div><section end="msg-newsletter"/> </div> Thank you for reading! [[User:RamzyM (WMF)|RamzyM (WMF)]] 01:37, 18 جُلے 2022 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23529147 --> == Announcing the six candidates for the 2022 Board of Trustees election == <section begin="announcement-content"/> :''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Announcing the six candidates for the 2022 Board of Trustees election| You can find this message translated into additional languages on Meta-wiki.]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Announcing the six candidates for the 2022 Board of Trustees election|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/Announcing the six candidates for the 2022 Board of Trustees election}}&language=&action=page&filter= {{int:please-translate}}]</div>'' Hi everyone, '''The Affiliate voting process has concluded.''' Representatives from each Affiliate organization learned about the candidates by reading candidates’ statements, reviewing candidates’ answers to questions, and considering the candidates’ ratings provided by the Analysis Committee. The selected 2022 Board of Trustees candidates are: * Tobechukwu Precious Friday ([[:m:User:Tochiprecious|Tochiprecious]]) * Farah Jack Mustaklem ([[:m:User:Fjmustak|Fjmustak]]) * Shani Evenstein Sigalov ([[:m:User:Esh77|Esh77]]) * Kunal Mehta ([[:m:User:Legoktm|Legoktm]]) * Michał Buczyński ([[:m:User:Aegis Maelstrom|Aegis Maelstrom]]) * Mike Peel ([[:m:User:Mike Peel|Mike Peel]]) You may see more information about the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Results|Results]] and [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Stats|Statistics]] of this Board election. Please take a moment to appreciate the Affiliate Representatives and Analysis Committee members for taking part in this process and helping to grow the Board of Trustees in capacity and diversity. These hours of volunteer work connect us across understanding and perspective. Thank you for your participation. Thank you to the community members who put themselves forward as candidates for the Board of Trustees. Considering joining the Board of Trustees is no small decision. The time and dedication candidates have shown to this point speaks to their commitment to this movement. Congratulations to those candidates who have been selected. A great amount of appreciation and gratitude for those candidates not selected. Please continue to share your leadership with Wikimedia. Thank you to those who followed the Affiliate process for this Board election. You may review the results of the Affiliate selection process. '''The next part of the Board election process is the community voting period.''' [[m:Special:MyLanguage/Wikimedia Foundation elections/2022#Timeline|You may view the Board election timeline here]]. To prepare for the community voting period, there are several things community members can engage with in the following ways: * [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|Read candidates’ statements]] and read the candidates’ answers to the questions posed by the Affiliate Representatives. * [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Community_Voting/Questions_for_Candidates|Propose and select the 6 questions for candidates to answer during their video Q&A]]. * See the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|Analysis Committee’s ratings of candidates on each candidate’s statement]]. * [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Community Voting/Election Compass|Propose statements for the Election Compass]] voters can use to find which candidates best fit their principles. * Encourage others in your community to take part in the election. Best, Movement Strategy and Governance ''This message was sent on behalf of the Board Selection Task Force and the Elections Committee'' </div><section end="announcement-content"/> [[User:MNadzikiewicz (WMF)|MNadzikiewicz (WMF)]] 14:03, 27 جُلے 2022 (UTC) <!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23530132 --> == Vote for Election Compass Statements == <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Vote for Election Compass Statements| You can find this message translated into additional languages on Meta-wiki.]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Vote for Election Compass Statements|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/Vote for Election Compass Statements}}&language=&action=page&filter= {{int:please-translate}}]</div>'' Hi all, Volunteers in the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022|2022 Board of Trustees election]] are invited to [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Community_Voting/Election_Compass/Statements|vote for statements to use in the Election Compass]]. You can vote for the statements you would like to see included in the Election Compass on Meta-wiki. An Election Compass is a tool to help voters select the candidates that best align with their beliefs and views. The community members will propose statements for the candidates to answer using a Lickert scale (agree/neutral/disagree). The candidates’ answers to the statements will be loaded into the Election Compass tool. Voters will use the tool by entering in their answer to the statements (agree/disagree/neutral). The results will show the candidates that best align with the voter’s beliefs and views. Here is the timeline for the Election Compass: *<s>July 8 - 20: Volunteers propose statements for the Election Compass</s> *<s>July 21 - 22: Elections Committee reviews statements for clarity and removes off-topic statements</s> *July 23 - August 1: Volunteers vote on the statements *August 2 - 4: Elections Committee selects the top 15 statements *August 5 - 12: candidates align themselves with the statements *August 15: The Election Compass opens for voters to use to help guide their voting decision The Elections Committee will select the top 15 statements at the beginning of August Best, Movement Strategy and Governance ''This message was sent on behalf of the Board Selection Task Force and the Elections Committee'' </div><section end="announcement-content" /> [[User:MNadzikiewicz (WMF)|MNadzikiewicz (WMF)]] 21:01, 27 جُلے 2022 (UTC) <!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23530132 --> == The 2022 Board of Trustees election Community Voting period is now open == <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/The 2022 Board of Trustees election Community Voting period is now open| You can find this message translated into additional languages on Meta-wiki.]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/The 2022 Board of Trustees election Community Voting period is now open|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/The 2022 Board of Trustees election Community Voting period is now open}}&language=&action=page&filter= {{int:please-translate}}]</div>'' Hi everyone, The Community Voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022|2022 Board of Trustees election]] is now open. Here are some helpful links to get you the information you need to vote: * Try the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Community_Voting/Election_Compass|Election Compass]], showing how candidates stand on 15 different topics. * Read the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|candidate statements]] and [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Affiliate_Organization_Participation/Candidate_Questions|answers to Affiliate questions]] * [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Apply to be a Candidate|Learn more about the skills the Board seeks]] and how the [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Candidates|Analysis Committee found candidates align with those skills]] If you are ready to vote, you may go to [[Special:SecurePoll/vote/Wikimedia_Foundation_Board_Elections_2022|SecurePoll voting page]] to vote now. '''You may vote from August 23 at 00:00 UTC to September 6 at 23:59 UTC.''' To see about your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Voter_eligibility_guidelines|voter eligibility page]]. Best, Movement Strategy and Governance ''This message was sent on behalf of the Board Selection Task Force and the Elections Committee''<br /><section end="announcement-content" /> [[User:MNadzikiewicz_(WMF)|MNadzikiewicz (WMF)]] <!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23708360 --> == Invitation to join the Movement Strategy Forum == :''{{More languages}}'' <section begin="announcement-content" /> Hello everyone, The [https://forum.movement-strategy.org/ Movement Strategy Forum] (MS Forum) is a multilingual collaborative space for all conversations about Movement Strategy implementation. We are inviting all Movement participants to collaborate on the MS Forum. The goal of the forum is to build community collaboration, using an inclusive multilingual platform. The [[m:Movement Strategy|Movement Strategy]] is a collaborative effort to imagine and build the future of the Wikimedia Movement. Anyone can contribute to the Movement Strategy, from a comment to a full-time project. ;Join this forum with your Wikimedia account, engage in conversations, and ask questions in your language. The Movement Strategy and Governance team (MSG) launched the proposal for the MS Forum in May 2022. There was a 2-month community review period, which ended on 24 July 2022. The community review process included several questions that resulted in interesting conversations. You can read the [https://forum.movement-strategy.org/t/ms-forum-community-review-report/1436 Community Review Report]. We look forward to seeing you at the MS Forum! Best regards, the Movement Strategy and Governance Team [[User:MNadzikiewicz (WMF)]] 11:32, 29 اَگَست 2022 (UTC) <!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23720620 --> == The Vector 2022 skin as the default in two weeks? == <div lang="en" dir="ltr" class="mw-content-ltr"> [[File:Wikimania 2022 Vector (2022) Presentation.pdf|thumb|The slides for our presentation at Wikimania 2022|page=26]] Hello. I'm writing on behalf of the [[mw:Reading/Web|Wikimedia Foundation Web team]]. '''In two weeks, we would like to make the Vector 2022 skin the default on this wiki.''' We have been working on it for the past three years. So far, it has been the default on more than 30 wikis, including sister projects, all accounting for more than 1 billion pageviews per month. On average [[phab:T317529#8246686|87% of active logged-in users]] of those wikis use Vector 2022. It would become the default for all logged-out users, and also all logged-in users who currently use Vector legacy. Logged-in users can at any time switch to [[Special:Preferences#mw-prefsection-rendering|any other skins]]. No changes are expected for users of these skins. <div style="width:100%; margin:auto;"><gallery widths="220" heights="150" mode="packed" caption="Top of an article"> Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2010 top.png|Vector legacy (current default) Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2022 top.png|Vector 2022 </gallery><gallery widths="220" heights="150" mode="packed" caption="A section of an article"> Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2010 scrolled.png|Vector legacy (current default) Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2022 scrolled.png|Vector 2022 </gallery></div> === About the skin === '''[Why is a change necessary]''' The current default skin meets the needs of the readers and editors as these were 13 years ago. Since then, new users have begun using Wikimedia projects. [https://diff.wikimedia.org/2022/08/18/prioritizing-equity-within-wikipedias-new-desktop/ The old Vector doesn't meet their needs.] '''[Objective]''' The objective for the new skin is to make the interface more welcoming and comfortable for readers and useful for advanced users. It draws inspiration from previous requests, the [[metawiki:Special:MyLanguage/Community_Wishlist_Survey|Community Wishlist Surveys]], and gadgets and scripts. The work helped our code follow the standards and improve all other skins. [[phab:phame/post/view/290/how_and_why_we_moved_our_skins_to_mustache/|We reduced PHP code in Wikimedia deployed skins by 75%]]. The project has also focused on making it easier to support gadgets and use APIs. '''[Changes and test results]''' The skin introduces a [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Features|series of changes]] that improve readability and usability. The new skin does not remove any functionality currently available on the Vector skin. * The sticky header makes it easier to find tools that editors use often. It decreases scrolling to the top of the page by 16%. * The new table of contents makes it easier to navigate to different sections. Readers and editors jumped to different sections of the page 50% more than with the old table of contents. It also looks a bit different on talk pages. * The new search bar is easier to find and makes it easier to find the correct search result from the list. This increased the amount of searches started by 30% on the wikis we tested on. * The skin does not negatively affect pageviews, edit rates, or account creation. There is evidence of increases in pageviews and account creation across partner communities. '''[Try it out]''' Try out the new skin by going to the appearance tab in [[Special:Preferences#mw-prefsection-rendering|your preferences]] and selecting Vector 2022 from the list of skins. === How can editors change and customize this skin? === It's possible to configure and personalize our changes. We support volunteers who create new gadgets and user scripts. Check out [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements/Repository|our repository]] for a list of currently available customizations, or add your own. === Our plan === '''If no large concerns are raised, we plan on deploying in the week of October 3, 2022'''. If your community would like to request more time to discuss the changes, hit the button and write to us. We can adjust the calendar. <div style="text-align: center;">[[mw:Talk:Reading/Web/Desktop Improvements|<span class="plainlinks mw-ui-button">Request for more time to discuss the change</span>]]</div> If you'd like ask our team anything, if you have questions, concerns, or additional thoughts, please ping me here or write on the [[mw:Talk:Reading/Web/Desktop Improvements|talk page of the project]]. We will gladly answer! Also, [[mw:Reading/Web/Desktop Improvements/Frequently asked questions|see our FAQ]]. Thank you! [[mw:User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[mw:User talk:SGrabarczuk (WMF)|talk]]) 04:15, 22 سَتَمبَر 2022 (UTC) </div> <!-- Message sent by User:SGrabarczuk (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Varia&oldid=23838600 --> == Update on Vector 2022 == [[File:Screenshot Historia da moeda do Tíbet - 2022-09-22 - Vector 2022 scrolled.png|thumb]] <div lang="en" dir="ltr" class="mw-content-ltr"> Hello. I'm sorry for not communicating in your language. I'll be grateful if you translated my message. I'm writing on behalf of the [[mw:Reading/Web|Web team]] working on the new skin, [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|Vector 2022]]. We wanted to apologize for the delays in the deployment of Vector 2022. We know many of you are waiting for this eagerly. We have been delaying the deployment because we have been working on the logos. It has taken us more time than originally expected. Once the logos are ready, we will let you know the exact date of deployment. '''We are planning for either the next (more likely) or the following week'''. If your wiki doesn't currently have a localized logo, we encourage you to [[mw:Talk:Reading/Web/Desktop Improvements|reach out to us]] and we can help make one. We invite you to [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements#contact|get involved in the project]]. Contact us if you have any questions or need any help, particularly with the compatibility of gadgets and user scripts. Thank you! [[User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[User talk:SGrabarczuk (WMF)|talk]]) 23:24, 19 اَکتوٗبَر 2022 (UTC) </div> <!-- Message sent by User:SGrabarczuk (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Varia&oldid=23955535 --> == Invitation to attend “Ask Me Anything about Movement Charter” Sessions == <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Community Consultation/Announcement/Ask Me Anything Sessions|You can find this message translated into additional languages on Meta-wiki.]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Movement Charter/Community Consultation/Announcement/Ask Me Anything Sessions|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Community Consultation/Announcement/Ask Me Anything Sessions}}&language=&action=page&filter= {{int:please-translate}}] Hello all, During the 2022 Wikimedia Summit, the [[m:Special:MyLanguage/Movement Charter/Drafting Committee|Movement Charter Drafting Committee]] (MCDC) presented the first outline of the Movement Charter, giving a glimpse on the direction of its future work, and the Charter itself. The MCDC then integrated the initial feedback collected during the Summit. Before proceeding with writing the Charter for the whole Movement, the MCDC wants to interact with community members and gather feedback on the drafts of the three sections: Preamble, Values & Principles, and Roles & Responsibilities (intentions statement). The Movement Charter drafts will be available on the Meta page [[m:Special:MyLanguage/Movement Charter/Content|here]] on November 14, 2022. Community wide consultation period on MC will take place from November 20 to December 18, 2022. Learn more about it [[m:Special:MyLanguage/Movement Charter/Community Consultation|here]]. With the goal of ensuring that people are well informed to fully participate in the conversations and are empowered to contribute their perspective on the Movement Charter, three '''“Ask Me Anything about Movement Charter"''' sessions have been scheduled in different time zones. Everyone in the Wikimedia Movement is invited to attend these conversations. The aim is to learn about Movement Charter - its goal, purpose, why it matters, and how it impacts your community. MCDC members will attend these sessions to answer your questions and hear community feedback. The “Ask Me Anything” sessions accommodate communities from different time zones. Only the presentation of the session is recorded and shared afterwards, no recording of conversations. Below is the list of planned events: *<s>'''Asia/Pacific''': November 4, 2022 at 09:00 UTC ([https://zonestamp.toolforge.org/1667552400 your local time]). Interpretation is available in Chinese and Japanese.</s> * '''Europe/MENA/Sub Saharan Africa''': November 12, 2022 at 15:00 UTC ([https://zonestamp.toolforge.org/1668265257 your local time]). Interpretation is available in Arabic, French and Russian. * '''North and South America/ Western Europe''': November 12, 2022 at 15:00 UTC ([https://zonestamp.toolforge.org/1668265257 your local time]). Interpretation is available in Spanish and Portuguese. On the [[m:Special:MyLanguage/Movement Charter/Community Consultation|Meta page]] you will find more details; Zoom links will be shared 48 hours ahead of the call. '''Call for Movement Charter Ambassadors''' Individuals or groups from all communities who wish to help include and start conversations in their communities on the Movement Charter are encouraged to become [[m:Special:MyLanguage/Movement Strategy and Governance/Movement Charter Ambassadors Program/About|Movement Charter Ambassadors]] (MC Ambassadors). MC Ambassadors will carry out their own activities and get financial support for enabling conversations in their own languages. [[m:Special:MyLanguage/Movement Strategy and Governance/Team|Regional facilitators]] from the Movement Strategy and Governance team are available to support applicants with MC Ambassadors grantmaking. If you are interested please sign up [[m:Special:MyLanguage/Movement Strategy and Governance/Movement Charter Ambassadors Program/About|here]]. Should you have specific questions, please reach out to the MSG team via email: strategy2030@wikimedia.org or on the MS forum. We thank you for your time and participation. On behalf of the Movement Charter Drafting Committee,<section end="announcement-content" /> [[User:MNadzikiewicz (WMF)|MNadzikiewicz (WMF)]] 15:33, 7 نَوَمبَر 2022 (UTC) <!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23914777 --> == Apply for Funding through the Movement Strategy Community Engagement Package to Support Your Community == :''{{More languages}}'' <section begin="announcement-content" /> The Wikimedia Movement Strategy implementation is a collaborative effort for all Wikimedians. [[m:Special:MyLanguage/Grants:MSIG/About|Movement Strategy Implementation Grants]] support projects that take the current state of a [[m:Special:MyLanguage/Movement Strategy/Initiatives|Movement Strategy Initiative]] and push it one step forward. If you are looking for an example or some guide on how to engage your community further on Movement Strategy and the Movement Strategy Implementation Grants specifically, you may find this '''[[m:Special:MyLanguage/Grants:MSIG/Community Engagement Package|community engagement package]]''' helpful. The goal of this community engagement package is to support more people to access the funding they might need for the implementation work. By becoming a recipient of this grant, you will be able to support other community members to develop further grant applications that fit with your local contexts to benefit your own communities. With this package, the hope is to break down language barriers and to ensure community members have needed information on Movement Strategy to connect with each other. Movement Strategy is a two-way exchange, we can always learn more from the experiences and knowledge of Wikimedians everywhere. We can train and support our peers by using this package, so more people can make use of this great funding opportunity. If this information interests you or if you have any further thoughts or questions, please do not hesitate to reach out to us as your [[m:Special:MyLanguage/Movement_Strategy_and_Governance/Team|regional facilitators]] to discuss further. We will be more than happy to support you. When you are ready, follow the steps on [[m:Special:MyLanguage/Grants:MSIG/About |this page]] to apply. We look forward to receiving your application. Best regards, <br> Movement Strategy and Governance Team <br> Wikimedia Foundation<section end="announcement-content" /> [[User:MNadzikiewicz (WMF)|MNadzikiewicz (WMF)]] 16:26, 14 نَوَمبَر 2022 (UTC) <!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23914777 --> == Opportunities open for the Ombuds commission and the Case Review Committee == <section begin="announcement-content" /> <div style="margin:.2em 0 .5em;margin-{{#switch:{{PAGELANGUAGE}}|ar|arc|ary|arz|azb|bcc|bgn|ckb|bqi|dv|fa|fa-af|glk|ha-arab|he|kk-arab|kk-cn|ks|ku-arab|ms-arab|mzn|pnb|prd|ps|sd|ug|ur|ydd|yi=right|left}}:3ex;"> [[m:Special:MyLanguage/Wikimedia Foundation Legal department/Announcement/2023 OC and CRC appointments process|''You can find this message translated into additional languages on Meta-wiki.'']] ''<span class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Legal department/Announcement/2023 OC and CRC appointments process|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Legal department/Announcement/2023 OC and CRC appointments process}}&language=&action=page&filter= {{int:please-translate}}]</span>'' </div> Hi everyone! The Ombuds commission (OC) and the Case Review Committee (CRC) are looking for members. People are encouraged to nominate themselves or encourage others they feel would contribute to these groups to do so. There is more information below about the opportunity and the skills that are needed. '''About the Ombuds commission''' The Ombuds commission (OC) works on all Wikimedia projects to investigate complaints about violations of the privacy policy, especially in use of [[m:Special:MyLanguage/CheckUser policy|CheckUser]] and [[m:Special:MyLanguage/Oversight policy|Oversight]] (also known as Suppression) tools. The Commission mediates between the parties of the investigation and, when violations of the policies are identified, advises the Wikimedia Foundation on best handling. They may also assist the General Counsel, the Chief Executive Officer, or the Board of Trustees of the Foundation in these investigations when legally necessary. For more on the OC's duties and roles, '''[[m:Special:MyLanguage/Ombuds commission|see Ombuds commission on Meta-Wiki]]'''. Volunteers serving in this role should be experienced Wikimedians, active on any project, who have previously used the CheckUser/Oversight tools OR who have the technical ability to understand these tools and the willingness to learn them. They must be able to communicate in English, the common language of the commission. They are expected to be able to engage neutrally in investigating these concerns and to know when to recuse when other roles and relationships may cause conflict. Commissioners will serve '''two-year terms''' (note that this is different from past years, when the terms have been for one year). '''About the Case Review Committee''' The Case Review Committee (CRC) reviews appeals of eligible Trust & Safety office actions. The CRC is a critical layer of oversight to ensure that Wikimedia Foundation office actions are fair and unbiased. They also make sure the Wikimedia Foundation doesn’t overstep established practices or boundaries. For more about the role, '''[[m:Special:MyLanguage/Case Review Committee|see Case Review Committee on Meta-Wiki]]'''. We are looking for current or former functionaries and experienced volunteers with an interest in joining this group. Applicants must be fluent in English (additional languages are a strong plus) and willing to abide by the [[m:Special:MyLanguage/Trust_and_Safety/Case_Review_Committee/Charter|terms of the Committee charter]]. If the work resonates and you qualify, please apply. Committee members will serve '''two-year terms''' (note that this is different from past years, when the terms have been for one year). '''Applying to join either of these groups''' Members are required to sign the [[m:Special:MyLanguage/Confidentiality agreement for nonpublic information|Confidentiality agreement for nonpublic information]] and must be willing to comply with the appropriate Wikimedia Foundation board policies (such as the [[m:Special:MyLanguage/Access to nonpublic information policy|access to non-public information policy]] and the [[foundation:Special:MyLanguage/Privacy policy|Foundation privacy policy]]). These positions requires a high degree of discretion and trust. Members must also be over 18 years of age. '''If you are interested in serving in either capacity listed above,''' please write in English to the Trust and Safety team at ca[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org (to apply to the OC) or to the Legal Team at legal[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org (to apply to the CRC) with information about: * Your primary projects * Languages you speak/write * Any experience you have serving on committees, whether movement or non-movement * Your thoughts on what you could bring to the OC or CRC if appointed * Any experience you have with the Checkuser or Oversight tools (OC only) * Any other information you think is relevant '''The deadline for applications is 31 December 2022 in any timezone.''' Please feel free to pass this invitation along to any users who you think may be qualified and interested. Thank you! On behalf of the Committee Support team,<br /><section end="announcement-content" /> <!-- Message sent by User:MNadzikiewicz (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery&oldid=23914777 --> == مومینٹ چارٹَر کَتھ باتھ مَنٛز گٔژھِو شٲمِل == سَلام، تۄہہِ آسہِ پَتا زِ، مومینٹ چارٹَر ڈرافٹِنگ کٔمِٹی (ایم سی ڈی سی) چھِ بَرادری ہٕنٛز تَجویٖز رَٹان کیٚنٛہہ ڈرافٹَن مُتلِق: یِم چھِ گۄڈٕ کَتھ، "مۄل تہٕ اصوٗل" تہٕ "کِردار تہٕ زِمہٕ دٲری" (مَقصَد جُملہٕ). أسؠ چھِ یَژھ زِ کٲشِر بَرادری گَژھِ پوٗرٕ پٲٹھؠ اَتھ عَملہِ مَنٛز شٲمِل گَژھِن تہٕ اَتھ مُتلِق راے پیش کَرٕنؠ. اَمہِ کِن چھِ 9 دَسَمبَر 8:00 بَجے پؠٹھ 9:00 بَجے تام اَکھ آنلایِن مُلاکاتھ کَرنُک فٲصلہٕ نِنہٕ آمُت یُس [[گوٗگٕل میٖٹ|گوٗگل میٖٹَس]] پؠٹھ آسہِ. أسؠ چھِ تۄہہِ داوَتھ دِوان اَتھ مَنٛز شٲمِل گَژھنہٕ خٲطرٕ تہٕ پَننؠ راے برٛونٛہہ کُن تھاونہٕ خٲطرٕ! مومینٹ چارٹَر عُنوانَس مُتلِق ہیٚکِو تۄہہِ، [[:c:File:Ask_Me_Anything_on_Movement_Charter,_Introduction_by_Érica_Azzellini,_English,_Nov_12,_2022.webm|مےٚ پژھِو مومینٹ چارٹَرَس مُتلِق کیٚنٛہہ تہِ]] تہٕ یِم ڈرافٹ پٔرِتھ ([[:m:Movement_Charter/Content/Preamble|گۄڈٕ کَتھ]], [[:m:Movement_Charter/Content/Values_%26_Principles|مۄل تہٕ اصوٗل]], [[:m:Movement_Charter/Content/Roles_%26_Responsibilities|کِردار تہٕ زِمہٕ دٲری]]) کَتھ باتھ برٛونٛہہ. *'''تٲریٖخ''': 9 دَسَمبَر 8:00 بَجے پؠٹھ 9:00 ہِندوستٲنؠ وَقٕت مُطٲبِق. *'''لِنک''': [https://meet.google.com/ymq-wbob-vzr یَتھ جاے] سَوالَن خٲطرٕ ہیٚکِو تۄہہِ ''[[User:511KeV|مےٚ ستؠ کَتھ باتھ کٔرِتھ]]''. شُکرِیا. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 05:43, 9 دَسَمبَر 2022 (UTC) == Community Wishlist Survey 2023 opens in January! == <div lang="en" dir="ltr" class="mw-content-ltr"> ''{{int:Please-translate}}'' {{int:Hello}} The [[m:Community Wishlist Survey 2023|'''Community Wishlist Survey (CWS) 2023''']], which lets contributors propose and vote for tools and improvements, starts next month on Monday, [https://zonestamp.toolforge.org/1674496831 23 January 2023, at 18:00 UTC] and will continue annually. We are inviting you to share your ideas for technical improvements to our tools and platforms. Long experience in editing or technical skills is not required. If you have ever used our software and thought of an idea to improve it, this is the place to come share those ideas! The dates for the phases of the Survey will be as follows: * Phase 1: Submit, discuss, and revise proposals – Monday, Jan 23, 2023 to Sunday, Feb 6, 2023 * Phase 2: WMF/Community Tech reviews and organizes proposals – Monday, Jan 30, 2023 to Friday, Feb 10, 2023 * Phase 3: Vote on proposals – Friday, Feb 10, 2023 to Friday, Feb 24, 2023 * Phase 4: Results posted – Tuesday, Feb 28, 2023 If you want to start writing out your ideas ahead of the Survey, you can start thinking about your proposals and draft them in [[m:Community Wishlist Survey/Sandbox|the CWS sandbox]]. We are grateful to all who participated last year. See you in January 2023! </div> {{int:Feedback-thanks-title}} <bdi lang="en" dir="ltr">Community Tech, [[m:User:STei (WMF)|STei (WMF)]]</bdi> 12:59, 13 دَسَمبَر 2022 (UTC) <!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:STei_(WMF)/CWS_2023_List&oldid=24226232 --> == Vote for your favourite Wikimedia sound logo == ''{{int:Please-translate}}'' ''We are really sorry for posting in English'' [[فَیِل:Sound_Logo_Cover_Image_-_Linkedin.png|center|800x800px]] Voting in the Wikimedia sound logo contest [[c:Commons:Sound_Logo_Vote|'''has started''']]. From December 6 to 19, 2022, please play a part and help chose the sound that will identify Wikimedia content on audio devices. [[wmfblog:2022/12/06/vote-for-the-sound-of-all-human-knowledge/|Learn more on Diff]]. The sound logo team is grateful to everyone who participated in this global contest. We received 3,235 submissions from 2,094 participants in 135 countries. We are incredibly grateful to the team of [[wmfblog:2022/10/31/screening-3235-sound-submissions/|volunteer screeners]] and the [https://meta.wikimedia.org/wiki/Communications/Sound_Logo/Contest_proposal#How_will_the_final_selection_happen? selection committee] who, among others, helped bring us to where we are today. It is now up to Wikimedia to choose the Sound Of All Human Knowledge. Best wishes, [[رُکُن:Arupako-WMF|Arupako-WMF]] ([[رُکُن کَتھ:Arupako-WMF|کَتھ صَفہٕ]]) 16:48, 16 دَسَمبَر 2022 (UTC) == Feminism and Folklore 2023 == <div style="border:8px maroon ridge;padding:6px;> [[File:Feminism and Folklore 2023 logo.svg|centre|550px|frameless]] ::<div lang="en" dir="ltr" class="mw-content-ltr"> <center>''{{int:please-translate}}''</center> Dear Wiki Community, Christmas Greetings and a Happy New Year 2023, You are humbly invited to organize the '''[[:m:Feminism and Folklore 2023|Feminism and Folklore 2023]]''' writing competition from February 1, 2023, to March 31, 2023 on your local Wikipedia. This year, Feminism and Folklore will focus on feminism, women's issues, and gender-focused topics for the project, with a [[:c:Commons:Wiki Loves Folklore 2023|Wiki Loves Folklore]] gender gap focus and a folk culture theme on Wikipedia. You can help Wikipedia's coverage of folklore from your area by writing or improving articles about things like folk festivals, folk dances, folk music, women and queer folklore figures, folk game athletes, women in mythology, women warriors in folklore, witches and witch hunting, fairy tales, and more. Users can help create new articles, expand or translate from a [[:m:Feminism and Folklore 2023/List of Articles|list]] of suggested articles. Organisers are requested to work on the following action items to sign up their communities for the project: # Create a page for the contest on the local wiki. # Set up a fountain tool or dashboard. # Create the local list and mention the timeline and local and international prizes. # Request local admins for site notice. # Link the local page and the fountain/dashboard link on the [[:m:Feminism and Folklore 2023/Project Page|meta project page]]. This year we would be supporting the community's financial aid for Internet and childcare support. This would be provided for the local team including their jury and coordinator team. This support is opt-in and non mandatory. Kindly fill in [https://docs.google.com/forms/d/e/1FAIpQLSea81OO0lVgUBd551iIiENXht7BRCISYZlKyBQlemZu_j2OHQ/viewform this Google form] and mark a mail to [mailto:support@wikilovesfolklore.org support@wikilovesfolklore.org] with the subject line starting as [Stipend] Name or Username/Language. The last date to sign up for internet and childcare aid from our team is 20th of January 2023, We encourage the language coordinators to sign up their community on this link by the 25th of January 2023. Learn more about the contest and prizes on our [[:m:Feminism and Folklore 2023|project page]]. Feel free to contact us on our [[:m:Talk:Feminism and Folklore 2023/Project Page|meta talk page]] or by email us if you need any assistance. We look forward to your immense coordination. Thank you and Best wishes, [[:m:Feminism and Folklore 2023|Feminism and Folklore 2023 International Team]] ::::Stay connected [[File:B&W Facebook icon.png|link=https://www.facebook.com/feminismandfolklore/|30x30px]]&nbsp; [[File:B&W Twitter icon.png|link=https://twitter.com/wikifolklore|30x30px]] </div></div> --[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 10:23, 24 دَسَمبَر 2022 (UTC) <!-- Message sent by User:Tiven2240@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=23942484 --> == Global ban for PlanespotterA320/RespectCE == Per the [[m:Global bans|Global bans]] policy, I'm informing the project of this request for comment: [[m:Requests for comment/Global ban for PlanespotterA320 (2) ]] about banning a member from your community. Thank you.--[[User:Lemonaka|Lemonaka]] ([[User talk:Lemonaka|talk]]) 21:40, 6 February 2023 (UTC) <!-- Message sent by User:Zabe@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Lemonaka/Massmessagelist&oldid=24501599 --> == Editing news 2023 #1 == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="message"/><i>[[m:Special:MyLanguage/VisualEditor/Newsletter/2023/February|Read this in another language]] • [[m:Special:MyLanguage/VisualEditor/Newsletter|Subscription list for this multilingual newsletter]]</i> This newsletter includes two key updates about the [[mw:Special:MyLanguage/Editing team|Editing]] team's work: # The Editing team will finish adding new features to the [[mw:Special:MyLanguage/Talk pages project|Talk pages project]] and deploy it. # They are beginning a new project, [[mw:Special:MyLanguage/Edit check|Edit check]]. <strong>Talk pages project</strong> [[File:Page Frame Features on desktop.png|alt=Screenshot showing the talk page design changes that are currently available as beta features at all Wikimedia wikis. These features include information about the number of people and comments within each discussion.|thumb|300px|Some of the upcoming changes]] The Editing team is nearly finished with this first phase of the [[mw:Special:MyLanguage/Talk_pages_project|Talk pages project]]. Nearly all [[mw:Special:MyLanguage/Talk pages project/Usability|new features]] are available now in the [[Special:Preferences#mw-prefsection-betafeatures|Beta Feature for {{int:discussiontools-preference-label}}]]. It will show information about how active a discussion is, such as the date of the most recent comment. There will soon be a new "{{int:skin-action-addsection}}" button. You will be able to turn them off at [[Special:Preferences#mw-prefsection-editing-discussion]]. Please [[mw:Special:MyLanguage/Talk:Talk_pages_project/Usability#c-PPelberg_(WMF)-20230215001000-Feedback:_Proposed_Revisions_to_%22Add_topic%22_button|tell them what you think]]. [[File:Daily edit completion rates mobile talk pages.png|thumb|300px|Daily edit completion rate by test group: DiscussionTools (test group) and MobileFrontend overlay (control group)]] An A/B test for [[mw:Special:MyLanguage/Talk pages project/Mobile|{{int:discussiontools-preference-label}} on the mobile site]] has finished. Editors were [[mw:Special:MyLanguage/Talk_pages_project/Mobile#Status_Updates|more successful with {{int:discussiontools-preference-label}}]]. The Editing team is enabling these features for all editors on the mobile site. <strong>New Project: Edit Check</strong> The Editing team is beginning [[mw:Special:MyLanguage/Edit check|a project to help new editors of Wikipedia]]. It will help people identify some problems before they click "{{int:publishchanges}}". The first tool will encourage people to add references when they add new content. Please [[mw:Special:MyLanguage/Help:Watchlist|watch]] that page for more information. You can [[mw:Special:MyLanguage/Editing_team/Community_Conversations#20230303|join a conference call on 3&nbsp;March&nbsp;2023]] to learn more.<section end="message"/> </div> –[[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ([[User talk:Whatamidoing (WMF)|{{int:Talkpagelinktext}}]]) 23:24, 22 فَرؤری 2023 (UTC) <!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/VisualEditor/Newsletter/Wikis_with_VE&oldid=24611966 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Your wiki will be in read only soon</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="server-switch"/><div class="plainlinks"> [[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}] The [[foundation:|Wikimedia Foundation]] tests the switch between its first and secondary data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. To make sure everything is working, the Wikimedia Technology department needs to do a planned test. This test will show if they can reliably switch from one data centre to the other. It requires many teams to prepare for the test and to be available to fix any unexpected problems. All traffic will switch on '''{{#time:j xg|2023-03-01|en}}'''. The test will start at '''[https://zonestamp.toolforge.org/{{#time:U|2023-03-01T14:00|en}} {{#time:H:i e|2023-03-01T14:00}}]'''. Unfortunately, because of some limitations in [[mw:Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future. '''You will be able to read, but not edit, all wikis for a short period of time.''' *You will not be able to edit for up to an hour on {{#time:l j xg Y|2023-03-01|en}}. *If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case. ''Other effects'': *Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped. * We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards. * [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes. This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. There will be more notifications about this. A banner will be displayed on all wikis 30 minutes before this operation happens. '''Please share this information with your community.'''</div><section end="server-switch"/> </div> <span dir=ltr>[[m:User:Trizek (WMF)|Trizek (WMF)]] ([[m:User talk:Trizek (WMF)|{{int:talk}}]])</span> 21:20, 27 فَرؤری 2023 (UTC) <!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=24390465 --> == Ukraine's Cultural Diplomacy Month 2023: We are back! == <div lang="en" dir="ltr" class="mw-content-ltr"> <div lang="en" dir="ltr" class="mw-content-ltr"> [[File:UCDM 2023 promo.png|180px|right]] {{int:please-translate}} Hello, dear Wikipedians!<br/> [[m:Special:MyLanguage/Wikimedia Ukraine|Wikimedia Ukraine]], in cooperation with the [[:en:Ministry of Foreign Affairs of Ukraine|Ministry of Foreign Affairs of Ukraine]] and [[:en:Ukrainian Institute|Ukrainian Institute]], has launched the third edition of writing challenge "'''[[m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2023|Ukraine's Cultural Diplomacy Month]]'''", which lasts from 1st until 31st March 2023. The campaign is dedicated to famous Ukrainian artists of cinema, music, literature, architecture, design and cultural phenomena of Ukraine that are now part of world heritage. We accept contribution in every language! The most active contesters will receive [[m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2023/Prizes|prizes]].<br/> We invite you to take part and help us improve the coverage of Ukrainian culture on Wikipedia in your language! Also, we plan to set up a [[m:CentralNotice/Request/UCDM 2023|banner]] to notify users of the possibility to participate in such a challenge! </div> [[m:User:ValentynNefedov (WMUA)|ValentynNefedov (WMUA)]] ([[m:User talk:ValentynNefedov (WMUA)|talk]]) 07:58, 1 March 2023 (UTC) </div> <!-- Message sent by User:ValentynNefedov (WMUA)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=23942484 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Wikimania 2023 Welcoming Program Submissions</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="wikimania-program-submissions"/>[[File:Wikimania Singapore Logo.svg|right|frameless]]Do you want to host an in-person or virtual session at Wikimania 2023? Maybe a hands-on workshop, a lively discussion, a fun performance, a catchy poster, or a memorable lightning talk? [[wmania:Special:MyLanguage/2023:Program/Submissions|'''Submissions are open until March 28''']]. The event will have dedicated hybrid blocks, so virtual submissions and pre-recorded content are also welcome. If you have any questions, please join us at an upcoming conversation on March 12 or 19, or reach out by email at wikimania@wikimedia.org or on Telegram. More information on-wiki.<section end="wikimania-program-submissions"/> </div> <!-- Message sent by User:CKoerner (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=24390465 --> == Enabling Section Translation: a new mobile translation experience == {{int:Hello}} Kashmiri Wikipedians! Apologies as this message is not in your language, {{int:Please help translate}} to your language. The [[mw:Wikimedia_Language_engineering|WMF Language team]] is pleased to let you know that we will like to enable the [[mw:Content_translation/Section_translation|Section translation]] tool in Kashmiri Wikipedia. For this, our team will love you to read about the tool and test it so you can: * Give us your feedback * Ask us questions * Tell us how to improve it. Below is background information about Section translation, why we have chosen your community, and how to test it. '''Background information''' [[mw:Content_translation|Content Translation]] has been a successful tool for editors to create content in their language. More than one million articles have been created across all languages since the tool was released in 2015. The Wikimedia Foundation Language team has improved the translation experience further with the Section Translation. The WMF Language team enabled the early version of the tool in February 2021 in Bengali Wikipedia. Through their feedback, the tool was improved and ready for your community to test and provide feedback to make it better. [https://design.wikimedia.org/strategy/section-translation.html Section Translation] extends the capabilities of Content Translation to support mobile devices. On mobile, the tool will: * Guide you to translate one section at a time in order to expand existing articles or create new ones. * Make it easy to transfer knowledge across languages anytime from your mobile device. Kashmiri Wikipedia seems an ideal candidate to enjoy this new tool since it has Content Translation tool enabled by default. Also, some of your community members have [[phab:T326541|requested for the tool]]. We plan to enable the tool in the coming week if there are no objections from your community. After it is enabled, we’ll monitor the content created with the tool and process all the feedback. In any case, feel free to raise any concerns or questions you may already have in any of the following formats: * As a reply to this message * On [[mw:Talk:Content_translation/Section_translation|the project talk page]]. '''Try the tool''' Before the enablement, you can try the current implementation of the tool in [https://test.m.wikipedia.org/w/index.php?title=Special:ContentTranslation&from=en&to=ks&sx=true#/sx our testing instance]. Once it is enabled on Kashmiri Wikipedia, you’ll have access to https://ks.wikipedia.org/wiki/Special:ContentTranslation with your mobile device. You can select an article to translate, and machine translation will be provided as a starting point for editors to improve. '''Provide feedback''' Please provide feedback about Section translation in any of the formats you are most comfortable with. We want to hear about your impressions on: * The tool * What you think about our plans to enable it * Your ideas for improving the tool. Thanks, and we look forward to your feedback. [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 05:22, 28 مارٕچ 2023 (UTC) On behalf of the WMF Language team. :Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] Thanks for this amazing news. I have tested it on Test wiki. I don't find a way to add new sections to the articles that I have created on test wiki. Checking the in-progress sections doesn't allow me to search the translations that i have made. The language search option in it doesn't allow me to search for my language. Can you guide me how can i add a new section to the article that I created on test wiki. Thankyou. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 14:26, 28 مارٕچ 2023 (UTC) ::Hello [[رُکُن:511KeV|'''511KeV''']] ::I think I can help you: ::Step 1: ::Click on the "'''In progress'''" button, it will bring you to where you see the "+ New translation" button. ::Step 2: ::Click on the "'''+ New translation'''" button. That will take you to the search space and below it, you will find a list of your Recently translated sections (written as "Recently edited by you"). ::You should find the articles you are looking for below. I hope this helps you. Let me know if it works. Thank you! ::[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 06:02, 31 مارٕچ 2023 (UTC) :::@[[رُکُن:511KeV|511KeV]] :::Suppose you still can't add new sections to your translated article. In that case, the reason will be that the suggested sections are based on the contents from the actual (production) Wikipedia. For example, if there is no article for Paneer in Kashmiri, the tool will allow you to create one. However, if you do so in the test server, the tool still acts as if the article does not exist because it does not exist on the Kashmiri Wikipedia [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 07:42, 31 مارٕچ 2023 (UTC) ::::@[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] Thankyou for your help. I will be happy to see this feature in our Wiki. You can proceed. I also want to see Machine translation integrated in this as soon as possible. Thankyou. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 08:56, 31 مارٕچ 2023 (UTC) :::::Thank you, [[رُکُن:511KeV|'''511KeV''']], for you feedback. The tool will be enabled this week. :::::[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 15:09, 4 اَپریل 2023 (UTC) ::::::Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]], I on behalf of Kashmiri Community want to Thank you and your team for approving our request. I am sure this tool will help in the development of this Wikipedia. Thankyou. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 16:35, 4 اَپریل 2023 (UTC) Thankyou, [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]], it is very helpful. '''<span style="text-Venara:7px 7px 8px yellow; font-family:Papyrus">[[User:Tajamul9|<span style="color:#0000FF">Tajamul9</span>]]<sub>[[User talk:Tajamul9#bottom|Talk]]</sub></span>''' 16:01, 4 اَپریل 2023 (UTC) == <span lang="en" dir="ltr" class="mw-content-ltr">Your wiki will be in read-only soon</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="server-switch"/><div class="plainlinks"> [[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}] The [[foundation:|Wikimedia Foundation]] tests the switch between its first and secondary data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. To make sure everything is working, the Wikimedia Technology department needs to do a planned test. This test will show if they can reliably switch from one data centre to the other. It requires many teams to prepare for the test and to be available to fix any unexpected problems. All traffic will switch on '''{{#time:j xg|2023-04-26|en}}'''. The test will start at '''[https://zonestamp.toolforge.org/{{#time:U|2023-04-26T14:00|en}} {{#time:H:i e|2023-04-26T14:00}}]'''. Unfortunately, because of some limitations in [[mw:Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future. '''You will be able to read, but not edit, all wikis for a short period of time.''' *You will not be able to edit for up to an hour on {{#time:l j xg Y|2023-04-26|en}}. *If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case. ''Other effects'': *Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped. * We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards. * [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes. This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. There will be more notifications about this. A banner will be displayed on all wikis 30 minutes before this operation happens. '''Please share this information with your community.'''</div><section end="server-switch"/> </div> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 00:41, 21 اَپریل 2023 (UTC) <!-- Message sent by User:UOzurumba (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=24748237 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Seeking volunteers for the next step in the Universal Code of Conduct process</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''<div class="plainlinks">[[m:Special:MyLanguage/Universal Code of Conduct/U4C Building Committee/Nominations/Announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/U4C Building Committee/Nominations/Announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>'' Hello, As follow-up to [https://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/message/IOMVS7W75ZYMABQGOQ2QH2JAURC3CHGH/ the message about the Universal Code of Conduct Enforcement Guidelines] by Wikimedia Foundation Board of Trustees Vice Chair, Shani Evenstein Sigalov, I am reaching out about the next steps. I want to bring your attention to the next stage of the Universal Code of Conduct process, which is forming a building committee for the Universal Code of Conduct Coordinating Committee (U4C). I invite community members with experience and deep interest in community health and governance to nominate themselves to be part of the U4C building committee, which needs people who are: * Community members in good standing * Knowledgeable about movement community processes, such as, but not limited to, policy drafting, participatory decision making, and application of existing rules and policies on Wikimedia projects * Aware and appreciative of the diversity of the movement, such as, but not limited to, languages spoken, identity, geography, and project type * Committed to participate for the entire U4C Building Committee period from mid-May - December 2023 * Comfortable with engaging in difficult, but productive conversations * Confidently able to communicate in English The Building Committee shall consist of volunteer community members, affiliate board or staff, and Wikimedia Foundation staff. The Universal Code of Conduct has been a process strengthened by the skills and knowledge of the community and I look forward to what the U4C Building Committee creates. If you are interested in joining the Building Committee, please either [[m:Special:MyLanguage/Universal_Code_of_Conduct/U4C_Building_Committee/Nominations|sign up on the Meta-Wiki page]], or contact ucocproject[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org by May 12, 2023. '''[[m:Special:MyLanguage/Universal_Code_of_Conduct/U4C_Building_Committee|Read more on Meta-Wiki]]'''. Best regards,<br /><section end="announcement-content" /> </div> [[User:Xeno (WMF)|Xeno (WMF)]] 19:00, 26 اَپریل 2023 (UTC) <!-- Message sent by User:Xeno (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=24941045 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Automatic citations based on ISBN are broken</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="message" /> Apologies if this message does not reach you in your favorite language. [[:m:User:Elitre (WMF)/ISBN|You can help translate it centrally at Meta]]. Thanks for your help. We have recently become unable to access the WorldCat API which provided the ability to generate citations using ISBN numbers. The Wikimedia Foundation's [[mw:Editing_team|Editing team]] is investigating several options to restore the functionality, but will need to disable ISBN citation generation for now. This affects citations made with the [[mw:Special:MyLanguage/Help:VisualEditor/User_guide/Citations-Full#Automatic|VisualEditor Automatic tab]], and the use of the citoid API in gadgets and user scripts, such as the autofill button on [[:en:Wikipedia:RefToolbar|refToolbar]]. Please note that all the other automatic ways of generating citations, including via URL or DOI, are still available. You can keep updated on the situation [[phab:T336298|via Phabricator]], or by reading the next issues of [[m:Tech News]]. If you know of any users or groups who rely heavily on this feature (for instance, someone who has an upcoming editathon), I'd appreciate it if you shared this update with them. [[User:Elitre (WMF)|Elitre (WMF)]], on behalf of the Editing team.<section end="message" /> </div> [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 19:45, 11 مٔیی 2023 (UTC) <!-- Message sent by User:Elitre (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Quiddity_(WMF)/sandbox3&oldid=25009633 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Selection of the U4C Building Committee</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> The next stage in the Universal Code of Conduct process is establishing a Building Committee to create the charter for the Universal Code of Conduct Coordinating Committee (U4C). The Building Committee has been selected. [[m:Special:MyLanguage/Universal_Code_of_Conduct/U4C_Building_Committee|Read about the members and the work ahead on Meta-wiki]].<section end="announcement-content" /> </div> -- [[m:Special:MyLanguage/Universal_Code_of_Conduct/Project|UCoC Project Team]], 04:20, 27 مٔیی 2023 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25018085 --> == MinT Machine Translation enabled in Kashmiri Wikipedia == {{int:Hello}} Kashmiri Wikipedians! Apologies as this message is not in your language, {{int:Please help translate}} to your language. The WMF Language team has added a machine translation (MT) system supporting [[خاص:ContentTranslation|Content Translation]] for the first time in your Wikipedia called MinT; you can use [[mw:Content_translation/Machine_Translation/MinT|MinT machine translation]] when translating Wikipedia articles using the Content Translation tool. The WMF Language team provides the MinT service. It is hosted in the Wikimedia Foundation Infrastructure with [[:en:Neural_machine_translation|neural machine translation]] models that other organizations have released with an open-source license. MinT integrates translation based on [https://ai.facebook.com/research/no-language-left-behind/ NLLB-200] and [https://opus.nlpl.eu/ OpusMT] and will replace those as separate options. This MT is set as optional; in your Wikipedia, so you can choose not to use it as your preferred initial translator. If you decide to use this service, you can select "MinT" from the "Initial Translation" dropdown menu, where you will find other existing machine translation services on the sidebar. Since MinT is hosted in the WMF Infrastructure and the models are open source, it adheres to Wikipedia's policies about attribution of rights, your privacy as a user and brand representation. You can find more information about the MinT Machine translation and the models on [[mw:Content_translation/Machine_Translation/MinT|this page]]. Please note that the use of the Mint MT is optional. However, we would want your community to: * use it to improve the quality of the Machine Translation service; and * [[mw:Talk:Content_translation|please provide feedback]] about its quality and ask any questions about this addition. We look forward to you using this open-source addition to the Content Translations tool. Thank you! [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 17:39, 31 مٔیی 2023 (UTC) On behalf of the WMF Language team. :Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]], It is really amazing development. I am already loving it. Though the translations are not perfect but they help us to reduce the time in creating articles. I am hopeful that this will have a good impact on this Wikipedia. I am thanking whole Language Team for making this possible. Thankyou once again. Have a good day. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 16:18, 2 جوٗن 2023 (UTC) == <span lang="en" dir="ltr" class="mw-content-ltr"> Announcing the new Elections Committee members</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Wikimedia Foundation elections committee/Nominatons/2023/Announcement - new members|You can find this message translated into additional languages on Meta-wiki.]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections committee/Nominatons/2023/Announcement - new members|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections committee/Nominatons/2023/Announcement - new members}}&language=&action=page&filter= {{int:please-translate}}]</div>'' Hello there, We are glad to announce [[listarchive:list/wikimedia-l@lists.wikimedia.org/message/4TALOUFPAP2VDBR27GKRVOP7IGQYU3DB/|the new members and advisors of the Elections Committee]]. The [[m:Special:MyLanguage/Wikimedia_Foundation_elections_committee|Elections Committee]] assists with the design and implementation of the process to select Community- and Affiliate-Selected trustees for the Wikimedia Foundation Board of Trustees. After an open nomination process, the strongest candidates spoke with the Board and four candidates were asked to join the Elections Committee. Four other candidates were asked to participate as advisors. Thank you to all the community members who submitted their names for consideration. We look forward to working with the Elections Committee in the near future. On behalf of the Wikimedia Foundation Board of Trustees,<br /><section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 18:00, 28 جوٗن 2023 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25018085 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Review the Charter for the Universal Code of Conduct Coordinating Committee</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''<div class="plainlinks">[[m:Special:MyLanguage/Universal Code of Conduct/U4C Building Committee/Announcement - Review|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/U4C Building Committee/Announcement - Review}}&language=&action=page&filter= {{int:please-translate}}]</div>'' Hello all, I am pleased to share the next step in the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]] work. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|Universal Code of Conduct Coordinating Committee (U4C) draft charter]] is now ready for your review. The [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct/Enforcement guidelines|Enforcement Guidelines]] require a [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines#4.5_U4C_Building_Committee|Building Committee]] form to draft a charter that outlines procedures and details for a global committee to be called the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines#4._UCoC_Coordinating_Committee_(U4C)|Universal Code of Conduct Coordinating Committee (U4C)]]. Over the past few months, the U4C Building Committee worked together as a group to discuss and draft the U4C charter. The U4C Building Committee welcomes feedback about the draft charter now through 22 September 2023. After that date, the U4C Building Committee will revise the charter as needed and a community vote will open shortly afterward. Join the conversation during the [[m:Special:MyLanguage/Universal Code of Conduct/U4C Building Committee#Conversation hours|conversation hours]] or on [[m:Talk:Universal Code of Conduct/Coordinating Committee/Charter|Meta-wiki]]. Best,<br /><section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]], on behalf of the U4C Building Committee, 15:35, 28 اَگَست 2023 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25392152 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Your wiki will be in read-only soon</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="server-switch"/><div class="plainlinks"> [[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}] The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. To make sure everything is working, the Wikimedia Technology department needs to do a planned test. This test will show if they can reliably switch from one data centre to the other. It requires many teams to prepare for the test and to be available to fix any unexpected problems. All traffic will switch on '''{{#time:j xg|2023-09-20|en}}'''. The test will start at '''[https://zonestamp.toolforge.org/{{#time:U|2023-09-20T14:00|en}} {{#time:H:i e|2023-09-20T14:00}}]'''. Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future. '''You will be able to read, but not edit, all wikis for a short period of time.''' *You will not be able to edit for up to an hour on {{#time:l j xg Y|2023-09-20|en}}. *If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case. ''Other effects'': *Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped. * We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards. * [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes. This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. There will be more notifications about this. A banner will be displayed on all wikis 30 minutes before this operation happens. '''Please share this information with your community.'''</div><section end="server-switch"/> </div> [[User:Trizek (WMF)|Trizek_(WMF)]] ([[m:User talk:Trizek (WMF)|talk]]) 09:23, 15 سَتَمبَر 2023 (UTC) <!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=25018086 --> == <span lang="en" dir="ltr" class="mw-content-ltr">== Opportunities open for the Affiliations Committee, Ombuds commission, and the Case Review Committee ==</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> <div style="margin:.2em 0 .5em;margin-{{#switch:{{PAGELANGUAGE}}|ar|arc|ary|arz|azb|bcc|bgn|ckb|bqi|dv|fa|fa-af|glk|ha-arab|he|kk-arab|kk-cn|ks|ku-arab|ms-arab|mzn|pnb|prd|ps|sd|ug|ur|ydd|yi=right|left}}:3ex;"> [[m:Special:MyLanguage/Wikimedia Foundation Legal department/Committee appointments/Announcement/Short|''You can find this message translated into additional languages on Meta-wiki.'']] ''<span class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Legal department/Committee appointments/Announcement/Short|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Legal department/Committee appointments/Announcement/Short}}&language=&action=page&filter= {{int:please-translate}}]</span>''</div> Hi everyone! The [[m:Special:MyLanguage/Affiliations Committee|Affiliations Committee]] (AffCom), [[m:Special:MyLanguage/Ombuds_commission|Ombuds commission]] (OC), and the [[m:Special:MyLanguage/Trust_and_Safety/Case_Review_Committee|Case Review Committee]] (CRC) are looking for new members. These volunteer groups provide important structural and oversight support for the community and movement. People are encouraged to nominate themselves or encourage others they feel would contribute to these groups to apply. There is more information about the roles of the groups, the skills needed, and the opportunity to apply on the [[m:Special:MyLanguage/Wikimedia Foundation Legal department/Committee appointments|'''Meta-wiki page''']]. On behalf of the Committee Support team,<br /><section end="announcement-content" /> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> ~ [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 16:41, 9 اَکتوٗبَر 2023 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25570445 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Review and comment on the 2024 Wikimedia Foundation Board of Trustees selection rules package</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/wiki/Wikimedia Foundation elections/2024/Announcement/Rules package review - short| You can find this message translated into additional languages on Meta-wiki.]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/wiki/Wikimedia Foundation elections/2024/Announcement/Rules package review - short|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Wikimedia Foundation elections/2024/Announcement/Rules package review - short}}&language=&action=page&filter= {{int:please-translate}}]</div>'' Dear all, Please review and comment on the Wikimedia Foundation Board of Trustees selection rules package from now until 29 October 2023. The selection rules package was based on older versions by the Elections Committee and will be used in the 2024 Board of Trustees selection. Providing your comments now will help them provide a smoother, better Board selection process. [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|More on the Meta-wiki page]]. Best, Katie Chan <br> Chair of the Elections Committee<br /><section end="announcement-content" /> </div> 01:12, 17 اَکتوٗبَر 2023 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25570445 --> == مومینٹ چارٹر کَتھ باتھ مَنٛز گژھِو شٲمِل == سَلام، تۄہہِ آسہِ پَتا زِ، مومینٹ چارٹَر ڈرافٹِنگ کٔمِٹی (ایم سی ڈی سی) چھِ بَرادری ہٕنٛز تَجویٖز رَٹان کیٚنٛہہ مومینٹ چارٹَر ڈرافٹَن مُتلِق: یِم چھِ عالمی کۄنٛسل، "ہَب" تہٕ "معنے" ڈرافٹ . أسؠ چھِ یَژھ زِ کٲشِر بَرادری گَژھِ پوٗرٕ پٲٹھؠ اَتھ عَملہِ مَنٛز شٲمِل گَژھِن تہٕ اَتھ مُتلِق راے پیش کَرٕنؠ. اَمہِ کِن چھِ 19 اکتوٗبَر 8:00 بَجے پؠٹھ 9:00 بَجے تام اَکھ آنلایِن مُلاکاتھ کَرنُک فٲصلہٕ نِنہٕ آمُت یُس گوٗگل میٖٹَس پؠٹھ آسہِ. أسؠ چھِ تۄہہِ داوَتھ دِوان اَتھ مَنٛز شٲمِل گَژھنہٕ خٲطرٕ تہٕ پَننؠ راے برٛونٛہہ کُن تھاونہٕ خٲطرٕ! مومینٹ چارٹَر عُنوانَس مُتلِق ہیٚکِو تۄہہِ، مےٚ پژھِو مومینٹ چارٹَرَس مُتلِق کیٚنٛہہ تہِ تہٕ یِم ڈرافٹ پٔرِتھ [[:m:Movement Charter/Content/Global Council|عالمی کۄنٛسل]]، "[[:m:Movement Charter/Content/Hubs|ہَب]]" تہٕ "[[:m:Movement Charter/Content/Glossary|معنے]]" کَتھ باتھ برٛونٛہہ. * '''تٲریٖخ''': 17 اکتوٗبر 7:00 بَجے پؠٹھ 8:00 ہِندوستٲنؠ وَقٕت مُطٲبِق. * '''لِنک''': [https://meet.google.com/grr-yxgw-gee یَتھ جاے] سَوالَن خٲطرٕ ہیٚکِو تۄہہِ ''[[رُکُن:511KeV|مےٚ ستؠ کَتھ باتھ کٔرِتھ]]''. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 12:40, 17 اَکتوٗبَر 2023 (UTC) == <span lang="en" dir="ltr" class="mw-content-ltr">Coming soon: Reference Previews</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="ReferencePreviewsDefault"/> [[File:Example_of_a_Reference_Preview.png|right|300px]] A new feature is coming to your wiki soon: Reference Previews are popups for references. Such popups have existed on wikis as local gadgets for many years. Now there is a central solution, available on all wikis, and consistent with the [[mw:Special:MyLanguage/Page Previews|PagePreviews feature]]. Reference Previews will be visible to everyone, including readers. If you don’t want to see them, [[m:WMDE Technical Wishes/ReferencePreviews#Opt-out feature|you can opt out]]. If you are [[Special:Preferences#mw-prefsection-gadgets|using the gadgets]] Reference Tooltips or Navigation Popups, you won’t see Reference Previews unless you disable the gadget. Reference Previews have been a beta feature on many wikis since 2019, and a default feature on some since 2021. Deployment is planned for November 22. * [[mw:Special:MyLanguage/Help:Reference Previews|Help page]] * [[m:WMDE Technical Wishes/ReferencePreviews|Project page with more information (in English)]]. * Feedback is welcome [[m:Talk:WMDE Technical Wishes/ReferencePreviews|on this talk page]]. -- For [[m:WMDE Technical Wishes|Wikimedia Deutschland’s Technical Wishes]] team, <section end="ReferencePreviewsDefault"/> </div> [[m:User:Johanna Strodt (WMDE)|Johanna Strodt (WMDE)]], 13:11, 15 نَوَمبَر 2023 (UTC) <!-- Message sent by User:Johanna Strodt (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=25866958 --> == <span lang="en" dir="ltr" class="mw-content-ltr">(New) Feature on [[mw:Special:MyLanguage/Help:Extension:Kartographer|Kartographer]]: Adding geopoints via QID</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="Body"/>Since September 2022, it is possible to create geopoints using a QID. Many wiki contributors have asked for this feature, but it is not being used much. Therefore, we would like to remind you about it. More information can be found on the [[M:WMDE_Technical_Wishes/Geoinformation/Geopoints via QID|project page]]. If you have any comments, please let us know on the [[M:Talk:WMDE Technical Wishes/Geoinformation/Geopoints via QID|talk page]]. – Best regards, the team of Technical Wishes at Wikimedia Deutschland <section end="Body"/> </div> [[M:User:Thereza Mengs (WMDE)|Thereza Mengs (WMDE)]] 12:31, 13 دَسَمبَر 2023 (UTC) <!-- Message sent by User:Thereza Mengs (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=25955829 --> == Do you use Wikidata in Wikimedia sibling projects? Tell us about your experiences == <div lang="en" dir="ltr" class="mw-content-ltr"> ''Note: Apologies for cross-posting and sending in English.'' Hello, the '''[[m:WD4WMP|Wikidata for Wikimedia Projects]]''' team at Wikimedia Deutschland would like to hear about your experiences using Wikidata in the sibling projects. If you are interested in sharing your opinion and insights, please consider signing up for an interview with us in this '''[https://wikimedia.sslsurvey.de/Wikidata-for-Wikimedia-Interviews Registration form]'''.<br> ''Currently, we are only able to conduct interviews in English.'' The front page of the form has more details about what the conversation will be like, including how we would '''compensate''' you for your time. For more information, visit our ''[[m:WD4WMP/AddIssue|project issue page]]'' where you can also share your experiences in written form, without an interview.<br>We look forward to speaking with you, [[m:User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] ([[m:User talk:Danny Benjafield (WMDE)|talk]]) 08:53, 5 January 2024 (UTC) </div> <!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/WD4WMP/ScreenerInvite&oldid=26027495 --> == Making MinT a default Machine Translation for your Wikipedia == {{int:Hello}} Kashmiri Wikipedians! Apologies as this message is not in your native language, {{int:please-translate}}. The [[mw:Wikimedia Language engineering|WMF Language team]] wants to make [[mw:MinT|MinT]] the default machine translation support in Kashmiri Wikipedia [[mw:Content translation|Content Translation]]. MinT uses the [https://ai4bharat.iitm.ac.in/indic-trans2/ IndicTrans2] machine translation model, which recently has a new version. Our proposal to set MinT as the default machine translation service in this Wikipedia will expose contributors to open source service by default and allow them to switch to other services if they prefer those services. Contributors can decide to switch to another translation service that is not default if they prefer the service, which will be helpful in analysing user preferences in the future. The WMF Language team is requesting feedback from members of this community in this thread if making the MinT the default translation service is okay in Kashmiri Wikipedia. If there are no objections to the above proposal. In that case, MinT will become the default machine translation in this Wikipedia by the end of January 2024. Thank you for your feedback. [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 21:43, 9 جَنؤری 2024 (UTC) On behalf of the WMF Language team. == Reusing references: Can we look over your shoulder? == ''Apologies for writing in English.'' The Technical Wishes team at Wikimedia Deutschland is planning to [[m:WMDE Technical Wishes/Reusing references|make reusing references easier]]. For our research, we are looking for wiki contributors willing to show us how they are interacting with references. * The format will be a 1-hour video call, where you would share your screen. [https://wikimedia.sslsurvey.de/User-research-into-Reusing-References-Sign-up-Form-2024/en/ More information here]. * Interviews can be conducted in English, German or Dutch. * [[mw:WMDE_Engineering/Participate_in_UX_Activities#Compensation|Compensation is available]]. * Sessions will be held in January and February. * [https://wikimedia.sslsurvey.de/User-research-into-Reusing-References-Sign-up-Form-2024/en/ Sign up here if you are interested.] * Please note that we probably won’t be able to have sessions with everyone who is interested. Our UX researcher will try to create a good balance of wiki contributors, e.g. in terms of wiki experience, tech experience, editing preferences, gender, disability and more. If you’re a fit, she will reach out to you to schedule an appointment. We’re looking forward to seeing you, [[m:User:Thereza Mengs (WMDE)| Thereza Mengs (WMDE)]] <!-- Message sent by User:Thereza Mengs (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=25956752 --> == Feminism and Folklore 2024 == <div style="border:8px maroon ridge;padding:6px;> [[File:Feminism and Folklore 2024 logo.svg|centre|550px|frameless]] ::<div lang="en" dir="ltr" class="mw-content-ltr"> <center>''{{int:please-translate}}''</center> Dear Wiki Community, You are humbly invited to organize the '''[[:m:Feminism and Folklore 2024|Feminism and Folklore 2024]]''' writing competition from February 1, 2023, to March 31, 2023 on your local Wikipedia. This year, Feminism and Folklore will focus on feminism, women's issues, and gender-focused topics for the project, with a [[:c:Commons:Wiki Loves Folklore 2024|Wiki Loves Folklore]] gender gap focus and a folk culture theme on Wikipedia. You can help Wikipedia's coverage of folklore from your area by writing or improving articles about things like folk festivals, folk dances, folk music, women and queer folklore figures, folk game athletes, women in mythology, women warriors in folklore, witches and witch hunting, fairy tales, and more. Users can help create new articles, expand or translate from a generated list of suggested articles. Organisers are requested to work on the following action items to sign up their communities for the project: # Create a page for the contest on the local wiki. # Set up a campaign on '''CampWiz''' tool. # Create the local list and mention the timeline and local and international prizes. # Request local admins for site notice. # Link the local page and the CampWiz link on the [[:m:Feminism and Folklore 2024/Project Page|meta project page]]. This year, the Wiki Loves Folklore Tech Team has introduced two new tools to enhance support for the campaign. These tools include the '''Article List Generator by Topic''' and '''CampWiz'''. The Article List Generator by Topic enables users to identify articles on the English Wikipedia that are not present in their native language Wikipedia. Users can customize their selection criteria, and the tool will present a table showcasing the missing articles along with suggested titles. Additionally, users have the option to download the list in both CSV and wikitable formats. Notably, the CampWiz tool will be employed for the project for the first time, empowering users to effectively host the project with a jury. Both tools are now available for use in the campaign. [https://tools.wikilovesfolklore.org/ '''Click here to access these tools'''] Learn more about the contest and prizes on our [[:m:Feminism and Folklore 2024|project page]]. Feel free to contact us on our [[:m:Talk:Feminism and Folklore 2024/Project Page|meta talk page]] or by email us if you need any assistance. We look forward to your immense coordination. Thank you and Best wishes, '''[[:m:Feminism and Folklore 2024|Feminism and Folklore 2024 International Team]]''' ::::Stay connected [[File:B&W Facebook icon.png|link=https://www.facebook.com/feminismandfolklore/|30x30px]]&nbsp; [[File:B&W Twitter icon.png|link=https://twitter.com/wikifolklore|30x30px]] </div></div> --[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 07:26, 18 جَنؤری 2024 (UTC) == Wiki Loves Folklore is back! == <div lang="en" dir="ltr" class="mw-content-ltr"> {{int:please-translate}} [[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]] Dear Wiki Community, You are humbly invited to participate in the '''[[:c:Commons:Wiki Loves Folklore 2024|Wiki Loves Folklore 2024]]''' an international photography contest organized on Wikimedia Commons to document folklore and intangible cultural heritage from different regions, including, folk creative activities and many more. It is held every year from the '''1st till the 31st''' of March. You can help in enriching the folklore documentation on Commons from your region by taking photos, audios, videos, and [https://commons.wikimedia.org/w/index.php?title=Special:UploadWizard&campaign=wlf_2024 submitting] them in this commons contest. You can also [[:c:Commons:Wiki Loves Folklore 2024/Organize|organize a local contest]] in your country and support us in translating the [[:c:Commons:Wiki Loves Folklore 2024/Translations|project pages]] to help us spread the word in your native language. Feel free to contact us on our [[:c:Commons talk:Wiki Loves Folklore 2024|project Talk page]] if you need any assistance. '''Kind regards,''' '''Wiki loves Folklore International Team''' -- [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 07:26, 18 جَنؤری 2024 (UTC) </div></div> <!-- Message sent by User:Tiven2240@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=23942484 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Vote on the Charter for the Universal Code of Conduct Coordinating Committee</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting opens}}&language=&action=page&filter= {{int:please-translate}}]'' Hello all, I am reaching out to you today to announce that the voting period for the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) Charter is now open. Community members may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter/Voter_information|cast their vote and provide comments about the charter via SecurePoll]] now through '''2 February 2024'''. Those of you who voiced your opinions during the development of the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|UCoC Enforcement Guidelines]] will find this process familiar. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|current version of the U4C Charter]] is on Meta-wiki with translations available. Read the charter, go vote and share this note with others in your community. I can confidently say the U4C Building Committee looks forward to your participation. On behalf of the UCoC Project team,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 18:08, 19 جَنؤری 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25853527 --> == A new feature for previewing references on your wiki == <div lang="en" dir="ltr" class="mw-content-ltr"> [[File:Page Previews and Reference Previews.png|alt=Montage of two screenshots, one showing the Reference Previews feature, and one showing the Page Previews feature|right|350x350px]] ''Apologies for writing in English. If you can translate this message, that would be much appreciated.'' Hi. As announced some weeks ago <sup>[<nowiki/>[[listarchive:list/wikitech-l@lists.wikimedia.org/thread/CNPRQE2IG5ZNAVAOHBMF4AXXRLGJE6UT/|1]]] [<nowiki/>[[m:Special:MyLanguage/Tech/News/2023/46|2]]]</sup>, Wikimedia Deutschland’s [[m:WMDE Technical Wishes|Technical Wishes]] team introduced [[mw:Special:MyLanguage/Help:Reference_Previews|Reference Previews]] to many wikis, including this one. This feature shows popups for references in the article text. While this new feature is already usable on your wiki, most people here are not seeing it yet because your wiki has set [[m:WMDE Technical Wishes/ReferencePreviews#Relation to gadgets|a gadget as the default]] for previewing references. We plan to remove the default flag from the gadget on your wiki soon. This means: * The new default for reference popups on your wiki will be Reference Previews. * However, if you want to keep using the gadget, you can still enable it in [[Special:Preferences#mw-prefsection-gadgets|your personal settings]]. The benefit of having Reference Previews as the default is that the user experience will be consistent across wikis and with the [[mw:Special:MyLanguage/Page_Previews|Page Previews feature]], and that the software will be easier to maintain overall. This change is planned for February 14. If you have concerns about this change, [[m:Talk:WMDE Technical Wishes/ReferencePreviews#Reference Previews to become the default for previewing references on more wikis.|please let us know on this talk page]] by February 12. – Kind regards, [[m:User:Johanna Strodt (WMDE)|Johanna Strodt (WMDE)]], 09:30, 23 جَنؤری 2024 (UTC) </div> <!-- Message sent by User:Johanna Strodt (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Johanna_Strodt_(WMDE)/MassMessageRecipients&oldid=26116190 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Last days to vote on the Charter for the Universal Code of Conduct Coordinating Committee</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting reminder|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting reminder}}&language=&action=page&filter= {{int:please-translate}}]'' Hello all, I am reaching out to you today to remind you that the voting period for the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) charter will close on '''2 February 2024'''. Community members may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter/Voter_information|cast their vote and provide comments about the charter via SecurePoll]]. Those of you who voiced your opinions during the development of the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|UCoC Enforcement Guidelines]] will find this process familiar. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|current version of the U4C charter]] is on Meta-wiki with translations available. Read the charter, go vote and share this note with others in your community. I can confidently say the U4C Building Committee looks forward to your participation. On behalf of the UCoC Project team,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 17:00, 31 جَنؤری 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25853527 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Announcing the results of the UCoC Coordinating Committee Charter ratification vote</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - results|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - results}}&language=&action=page&filter= {{int:please-translate}}]'' Dear all, Thank you everyone for following the progress of the Universal Code of Conduct. I am writing to you today to announce the outcome of the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter/Voter_information|ratification vote]] on the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|Universal Code of Conduct Coordinating Committee Charter]]. 1746 contributors voted in this ratification vote with 1249 voters supporting the Charter and 420 voters not. The ratification vote process allowed for voters to provide comments about the Charter. A report of voting statistics and a summary of voter comments will be published on Meta-wiki in the coming weeks. Please look forward to hearing about the next steps soon. On behalf of the UCoC Project team,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 18:23, 12 فَرؤری 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26160150 --> == Ukraine's Cultural Diplomacy Month 2024: We are back! == <div lang="en" dir="ltr" class="mw-content-ltr"> [[File:UCDM 2024 general.jpg|180px|right]] {{int:please-translate}} Hello, dear Wikipedians!<br/> [[:m:Special:MyLanguage/Wikimedia Ukraine|Wikimedia Ukraine]], in cooperation with the [[:en:Ministry of Foreign Affairs of Ukraine|MFA of Ukraine]] and [[:en:Ukrainian Institute|Ukrainian Institute]], has launched the forth edition of writing challenge "'''[[:m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2024|Ukraine's Cultural Diplomacy Month]]'''", which lasts from 1st until 31st March 2024. The campaign is dedicated to famous Ukrainian artists of cinema, music, literature, architecture, design and cultural phenomena of Ukraine that are now part of world heritage. We accept contribution in every language! The most active contesters will receive prizes.<br/> We invite you to take part and help us improve the coverage of Ukrainian culture on Wikipedia in your language! Also, we plan to set up a [[:m:CentralNotice/Request/UCDM 2024|banner]] to notify users of the possibility to participate in such a challenge! [[:m:User:ValentynNefedov (WMUA)|ValentynNefedov (WMUA)]] ([[:m:User talk:ValentynNefedov (WMUA)|talk]]) </div> <!-- Message sent by User:ValentynNefedov (WMUA)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=26166467 --> == <span lang="en" dir="ltr" class="mw-content-ltr"> Report of the U4C Charter ratification and U4C Call for Candidates now available</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – call for candidates| You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – call for candidates}}&language=&action=page&filter= {{int:please-translate}}]'' Hello all, I am writing to you today with two important pieces of information. First, the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter/Vote results|report of the comments from the Universal Code of Conduct Coordinating Committee (U4C) Charter ratification]] is now available. Secondly, the call for candidates for the U4C is open now through April 1, 2024. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community members are invited to submit their applications for the U4C. For more information and the responsibilities of the U4C, please [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]]. Per the charter, there are 16 seats on the U4C: eight community-at-large seats and eight regional seats to ensure the U4C represents the diversity of the movement. Read more and submit your application on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|Meta-wiki]]. On behalf of the UCoC project team,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 16:25, 5 مارٕچ 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26276337 --> == <span lang="en" dir="ltr" class="mw-content-ltr"> Wikimedia Foundation Board of Trustees 2024 Selection</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> : ''[[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Announcement/Selection announcement| You can find this message translated into additional languages on Meta-wiki.]]'' : ''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Announcement/Selection announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2024/Announcement/Selection announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>'' Dear all, This year, the term of 4 (four) Community- and Affiliate-selected Trustees on the Wikimedia Foundation Board of Trustees will come to an end [1]. The Board invites the whole movement to participate in this year’s selection process and vote to fill those seats. The [[m:Special:MyLanguage/Wikimedia Foundation elections committee|Elections Committee]] will oversee this process with support from Foundation staff [2]. The Board Governance Committee created a Board Selection Working Group from Trustees who cannot be candidates in the 2024 community- and affiliate-selected trustee selection process composed of Dariusz Jemielniak, Nataliia Tymkiv, Esra'a Al Shafei, Kathy Collins, and Shani Evenstein Sigalov [3]. The group is tasked with providing Board oversight for the 2024 trustee selection process, and for keeping the Board informed. More details on the roles of the Elections Committee, Board, and staff are here [4]. Here are the key planned dates: * May 2024: Call for candidates and call for questions * June 2024: Affiliates vote to shortlist 12 candidates (no shortlisting if 15 or less candidates apply) [5] * June-August 2024: Campaign period * End of August / beginning of September 2024: Two-week community voting period * October–November 2024: Background check of selected candidates * Board's Meeting in December 2024: New trustees seated Learn more about the 2024 selection process - including the detailed timeline, the candidacy process, the campaign rules, and the voter eligibility criteria - on [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|this Meta-wiki page]], and make your plan. '''Election Volunteers''' Another way to be involved with the 2024 selection process is to be an Election Volunteer. Election Volunteers are a bridge between the Elections Committee and their respective community. They help ensure their community is represented and mobilize them to vote. Learn more about the program and how to join on this [[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Election Volunteers|Meta-wiki page]]. Best regards, [[m:Special:MyLanguage/User:Pundit|Dariusz Jemielniak]] (Governance Committee Chair, Board Selection Working Group) [1] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2021/Results#Elected [2] https://foundation.wikimedia.org/wiki/Committee:Elections_Committee_Charter [3] https://foundation.wikimedia.org/wiki/Minutes:2023-08-15#Governance_Committee [4] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections_committee/Roles [5] Even though the ideal number is 12 candidates for 4 open seats, the shortlisting process will be triggered if there are more than 15 candidates because the 1-3 candidates that are removed might feel ostracized and it would be a lot of work for affiliates to carry out the shortlisting process to only eliminate 1-3 candidates from the candidate list.<section end="announcement-content" /> </div> [[User:MPossoupe_(WMF)|MPossoupe_(WMF)]]19:57, 12 مارٕچ 2024 (UTC) <!-- Message sent by User:MPossoupe (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26349432 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Your wiki will be in read-only soon</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="server-switch"/><div class="plainlinks"> [[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}] The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. All traffic will switch on '''{{#time:j xg|2024-03-20|en}}'''. The test will start at '''[https://zonestamp.toolforge.org/{{#time:U|2024-03-20T14:00|en}} {{#time:H:i e|2024-03-20T14:00}}]'''. Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future. '''You will be able to read, but not edit, all wikis for a short period of time.''' *You will not be able to edit for up to an hour on {{#time:l j xg Y|2024-03-20|en}}. *If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case. ''Other effects'': *Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped. * We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards. * [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes. This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. There will be more notifications about this. A banner will be displayed on all wikis 30 minutes before this operation happens. '''Please share this information with your community.'''</div><section end="server-switch"/> </div> [[user:Trizek (WMF)|Trizek (WMF)]], 00:01, 15 مارٕچ 2024 (UTC) <!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=25636619 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Vote now to select members of the first U4C</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens}}&language=&action=page&filter= {{int:please-translate}}]'' Dear all, I am writing to you to let you know the voting period for the Universal Code of Conduct Coordinating Committee (U4C) is open now through May 9, 2024. Read the information on the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|voting page on Meta-wiki]] to learn more about voting and voter eligibility. The Universal Code of Conduct Coordinating Committee (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community members were invited to submit their applications for the U4C. For more information and the responsibilities of the U4C, please [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]]. Please share this message with members of your community so they can participate as well. On behalf of the UCoC project team,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 20:21, 25 اَپریل 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Vote now to select members of the first U4C</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens}}&language=&action=page&filter= {{int:please-translate}}]'' Dear all, I am writing to you to let you know the voting period for the Universal Code of Conduct Coordinating Committee (U4C) is open now through May 9, 2024. Read the information on the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|voting page on Meta-wiki]] to learn more about voting and voter eligibility. The Universal Code of Conduct Coordinating Committee (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community members were invited to submit their applications for the U4C. For more information and the responsibilities of the U4C, please [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]]. Please share this message with members of your community so they can participate as well. On behalf of the UCoC project team,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 20:21, 25 اَپریل 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Sign up for the language community meeting on May 31st, 16:00 UTC</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="message"/>Hello all, The next language community meeting is scheduled in a few weeks - May 31st at 16:00 UTC. If you're interested, you can [https://www.mediawiki.org/w/index.php?title=Wikimedia_Language_engineering/Community_meetings#31_May_2024 sign up on this wiki page]. This is a participant-driven meeting, where we share language-specific updates related to various projects, collectively discuss technical issues related to language wikis, and work together to find possible solutions. For example, in the last meeting, the topics included the machine translation service (MinT) and the languages and models it currently supports, localization efforts from the Kiwix team, and technical challenges with numerical sorting in files used on Bengali Wikisource. Do you have any ideas for topics to share technical updates related to your project? Any problems that you would like to bring for discussion during the meeting? Do you need interpretation support from English to another language? Please reach out to me at ssethi(__AT__)wikimedia.org and [[etherpad:p/language-community-meeting-may-2024|add agenda items to the document here]]. We look forward to your participation! <section end="message"/> </div> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:22, 14 مٔیی 2024 (UTC) <!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == <span lang="en" dir="ltr" class="mw-content-ltr"> Feedback invited on Procedure for Sibling Project Lifecycle</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle/Invitation for feedback (MM)|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle/Invitation for feedback (MM)}}&language=&action=page&filter= {{int:please-translate}}]'' [[File:Sibling Project Lifecycle Conversation 3.png|150px|right|link=:m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle]] Dear community members, The [[:m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee|Community Affairs Committee]] (CAC) of the [[:m:Special:MyLanguage/Wikimedia Foundation Board of Trustees|Wikimedia Foundation Board of Trustees]] invites you to give feedback on a '''[[:m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle|draft Procedure for Sibling Project Lifecycle]]'''. This draft Procedure outlines proposed steps and requirements for opening and closing Wikimedia Sibling Projects, and aims to ensure any newly approved projects are set up for success. This is separate from the procedures for opening or closing language versions of projects, which is handled by the [[:m:Special:MyLanguage/Language committee|Language Committee]] or [[m:Special:MyLanguage/Closing_projects_policy|closing projects policy]]. You can find the details on [[:m:Special:MyLanguage/Talk:Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle#Review|this page]], as well as the ways to give your feedback from today until the end of the day on '''June 23, 2024''', anywhere on Earth. You can also share information about this with the interested project communities you work with or support, and you can also help us translate the procedure into more languages, so people can join the discussions in their own language. On behalf of the CAC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 02:25, 22 مٔیی 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Announcing the first Universal Code of Conduct Coordinating Committee</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – results|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – results}}&language=&action=page&filter= {{int:please-translate}}]'' Hello, The scrutineers have finished reviewing the vote results. We are following up with the results of the first [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|Universal Code of Conduct Coordinating Committee (U4C) election]]. We are pleased to announce the following individuals as regional members of the U4C, who will fulfill a two-year term: * North America (USA and Canada) ** – * Northern and Western Europe ** [[m:Special:MyLanguage/User:Ghilt|Ghilt]] * Latin America and Caribbean ** – * Central and East Europe (CEE) ** — * Sub-Saharan Africa ** – * Middle East and North Africa ** [[m:Special:MyLanguage/User:Ibrahim.ID|Ibrahim.ID]] * East, South East Asia and Pacific (ESEAP) ** [[m:Special:MyLanguage/User:0xDeadbeef|0xDeadbeef]] * South Asia ** – The following individuals are elected to be community-at-large members of the U4C, fulfilling a one-year term: * [[m:Special:MyLanguage/User:Barkeep49|Barkeep49]] * [[m:Special:MyLanguage/User:Superpes15|Superpes15]] * [[m:Special:MyLanguage/User:Civvì|Civvì]] * [[m:Special:MyLanguage/User:Luke081515|Luke081515]] * – * – * – * – Thank you again to everyone who participated in this process and much appreciation to the candidates for your leadership and dedication to the Wikimedia movement and community. Over the next few weeks, the U4C will begin meeting and planning the 2024-25 year in supporting the implementation and review of the UCoC and Enforcement Guidelines. Follow their work on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Meta-wiki]]. On behalf of the UCoC project team,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 08:14, 3 جوٗن 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == <span lang="en" dir="ltr" class="mw-content-ltr">The final text of the Wikimedia Movement Charter is now on Meta</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Final draft available|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Final draft available}}&language=&action=page&filter= {{int:please-translate}}]'' Hi everyone, The final text of the [[m:Special:MyLanguage/Movement Charter|Wikimedia Movement Charter]] is now up on Meta in more than 20 languages for your reading. '''What is the Wikimedia Movement Charter?''' The Wikimedia Movement Charter is a proposed document to define roles and responsibilities for all the members and entities of the Wikimedia movement, including the creation of a new body – the Global Council – for movement governance. '''Join the Wikimedia Movement Charter “Launch Party”''' Join the [[m:Special:MyLanguage/Event:Movement Charter Launch Party|“Launch Party”]] on '''June 20, 2024''' at '''14.00-15.00 UTC''' ([https://zonestamp.toolforge.org/1718892000 your local time]). During this call, we will celebrate the release of the final Charter and present the content of the Charter. Join and learn about the Charter before casting your vote. '''Movement Charter ratification vote''' Voting will commence on SecurePoll on '''June 25, 2024''' at '''00:01 UTC''' and will conclude on '''July 9, 2024''' at '''23:59 UTC.''' You can read more about the [[m:Special:MyLanguage/Movement Charter/Ratification/Voting|voting process, eligibility criteria, and other details]] on Meta. If you have any questions, please leave a comment on the [[m:Special:MyLanguage/Talk:Movement Charter|Meta talk page]] or email the MCDC at [mailto:mcdc@wikimedia.org mcdc@wikimedia.org]. On behalf of the MCDC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 08:44, 11 جوٗن 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == Plans to enable MinT for Wiki readers in Kashmiri Wikipedia == {{int:Hello}} Kashmiri Wikipedians! Apologies as this message is not in your language, {{int:please-translate}}. The [[mw:Wikimedia_Language_engineering|WMF Language team]] has been working on [[mw:MinT#MinT_for_wiki_readers|MinT for Wiki Readers]]. This feature will allow communities to access more content that is only available in other languages with machine translation in Wikipedia. We will be enabling the initial version of this feature first in Igbo Wikipedia, and your Wikipedia is the next to test and have this feature since it will be beneficial for reading content in other languages. For this, our team would like you to read about the feature and [[:ks:Special:AutomaticTranslation|'''test it''']] so you can: * Ask us questions * Tell us how to improve the feature * Give us your feedback on enabling it in your Wikipedia '''About the feature''' The MinT for Wiki Readers is a feature that will allow readers of Kashmiri Wikipedia to expand their reading options and knowledge beyond the language they are familiar with in Wikipedia. For instance, if someone is interested in a topic or content that only exists in the Japanese language and the person is not familiar with the language. While using the mobile web version of Wikipedia, the reader can access the machine translation version of that content in the Kashmiri language from the language selector or the article's footer (as shown in the media files below). [[File:MinT MVP Language Selector entry point video.webm|Language selector entry point]], [[File:MinT_MVP_Article_footer_entry_point.png|300px|Article footer entry point]] These machine-generated translations of content are clearly identified as such, and the human-created content is surfaced and recommended if available. This feature is in its initial development. It is an early and functional version, and many aspects will be improved based on your community member's feedback on what works and what can be improved to better support your needs as readers. '''How to try the tool''' Before we enable this feature in your Wikipedia by the 26th June 2024, we invite members of your community to try MinT for Wiki Readers in your Wikipedia at [[:ks:Special:AutomaticTranslation|Special:AutomaticTranslation]] and give us early feedback in this thread or on [[mw:Talk:MinT#Feedback_from_Wikipedians_about_MinT_for_Wiki_Readers|this talk page]]. Our team would like to know your impression on: * How do you use the feature * Anything we should consider for our plans to enable it? * Your ideas for improving it. We greatly appreciate your time and effort in testing this tool. We eagerly look forward to your valuable feedback and questions, which will be instrumental in the further development of this feature. Thank you. On behalf of the WMF Language team [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 22:26, 13 جوٗن 2024 (UTC) :Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] Thankyou for informing us about this feature. I have tried it and it gives good results in case of city and village related articles. I am hopeful it will help readers to read articles in Kashmiri that are not existing on Ks Wiki. I was hoping if we have a feature of from which readers can review or make slight changes in it and then publish. It will also help this wiki grow and also encourage readers to turn editors. Thankyou. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 07:53, 20 جوٗن 2024 (UTC) ::Thank you @[[رُکُن:511KeV|511KeV]] for your feedback. ::At the moment, the alternative we provide is to write a human-created translation of the contents with Content Translation which also has an entry point from the language selector. This does not cover the use-case of making a small, quick fix when finding an issue in a machine translated content. We have plans to support this with community-provided translations (more details in [[phab:T351748|this ticket]]). In this way, users can make a correction to the specific translation of a sentence, and that correction will be incorporated to a translation memory system, making it immediately available for future machine translation requests. Creating this system is exciting since it can help to improve machine translation quality, but it is not a trivial effort, so it will still take some time. Please, feel free to subscribe to the linked .ticket and share any comments or suggestions Since there are no objections to having this feature, we will go ahead and enable it in this Wikipedia. [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 03:21, 26 جوٗن 2024 (UTC) == <span lang="en" dir="ltr" class="mw-content-ltr">Voting to ratify the Wikimedia Movement Charter is now open – cast your vote</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Ratification vote opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Ratification vote opens}}&language=&action=page&filter= {{int:please-translate}}]'' Hello everyone, The voting to ratify the [[m:Special:MyLanguage/Movement Charter|'''Wikimedia Movement Charter''']] is now open. The Wikimedia Movement Charter is a document to define roles and responsibilities for all the members and entities of the Wikimedia movement, including the creation of a new body – the Global Council – for movement governance. The final version of the Wikimedia Movement Charter is [[m:Special:MyLanguage/Movement Charter|available on Meta in different languages]] and attached [https://commons.wikimedia.org/wiki/File:Wikimedia_Movement_Charter_(June_2024).pdf here in PDF format] for your reading. Voting commenced on SecurePoll on '''June 25, 2024''' at '''00:01 UTC''' and will conclude on '''July 9, 2024''' at '''23:59 UTC'''. Please read more on the [[m:Special:MyLanguage/Movement Charter/Ratification/Voting|voter information and eligibility details]]. After reading the Charter, please [[Special:SecurePoll/vote/398|'''vote here''']] and share this note further. If you have any questions about the ratification vote, please contact the Charter Electoral Commission at [mailto:cec@wikimedia.org '''cec@wikimedia.org''']. On behalf of the CEC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 10:51, 25 جوٗن 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Voting to ratify the Wikimedia Movement Charter is ending soon</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Final reminder|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Final reminder}}&language=&action=page&filter= {{int:please-translate}}]'' Hello everyone, This is a kind reminder that the voting period to ratify the [[m:Special:MyLanguage/Movement Charter|Wikimedia Movement Charter]] will be closed on '''July 9, 2024''', at '''23:59 UTC'''. If you have not voted yet, please vote [[m:Special:SecurePoll/vote/398|on SecurePoll]]. On behalf of the [[m:Special:MyLanguage/Movement_Charter/Ratification/Voting#Electoral_Commission|Charter Electoral Commission]],<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 03:45, 8 جُلَے 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == <span lang="en" dir="ltr" class="mw-content-ltr">U4C Special Election - Call for Candidates</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – call for candidates|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – call for candidates}}&language=&action=page&filter= {{int:please-translate}}]'' Hello all, A special election has been called to fill additional vacancies on the U4C. The call for candidates phase is open from now through July 19, 2024. The [[:m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the [[:foundation:Wikimedia Foundation Universal Code of Conduct|UCoC]]. Community members are invited to submit their applications in the special election for the U4C. For more information and the responsibilities of the U4C, please review the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|U4C Charter]]. In this special election, according to [[Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter#2. Elections and Terms|chapter 2 of the U4C charter]], there are 9 seats available on the U4C: '''four''' community-at-large seats and '''five''' regional seats to ensure the U4C represents the diversity of the movement. [[Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter#5. Glossary|No more than two members of the U4C can be elected from the same home wiki]]. Therefore, candidates must not have English Wikipedia, German Wikipedia, or Italian Wikipedia as their home wiki. Read more and submit your application on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election|Meta-wiki]]. In cooperation with the U4C,<section end="announcement-content" /> </div> -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 00:03, 10 جُلَے 2024 (UTC) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Wikimedia Movement Charter ratification voting results</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Results of the ratification vote|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Results of the ratification vote}}&language=&action=page&filter= {{int:please-translate}}]'' Hello everyone, After carefully tallying both individual and affiliate votes, the [[m:Special:MyLanguage/Movement Charter/Ratification/Voting#Electoral Commission|Charter Electoral Commission]] is pleased to announce the final results of the Wikimedia Movement Charter voting.   As [[m:Special:MyLanguage/Talk:Movement Charter#Thank you for your participation in the Movement Charter ratification vote!|communicated]] by the Charter Electoral Commission, we reached the quorum for both Affiliate and individual votes by the time the vote closed on '''July 9, 23:59 UTC'''. We thank all 2,451 individuals and 129 Affiliate representatives who voted in the ratification process. Your votes and comments are invaluable for the future steps in Movement Strategy. The final results of the [[m:Special:MyLanguage/Movement Charter|Wikimedia Movement Charter]] ratification voting held between 25 June and 9 July 2024 are as follows: '''Individual vote:''' Out of 2,451 individuals who voted as of July 9 23:59 (UTC), 2,446 have been accepted as valid votes. Among these, '''1,710''' voted “yes”; '''623''' voted “no”; and '''113''' selected “–” (neutral). Because the neutral votes don’t count towards the total number of votes cast, 73.30% voted to approve the Charter (1710/2333), while 26.70% voted to reject the Charter (623/2333). '''Affiliates vote:''' Out of 129 Affiliates designated voters who voted as of July 9 23:59 (UTC), 129 votes are confirmed as valid votes. Among these, '''93''' voted “yes”; '''18''' voted “no”; and '''18''' selected “–” (neutral). Because the neutral votes don’t count towards the total number of votes cast, 83.78% voted to approve the Charter (93/111), while 16.22% voted to reject the Charter (18/111). '''Board of Trustees of the Wikimedia Foundation:''' The Wikimedia Foundation Board of Trustees voted '''not to ratify''' the proposed Charter during their special Board meeting on July 8, 2024. The Chair of the Wikimedia Foundation Board of Trustees, Nataliia Tymkiv, [[m:Special:MyLanguage/Wikimedia_Foundation_Board_noticeboard/Board_resolution_and_vote_on_the_proposed_Movement_Charter|shared the result of the vote, the resolution, meeting minutes and proposed next steps]].   With this, the Wikimedia Movement Charter in its current revision is '''not ratified'''. We thank you for your participation in this important moment in our movement’s governance. The Charter Electoral Commission, [[m:User:Abhinav619|Abhinav619]], [[m:User:Borschts|Borschts]], [[m:User:Iwuala Lucy|Iwuala Lucy]], [[m:User:Tochiprecious|Tochiprecious]], [[m:User:Der-Wir-Ing|Der-Wir-Ing]]<section end="announcement-content" /> </div> [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 17:52, 18 جُلَے 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == شےٚ رؠتھ مَنصوٗبہٕ == السلام علیکم، بہٕ چھُس وۄمید کران زِ تُہؠ سٲری چھِو اصل پٲٹھؠ۔ بہٕ چھُس لیکھان کٲشِرؠ وِکیمیڈیَنن ہٕنٛدِس 6 رؠتن ہٕنٛدِس سرگرمی منصوبس مُتلِق. یہِ مَنصوٗبہٕ چھُ میٹا وِکی پؠٹھ دٔستیاب. تُہؠ چھِ داوتھ یوان دِنہٕ زِ تُہؠ دِیو اَتھ نَظر تہِ دِیو راے. اَمیچ لینک چھ. [[:m:Kashmiri Wikimedians User Group/Activity plan/October 2024 - March 2025|یَتھ جاے]]. شُکریا. <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 05:05, 26 جُلَے 2024 (UTC) == <span lang="en" dir="ltr" class="mw-content-ltr">Vote now to fill vacancies of the first U4C</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – voting opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – voting opens}}&language=&action=page&filter= {{int:please-translate}}]'' Dear all, I am writing to you to let you know the voting period for the Universal Code of Conduct Coordinating Committee (U4C) is open now through '''August 10, 2024'''. Read the information on the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election|voting page on Meta-wiki]] to learn more about voting and voter eligibility. The Universal Code of Conduct Coordinating Committee (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community members were invited to submit their applications for the U4C. For more information and the responsibilities of the U4C, please [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]]. Please share this message with members of your community so they can participate as well. In cooperation with the U4C,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 02:47, 27 جُلَے 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Reminder! Vote closing soon to fill vacancies of the first U4C</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – reminder to vote|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – reminder to vote}}&language=&action=page&filter= {{int:please-translate}}]'' Dear all, The voting period for the Universal Code of Conduct Coordinating Committee (U4C) is closing soon. It is open through 10 August 2024. Read the information on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2024_Special_Election#Voting|the voting page on Meta-wiki to learn more about voting and voter eligibility]]. If you are eligible to vote and have not voted in this special election, it is important that you vote now. '''Why should you vote?''' The U4C is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community input into the committee membership is critical to the success of the UCoC. Please share this message with members of your community so they can participate as well. In cooperation with the U4C,<section end="announcement-content" /> </div> -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 15:30, 6 اَگَست 2024 (UTC) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == <span lang="en" dir="ltr">Coming soon: A new sub-referencing feature – try it!</span> == <div lang="en" dir="ltr"> <section begin="Sub-referencing"/> [[File:Sub-referencing reuse visual.png|{{#ifeq:{{#dir}}|ltr|right|left}}|400px]] Hello. For many years, community members have requested an easy way to re-use references with different details. Now, a MediaWiki solution is coming: The new sub-referencing feature will work for wikitext and Visual Editor and will enhance the existing reference system. You can continue to use different ways of referencing, but you will probably encounter sub-references in articles written by other users. More information on [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|the project page]]. '''We want your feedback''' to make sure this feature works well for you: * [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#Test|Please try]] the current state of development on beta wiki and [[m:Talk:WMDE Technical Wishes/Sub-referencing|let us know what you think]]. * [[m:WMDE Technical Wishes/Sub-referencing/Sign-up|Sign up here]] to get updates and/or invites to participate in user research activities. [[m:Special:MyLanguage/Wikimedia Deutschland|Wikimedia Deutschland]]’s [[m:Special:MyLanguage/WMDE Technical Wishes|Technical Wishes]] team is planning to bring this feature to Wikimedia wikis later this year. We will reach out to creators/maintainers of tools and templates related to references beforehand. Please help us spread the message. --[[m:User:Johannes Richter (WMDE)|Johannes Richter (WMDE)]] ([[m:User talk:Johannes Richter (WMDE)|talk]]) 10:36, 19 August 2024 (UTC) <section end="Sub-referencing"/> </div> <!-- Message sent by User:Johannes Richter (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Johannes_Richter_(WMDE)/Sub-referencing/massmessage_list&oldid=27309345 --> == Sign up for the language community meeting on August 30th, 15:00 UTC == Hi all, The next language community meeting is scheduled in a few weeks—on August 30th at 15:00 UTC. If you're interested in joining, you can [https://www.mediawiki.org/wiki/Wikimedia_Language_and_Product_Localization/Community_meetings#30_August_2024 sign up on this wiki page]. This participant-driven meeting will focus on sharing language-specific updates related to various projects, discussing technical issues related to language wikis, and working together to find possible solutions. For example, in the last meeting, topics included the Language Converter, the state of language research, updates on the Incubator conversations, and technical challenges around external links not working with special characters on Bengali sites. Do you have any ideas for topics to share technical updates or discuss challenges? Please add agenda items to the document [https://etherpad.wikimedia.org/p/language-community-meeting-aug-2024 here] and reach out to ssethi(__AT__)wikimedia.org. We look forward to your participation! [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 23:19, 22 اَگَست 2024 (UTC) <!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == <span lang="en" dir="ltr">Announcing the Universal Code of Conduct Coordinating Committee</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> :''[https://lists.wikimedia.org/hyperkitty/list/board-elections@lists.wikimedia.org/thread/OKCCN2CANIH2K7DXJOL2GPVDFWL27R7C/ Original message at wikimedia-l]. [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement - results|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement - results}}&language=&action=page&filter= {{int:please-translate}}]'' Hello all, The scrutineers have finished reviewing the vote and the [[m:Special:MyLanguage/Elections Committee|Elections Committee]] have certified the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Results|results]] for the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election|Universal Code of Conduct Coordinating Committee (U4C) special election]]. I am pleased to announce the following individual as regional members of the U4C, who will fulfill a term until 15 June 2026: * North America (USA and Canada) ** Ajraddatz The following seats were not filled during this special election: * Latin America and Caribbean * Central and East Europe (CEE) * Sub-Saharan Africa * South Asia * The four remaining Community-At-Large seats Thank you again to everyone who participated in this process and much appreciation to the candidates for your leadership and dedication to the Wikimedia movement and community. Over the next few weeks, the U4C will begin meeting and planning the 2024-25 year in supporting the implementation and review of the UCoC and Enforcement Guidelines. You can follow their work on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Meta-Wiki]]. On behalf of the U4C and the Elections Committee,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 14:06, 2 سَتَمبَر 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == <span lang="en" dir="ltr">Have your say: Vote for the 2024 Board of Trustees!</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Hello all, The voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|2024 Board of Trustees election]] is now open. There are twelve (12) candidates running for four (4) seats on the Board. Learn more about the candidates by [[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Candidates|reading their statements]] and their [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2024/Questions_for_candidates|answers to community questions]]. When you are ready, go to the [[Special:SecurePoll/vote/400|SecurePoll]] voting page to vote. '''The vote is open from September 3rd at 00:00 UTC to September 17th at 23:59 UTC'''. To check your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2024/Voter_eligibility_guidelines|voter eligibility page]]. Best regards, The Elections Committee and Board Selection Working Group<section end="announcement-content" /> </div> [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 12:14, 3 سَتَمبَر 2024 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == <span lang="en" dir="ltr">Your wiki will be in read-only soon</span> == <div lang="en" dir="ltr"> <section begin="server-switch"/><div class="plainlinks"> [[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}] The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. All traffic will switch on '''{{#time:j xg|2024-09-25|en}}'''. The switch will start at '''[https://zonestamp.toolforge.org/{{#time:U|2024-09-25T15:00|en}} {{#time:H:i e|2024-09-25T15:00}}]'''. Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future. A banner will be displayed on all wikis 30 minutes before this operation happens. This banner will remain visible until the end of the operation. '''You will be able to read, but not edit, all wikis for a short period of time.''' *You will not be able to edit for up to an hour on {{#time:l j xg Y|2024-09-25|en}}. *If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case. ''Other effects'': *Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped. * We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards. * [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes. This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. '''Please share this information with your community.'''</div><section end="server-switch"/> </div> [[User:Trizek_(WMF)|Trizek_(WMF)]], 09:37, 20 سَتَمبَر 2024 (UTC) <!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27248326 --> == 'Wikidata item' link is moving. Find out where... == <div lang="en" dir="ltr" class="mw-content-ltr"><i>Apologies for cross-posting in English. Please consider translating this message.</i>{{tracked|T66315}} Hello everyone, a small change will soon be coming to the user-interface of your Wikimedia project. The [[d:Q16222597|Wikidata item]] [[w:|sitelink]] currently found under the <span style="color: #54595d;"><u>''General''</u></span> section of the '''Tools''' sidebar menu will move into the <span style="color: #54595d;"><u>''In Other Projects''</u></span> section. We would like the Wiki communities feedback so please let us know or ask questions on the [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Discussion page]] before we enable the change which can take place October 4 2024, circa 15:00 UTC+2. More information can be found on [[m:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|the project page]].<br><br>We welcome your feedback and questions.<br> [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 18:56, 27 سَتَمبَر 2024 (UTC) </div> <!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=27524260 --> == Invitation to Participate in Wiki Loves Ramadan Community Engagement Survey == Dear all, Apologies for writing in English. Please help to translate in your language. We are excited to announce the upcoming [[m:Wiki Loves Ramadan|Wiki Loves Ramadan]] event, a global initiative aimed at celebrating Ramadan by enriching Wikipedia and its sister projects with content related to this significant time of year. As we plan to organize this event globally, your insights and experiences are crucial in shaping the best possible participation experience for the community. To ensure that Wiki Loves Ramadan is engaging, inclusive, and impactful, we kindly invite you to participate in our community engagement survey. Your feedback will help us understand the needs of the community, set the event's focus, and guide our strategies for organizing this global event. Survey link: https://forms.gle/f66MuzjcPpwzVymu5 Please take a few minutes to share your thoughts. Your input will make a difference! Thank you for being a part of our journey to make Wiki Loves Ramadan a success. Warm regards, User:ZI Jony 03:20, 6 اَکتوٗبَر 2024 (UTC) Wiki Loves Ramadan Organizing Team <!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27510935 --> == <span lang="en" dir="ltr">Preliminary results of the 2024 Wikimedia Foundation Board of Trustees elections</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Hello all, Thank you to everyone who participated in the [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|2024 Wikimedia Foundation Board of Trustees election]]. Close to 6000 community members from more than 180 wiki projects have voted. The following four candidates were the most voted: # [[User:Kritzolina|Christel Steigenberger]] # [[User:Nadzik|Maciej Artur Nadzikiewicz]] # [[User:Victoria|Victoria Doronina]] # [[User:Laurentius|Lorenzo Losa]] While these candidates have been ranked through the vote, they still need to be appointed to the Board of Trustees. They need to pass a successful background check and meet the qualifications outlined in the Bylaws. New trustees will be appointed at the next Board meeting in December 2024. [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2024/Results|Learn more about the results on Meta-Wiki.]] Best regards, The Elections Committee and Board Selection Working Group <section end="announcement-content" /> </div> [[User:MPossoupe_(WMF)|MPossoupe_(WMF)]] 08:25, 14 اَکتوٗبَر 2024 (UTC) <!-- Message sent by User:MPossoupe (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Each year, typically from October through December, several of the movement’s committees seek new volunteers. Read more about the committees on their Meta-wiki pages: * [[m:Special:MyLanguage/Affiliations_Committee|Affiliations Committee (AffCom)]] * [[m:Special:MyLanguage/Ombuds_commission|Ombuds commission (OC)]] * [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]] Applications for the committees open on 16 October 2024. Applications for the Affiliations Committee close on 18 November 2024, and applications for the Ombuds commission and the Case Review Committee close on 2 December 2024. Learn how to apply by [[m:Special:MyLanguage/Wikimedia_Foundation/Legal/Committee_appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email [mailto:cst@wikimedia.org cst@wikimedia.org] with any questions you may have. For the Committee Support team, <section end="announcement-content" /> </div> -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 23:08, 16 اَکتوٗبَر 2024 (UTC) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27601062 --> == Announcing Indic Wikimedia Hackathon Bhubaneswar 2024 & scholarship applications == Dear Wikimedians, We hope you are well. We are thrilled to announce the upcoming [[:metawiki:Indic Wikimedia Hackathon Bhubaneswar 2024|Indic Wikimedia Hackathon Bhubaneswar 2024]], hosted by the [[:metawiki:Indic MediaWiki Developers User Group|Indic MediaWiki Developers UG]] (aka Indic-TechCom) in collaboration with the [[:metawiki:Odia Wikimedians User Group|Odia Wikimedians UG]]. The event will take place in Bhubaneswar during 20-22 December 2024. Wikimedia hackathons are spaces for developers, designers, content editors, and other community stakeholders to collaborate on building technical solutions that help improve the experience of contributors and consumers of Wikimedia projects. The event is intended for: * Technical contributors active in the Wikimedia technical ecosystem, which includes developers, maintainers (admins/interface admins), translators, designers, researchers, documentation writers etc. * Content contributors having in-depth understanding of technical issues in their home Wikimedia projects like Wikipedia, Wikisource, Wiktionary, etc. * Contributors to any other FOSS community or have participated in Wikimedia events in the past, and would like to get started with contributing to Wikimedia technical spaces. We encourage you to follow the essential details & updates on Meta-Wiki regarding this event. Event Meta-Wiki page: https://meta.wikimedia.org/wiki/Indic_Wikimedia_Hackathon_Bhubaneswar_2024 Scholarship application form: [https://docs.google.com/forms/d/e/1FAIpQLSf07lWyPJc6bxOCKl_i2vuMBdWa9EAzMRUej4x1ii3jFjTIaQ/viewform Click here to apply ] ''(Scholarships are available to assist with your attendance, covering travel, accommodation, food, and related expenses.)'' Please read the application guidance on the Meta-Wiki page before applying. The scholarship application is open until the end of the day 2 November 2024 (Saturday). If you have any questions, concerns or need any support with the application, please start a discussion on the event talk page or reach out to us contact@indicmediawikidev.org via email. Best, [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 09:35, 19 اَکتوٗبَر 2024 (UTC) <!-- Message sent by User:KCVelaga@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/South_Asia_Village_Pumps&oldid=25720607 --> == 'Wikidata item' link is moving, finally. == Hello everyone, I previously wrote on the 27th September to advise that the ''Wikidata item'' sitelink will change places in the sidebar menu, moving from the '''General''' section into the '''In Other Projects''' section. The scheduled rollout date of 04.10.2024 was delayed due to a necessary request for Mobile/MinervaNeue skin. I am happy to inform that the global rollout can now proceed and will occur later today, 22.10.2024 at 15:00 UTC-2. [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Please let us know]] if you notice any problems or bugs after this change. There should be no need for null-edits or purging cache for the changes to occur. Kind regards, -[[m:User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] 11:28, 22 اَکتوٗبَر 2024 (UTC) <!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=27535421 --> == پروگرام خٲطرٕ ایونٹ منیجر ضروٗرت == کٲشِرؠ وِکیٖمیٖڈیا صٲرِف جَمٲژ چھِ پننہِ پروگرام خٲطرٕ ایونٹ منیجر ضروٗرت۔ اگر تۄہہِ دِلچسپی چھِو تیٚلہِ ہیٚکِو تُہؠ درخواست دِتھ. اَتھ مَنٛز ییٚہِ رؠتہ پَتہٕ رؠتہٕ 5 ساس رۄپیہ وظیفہ طور دِنہٕ۔ تُہؠ ہیٚکِو میٹا وکی پؠٹھ کِردارس مُتعلِق مٔزیٖد تفصیٖل لٔبِتھ. [[:meta:Kashmiri_Wikimedians_User_Group/Vacancies#Event_Manager_Vacancy|یَتھ صَفس پؠٹھ.]] <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 13:44, 23 اَکتوٗبَر 2024 (UTC) == Final Reminder: Join us in Making Wiki Loves Ramadan Success == Dear all, We’re thrilled to announce the Wiki Loves Ramadan event, a global initiative to celebrate Ramadan by enhancing Wikipedia and its sister projects with valuable content related to this special time of year. As we organize this event globally, we need your valuable input to make it a memorable experience for the community. Last Call to Participate in Our Survey: To ensure that Wiki Loves Ramadan is inclusive and impactful, we kindly request you to complete our community engagement survey. Your feedback will shape the event’s focus and guide our organizing strategies to better meet community needs. * Survey Link: [https://docs.google.com/forms/d/e/1FAIpQLSffN4prPtR5DRSq9nH-t1z8hG3jZFBbySrv32YoxV8KbTwxig/viewform?usp=sf_link Complete the Survey] * Deadline: November 10, 2024 Please take a few minutes to share your thoughts. Your input will truly make a difference! '''Volunteer Opportunity''': Join the Wiki Loves Ramadan Team! We’re seeking dedicated volunteers for key team roles essential to the success of this initiative. If you’re interested in volunteer roles, we invite you to apply. * Application Link: [https://docs.google.com/forms/d/e/1FAIpQLSfXiox_eEDH4yJ0gxVBgtL7jPe41TINAWYtpNp1JHSk8zhdgw/viewform?usp=sf_link Apply Here] * Application Deadline: October 31, 2024 Explore Open Positions: For a detailed list of roles and their responsibilities, please refer to the position descriptions here: [https://docs.google.com/document/d/1oy0_tilC6kow5GGf6cEuFvdFpekcubCqJlaxkxh-jT4/ Position Descriptions] Thank you for being part of this journey. We look forward to working together to make Wiki Loves Ramadan a success! Warm regards,<br> The Wiki Loves Ramadan Organizing Team 05:11, 29 اَکتوٗبَر 2024 (UTC) <!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27568454 --> == Proposal to enable the "Contribute" entry point in Kashmiri Wikipedia == {{Int:Hello}} Kashmiri Wikipedians, Apologies as this message is not in your language. {{Int:please-translate}}. The [[mediawikiwiki:Wikimedia_Language_and_Product_Localization|WMF Language and Product Localization]] team proposes enabling an entry point called "Contribute" to your Wikipedia. The [[:bn:বিশেষ:Contribute|Contribute]] entry point is based on collaborative work with other product teams in the Wikimedia Foundation on [[mediawikiwiki:Edit_Discovery|Edit discovery]], which validated the entry point as a persistent and constant path that contributors took to discover ways to contribute content in Wikipedia. Therefore, enabling this entry point in your Wikipedia will help contributors quickly discover available tools and immediately click to start using them. This entry point is designed to be a central point for discovering contribution tools in Kashmiri Wikipedia. '''Who can access it''' Once it is enabled in your Wikipedia, newcomers can access the entry point automatically by just logging into their account, click on the User drop-down menu and choose the "Contribute" icon, which takes you to another menu where you will find a self-guided description of what you can do to contribute content, as shown in the image below. An option to "view contributions" is also available to access the list of your contributions. [[فَیِل:Mobile_Contribute_Page.png|link=https://bar.wikipedia.org/wiki/Datei:Mobile_Contribute_Page.png|Mobile Contribute Page]] [[فَیِل:Mobile_contribute_menu_(detailed).png|link=https://bar.wikipedia.org/wiki/Datei:Mobile_contribute_menu_(detailed).png|Mobile contribute menu (detailed)]] For experienced contributors, the Contribute icon is not automatically shown in their User drop-down menu. They will still see the "Contributions" option unless they change it to the "Contribute" manually. This feature is available in four Wikipedia (Albanian, Malayalam, Mongolian, and Tagalog). We have gotten valuable feedback that helped us improve its discoverability. Now, it is ready to be enabled in other Wikis. One major improvement was to [[phab:T369041|make the entry point optional for experienced contributors]] who still want to have the "Contributions" entry point as default.           We plan to enable it '''on mobile''' for Wikis, where the Section translation tool is enabled. In this way, we will provide a main entry point to the mobile translation dashboard, and the exposure can still be limited by targeting only the mobile platform for now. If there are no objections to having the entry point for mobile users from your community, we will enable it by 20th November 2024. We welcome your feedback and questions in this thread on our proposal to enable it here. Suppose there are no objections, we will deploy the "Contribute" entry point in your Wikipedia. We look forward to your response soon. Thank you! On behalf of the WMF Language and Product Localization team. [[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] ([[رُکُن کَتھ:UOzurumba (WMF)|کَتھ صَفہٕ]]) 01:39, 7 نَوَمبَر 2024 (UTC) :Dear @[[رُکُن:UOzurumba (WMF)|UOzurumba (WMF)]] Thankyou for sharing this news. I personally support this feature. I have also prvided a summary for other users in Kashmiri below. :(Summary in Kashmiri) :وکیمیڈیا فاؤنڈیشنٕچ لینگویج اینڈ پروڈکٹ لوکلائزیشن ٹیم چھِ کٲشِرؠ وکیپیڈیا خٲطرٕ اکھ "کنٹریبیوٹ" انٹری پوائنٹ تجویز کران تاکہِ شراکتٕک اوزار زِیٛادٕ دسترس بناونہٕ۔ یہِ نوٚو فیچر چھُ مُختٔلِف پروڈکٹ ٹیمَن ہٕنٛدِ اشتراک سۭتؠ تیار کرنہٕ آمُت تہٕ امیُک تجربہٕ چھُ باقی وکیپیڈیاہَن (البانی، ملیالم، منگولین تہٕ تاگالوگ) پٮ۪ٹھ کرنہٕ آمُت، ییٚتہِ أمِس شراکت دارَن آسٲنی سان حصہٕ نِنٕکؠ طریقہٕ ژھارنَس منٛز مدد کرنہٕ خٲطرٕ مثبت راے مِلے۔ "کنٹریبیوٹ" انٹری پویِنٹ گژھِ پٲنؠ پانے نَوین والین باپت ظٲہِر، یُس تِمن پننِس یوزر مینو پیٹھ شراکتٕک آپشنن ذریعہٕ رہنمائی کران چُھ۔ تجرُبہٕ کار یوزر روزن واقف "کنٹریبیوشن" اوپشن برقرار مگر اگر تِم ژارنْہ یِن تِم ہیکن نْوِس "کنٹریبیوٹ" فیچرس کُن تبدیل کْرتھ۔ موبایلس پیٹھ، یہ فیچر فراہم کرِ فوری ایسیس ٹرانسلیشن ڈیش بورڈس تام وکی باپت یتھ منز سیکشن ٹرانسلیشن ٹول اینیبلْڈ آسِہ۔ اگر نہٕ کانٛہہ اعتِراض آسہِ، یہِ فیچر یِیہِ 20 نومبر 2024 ہَس تام موبایِل صارفینَن خٲطرٕ کٲشِرِ وِکیٖپیٖڈیاہَس پٮ۪ٹھ لانچ کرنہٕ۔ فیڈ بیک تہٕ سوالاتن چُھ خوش آمدید۔ :Thankyou :) <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 14:05, 7 نَوَمبَر 2024 (UTC) == Announcing Wikifile-transfer v2, and second community call == Dear Wikimedia Community, We are excited to announce the release of Wikifile-transfer v2, an enhanced tool to streamline media transfers across Wikimedia projects. Wikifile-transfer supports users in moving non-free images across wiki projects. This tool is helpful for contributors managing media across multiple language wikis. '''You can learn more about it here:''' https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/Wikifile-transfer/v2 '''You can try the new version here:''' https://wikifile-transfer.toolforge.org/#/ We invite you to join our second community call on '''November 10, 2024, at 18:00 IST (6:00 PM)'''. This meeting is an opportunity to discuss the new features, share feedback, and connect with us. Please add your name at https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/Wikifile-transfer/v2#Community_call. Since this is a major new release, some bugs may still exist. We encourage you to report any issues you encounter to help us improve the tool further. We're looking forward to your feedback as we continue refining WikiFile-Transfer to meet the needs of our community. Regards -[[رُکُن:ParasharSarthak|ParasharSarthak]] ([[رُکُن کَتھ:ParasharSarthak|کَتھ صَفہٕ]]) == وکیپیڈیاہُک تعارُف پروگرام == أسؠ چھِ یہِ اعلان کران خوشی زِ کٲشِرؠ وکیمیڈینز یوزر گروپ کَرِ "وکیپیڈیاہُک تعارُف" ناوٕ سٟتؠ اکھ آن لائن سیشنچ میزبٲنی۔ یہِ سیشن چھُ حصہٕ نِنہٕ والؠن وکیپیڈیاہَس سٟتؠ تعارُف کرنہٕ خٲطرٕ تَخلیق کرنہٕ آمُت، یَتھ منٛز ترمیم تہٕ موثر طریقہٕ سٟتؠ تعاون کرنہٕ خٲطرٕ ضروٗری موضوعات شٲمِ آسَن۔ <big>پروگرام تفصیل:</big> *تٲریخ: 17 نومبر 2024 *وَقٕت: شامَس 7:00 بجے – 8:00 شام ہندوستان وَقٕت مُطٲبِق *پلیٹ فارم: گوگل میٹ ([https://meet.google.com/uvi-uoew-nqp یَتھ لِنک پؠٹھ]) یہِ سیشن چھُ تٔمِس شخصہٕ سٕنٛدِ خٲطرٕ بہتٔریٖن یُس وِکیٖپیٖڈیاہٕچ بُنیٲدی چیز ہیٚچھُن یژھان چھُ، یَتھ منٛز کھاتہٕ بناوُن، وِکیٖپیٖڈیاہٕک ہِدایَت سمجھُن، تہٕ پلیٹ فارمَس پٮ۪ٹھ نیویگیٹ کرُن شٲمِل چھُ۔ چاہے تُہؠ وِکیٖپیٖڈیاہَس منٛز نٔوؠ ٲسِو یا پنٕنؠ تفہیم گٔنؠ کرُن یژھان، أسؠ چھِ تُہنٛدِ شرکتُک خیر مقدم کران۔ مہربٲنی کٔرِتھ کٔرِو آزاد زِ اگر تۄہہِ کانٛہہ سوال چھُو۔ أسؠ چھِو تۄہہِ تَتہِ وُچھنُک منتظر! شُکریا۔ <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 16:29, 12 نَوَمبَر 2024 (UTC) == Sign up for the language community meeting on November 29th, 16:00 UTC == Hello everyone, The next language community meeting is coming up next week, on November 29th, at 16:00 UTC (Zonestamp! For your timezone <https://zonestamp.toolforge.org/1732896000>). If you're interested in joining, you can sign up on this wiki page: <https://www.mediawiki.org/wiki/Wikimedia_Language_and_Product_Localization/Community_meetings#29_November_2024>. This participant-driven meeting will be organized by the Wikimedia Foundation’s Language Product Localization team and the Language Diversity Hub. There will be presentations on topics like developing language keyboards, the creation of the Moore Wikipedia, and the language support track at Wiki Indaba. We will also have members from the Wayuunaiki community joining us to share their experiences with the Incubator and as a new community within our movement. This meeting will have a Spanish interpretation. Looking forward to seeing you at the language community meeting! Cheers, [[User:SSethi (WMF)|Srishti]] 19:54, 21 نَوَمبَر 2024 (UTC) <!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27746256 --> == [[:m:Expressions of Interest to host Wikimania 2027 in India: Initial conversation|Expressions of Interest to host Wikimania 2027 in India: Initial conversation]] == <div lang="en" dir="ltr"> ''{{int:please-translate}}'' Dear Wikimedians, We are excited to '''Initiate the discussions about India’s potential bid to host [[:m:Wikimania 2027|Wikimania 2027]]''', the annual international conference of the Wikimedia movement. This is a call to the community to express interest and share ideas for organizing this flagship event in India. Having a consortium of a good number of country groups, recognised affiliates, thematic groups or regional leaders primarily from Asia for this purpose will ultimately strengthen our proposal from the region. This is the first step in a collaborative journey. We invite all interested community members to contribute to the discussion, share your thoughts, and help shape the vision for hosting Wikimania 2027 in India. Your participation will ensure this effort reflects the strength and diversity of the Indian Wikimedia community. Please join the conversation on [[:m:Expressions of Interest to host Wikimania 2027 in India: Initial conversation#Invitation to Join the Conversation|Meta page]] and help make this vision a reality! Regards, <br> [[:m:Wikimedians of Kerala|Wikimedians of Kerala User Group]] and [[:m:Odia Wikimedians User Group|Odia Wikimedians User Group]] <br> This message was sent with [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) by [[m:User:Gnoeee|Gnoeee]] ([[m:User_talk:Gnoeee|talk]]) 15:14, 4 دَسَمبَر 2024 (UTC) </div> <!-- Message sent by User:Gnoeee@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Indic_VPs&oldid=27906962 --> == تَرجَمہ مَواد تہٕ مَضمون تَخلیٖق ؤرکشاپ == کٲشِرؠ وِکیمیڈینز، اسہِ چھِ یہِ اعلان کران خوشی زِ کٲشِرۍ وکیمیڈینز یوزر گروپ کَرِ "کنٹینٹ ٹرانسلیشن ٹول اینڈ آرٹیکل کرییشن ورکشاپ" ناوٕ سۭتۍ اکھ آن لائن سیشن ہٕنٛز میزبٲنی۔ یہِ سیشن چھُ شرکاء وکیپیڈیا کِس کنٹینٹ ٹرانسلیشن ٹوٗلَس سۭتۍ تعارُف کرنہٕ تہٕ معیٲری مضموٗن مؤثر طریقہٕ سۭتۍ بناونس منٛز تِہنٛز رہنُمٲیی کرنہٕ خٲطرٕ ڈیزائن کرنہٕ آمُت۔ سیشن تفصیل: *تٲریخ: 29 دسمبر 2024 (آتھوار) *ٹایِم: شامَس 7:00 بجے – 8:00 PM IST *پلیٹ فارم: گوگل میٹ (https://meet.google.com/gkq-rhgo-chu) یہِ ورکشاپ چھِ تٔمِس شخصہٕ سٕنٛدِ خٲطرٕ بہتٔریٖن یُس کنٹینٹ ٹرانسلیشن ٹوٗلُک استعمال کٔرِتھ مضامیٖنَن ہُنٛد ترجمہٕ کٲشِرۍ منٛز کرُن ہیٚچھنَس منٛز دلچسپی تھاوان چھُ، سۭتۍ سۭتۍ چھِ مضموٗنٕچ تخلیقٕچ بُنیٲدی تہٕ وکیپیڈیا کٮ۪ن ہدایاتَن منٛز مہارت حٲصِل چاہے تُہۍ شُروٗع کَرن وٲلۍ ٲسِو یا پنٕنۍ ترمیم کرنٕچ ہُنر بڑاوٕنۍ یژھان، أسۍ چھِ تُہنٛدِ شرکتُک خیر مقدم کران۔ اگر تۄہہِ کانٛہہ سوال چھُو، تیٚلہِ کٔرِو وٲتِتھ آزاد ۔ أسۍ چھِو تۄہہِ تَتہِ وُچھنُک منتظر! <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 03:57, 27 دَسَمبَر 2024 (UTC) =="اردو اور کشمیری ویکیپیڈیاؤں کے درمیان علمی تعاون کا منصوبہ"== محترم {{Reply to|آیات محراج}} صاحب ، محترم {{Reply to|511KeV}} صاحب اور دیگر فعال صارفین کی خدمت میں آداب عرض ہے۔ السلام علیکم، میں آپ سے ایک نہایت اہم اور دلچسپ علمی منصوبے کے بارے میں بات کرنا چاہتا ہوں۔ میری خواہش ہے کہ کشمیری ویکیپیڈیا اور اردو ویکیپیڈیا کے درمیان ایک دوستانہ اور مشترکہ منصوبہ ترتیب دیا جائے، جس کا مقصد دونوں زبانوں اور ثقافتوں کو قریب لانا ہے۔ اس منصوبے کے تحت: 1. ثقافتی اور علمی مواد کی تخلیق: کشمیری ویکیپیڈیا پر اردو زبان، ثقافت، تاریخ، اور اردو بولنے والے علاقوں سے متعلق معیاری مضامین لکھے جائیں گے۔ اور اس کے برعکس اردو ویکیپیڈیا پر کشمیری سے متعلق۔ الغرض ایک دوسرے سے متعلق سب کچھ۔ 2. معیاری مواد کی بہتری: موجودہ مضامین کو اپڈیٹ اور بہتر بنایا جائے گا تاکہ اردو ویکیپیڈیا اور کشمیری ویکیپیڈیا کا معیار بلند ہو۔ 3. مشترکہ کوشش اور ہم آہنگی: یہ منصوبہ دونوں ویکیپیڈیاؤں کے درمیان دوستانہ تعلقات کو مضبوط کرنے اور علم و فہم کے تبادلے کو فروغ دینے کے لیے ترتیب دیا جا رہا ہے۔ آپ کشمیری ویکیپیڈیا کے ایک فعال اور قابلِ احترام صارفین ہیں، اس لیے میں چاہتا ہوں کہ یہ تجویز سب سے پہلے آپ کے سامنے پیش کروں۔ اگر آپ اور کشمیری ویکیپیڈیا کی برادری اس منصوبے پر رضا مندی کا اظہار کریں، تو یہ ہمارے لیے ایک شاندار موقع ہوگا۔ آپ کی قیادت اور رہنمائی اس منصوبے کو کامیاب بنانے میں کلیدی کردار ادا کر سکتی ہے۔ اگر آپ اس منصوبے میں دلچسپی رکھتے ہیں تو براہ کرم اپنی قیمتی رائے اور تجاویز سے آگاہ کریں۔ میں آپ کی طرف سے مثبت جواب کا منتظر رہوں گا تاکہ ہم اس منصوبے کو عملی جامہ پہنا سکیں۔ والسلام، [[رُکُن:Veritasphere|Veritasphere]] ([[رُکُن کَتھ:Veritasphere|کَتھ صَفہٕ]]) 07:03, 11 جَنؤری 2025 (UTC) == Open Community Call - [[:m:Expressions of Interest to host Wikimania 2027 in India: Initial conversation|Expressions of Interest to host Wikimania 2027 in India]] == <div lang="en" dir="ltr"> ''{{int:please-translate}}'' Dear Wikimedians, Happy 2025.. 😊 As you must have seen, members from Wikimedians of Kerala and Odia Wikimedia User Groups initiated preliminary discussions around submitting an Expression of Interest (EoI) to have Wikimania 2027 in India. You can find out more on the [[:m:Expressions of Interest to host Wikimania 2027 in India: Initial conversation|Meta Page]]. Our aim is to seek input and assess the overall community sentiment and thoughts from the Indian community before we proceed further with the steps involved in submitting the formal EOI. As part of the same, we are hosting an '''open community call regarding India's Expression of Interest (EOI) to host Wikimania 2027'''. This is an opportunity to gather your valuable feedback, opinions, and suggestions to shape a strong and inclusive proposal. * 📅 Date: Wednesday, January 15th 2025 * ⏰ Time: 7pm-8pm IST * 📍 Platform: https://meet.google.com/sns-qebp-hck Your participation is key to ensuring the EOI reflects the collective aspirations and potential of the vibrant South Asian community. Let’s join together to make this a milestone event for the Wikimedia movement in South Asia. We look forward to your presence! <br> Warm regards, <br> [[:m:Wikimedians of Kerala|Wikimedians of Kerala]] and [[:m:Odia Wikimedians User Group|Odia Wikimedians]] User Group's <br> This message was sent with [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) by [[m:User:Gnoeee|Gnoeee]] ([[m:User_talk:Gnoeee|talk]]) at 05:55, 14 جَنؤری 2025 (UTC) </div> <!-- Message sent by User:Gnoeee@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Indic_VPs&oldid=28100038 --> == Launching! Join Us for Wiki Loves Ramadan 2025! == Dear All, We’re happy to announce the launch of [[m:Wiki Loves Ramadan 2025|Wiki Loves Ramadan 2025]], an annual international campaign dedicated to celebrating and preserving Islamic cultures and history through the power of Wikipedia. As an active contributor to the Local Wikipedia, you are specially invited to participate in the launch. This year’s campaign will be launched for you to join us write, edit, and improve articles that showcase the richness and diversity of Islamic traditions, history, and culture. * Topic: [[m:Event:Wiki Loves Ramadan 2025 Campaign Launch|Wiki Loves Ramadan 2025 Campaign Launch]] * When: Jan 19, 2025 * Time: 16:00 Universal Time UTC and runs throughout Ramadan (starting February 25, 2025). * Join Zoom Meeting: https://us02web.zoom.us/j/88420056597?pwd=NdrpqIhrwAVPeWB8FNb258n7qngqqo.1 * Zoom meeting hosted by [[m:Wikimedia Bangladesh|Wikimedia Bangladesh]] To get started, visit the [[m:Wiki Loves Ramadan 2025|campaign page]] for details, resources, and guidelines: Wiki Loves Ramadan 2025. Add [[m:Wiki Loves Ramadan 2025/Participant|your community here]], and organized Wiki Loves Ramadan 2025 in your local language. Whether you’re a first-time editor or an experienced Wikipedian, your contributions matter. Together, we can ensure Islamic cultures and traditions are well-represented and accessible to all. Feel free to invite your community and friends too. Kindly reach out if you have any questions or need support as you prepare to participate. Let’s make Wiki Loves Ramadan 2025 a success! For the [[m:Wiki Loves Ramadan 2025/Team|International Team]] 12:08, 16 جَنؤری 2025 (UTC) <!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=27568454 --> == وکیمیڈیا کامنز ورکشاپ == سَلام، کٲشِرۍ وِکیمیڈینز یوزر گروپ چھُ وکیمیڈیا کامنزَس پٮ۪ٹھ اکھ ورکشاپ منعقد کران۔ تۄہہِ چھِو مہربٲنی کٔرِتھ آز شامَس 7:00 بجہِ اسہِ سۭتہِ شٲمِل گژھنٕچہِ دعوت دِنہٕ اَسہِ چھِ خۄش زِ وِکِمیٖڈیا کامنزَس پٮ۪ٹھ اَکھ اِنتِظام عافی چُھ پَنُن مہمان مُقرر کَران۔ تِم کرَن وکیمیڈیا کامنز مُتعلِق بصیرت شیئر، تہٕ یہِ پلیٹ فارم مؤثر طریقہٕ سۭتۍ استعمال کرنہٕ خٲطرٕ کَرِ اسہِ رہنُمٲیی۔ ''ورکشاپ تفصیل'''': *موضوع: وکیمیڈیا کامنز ورکشاپ - کشمیری ویکیمیڈینز *تٲریخ: آتھوار، 19 جنوری *ٹایِم: 7:00 – 8:00 PM (ایشیا/کولکتہ) *گوگل میٖٹ لِنک: [ویڈیو کالس منٛز شٲمِل گژھِو](https://meet.google.com/ojo-czuw-tie) أسۍ چھِ تُہنٛزِ شرکتُک منتظر! گرم گریفریڈ، کشمیری ویکیمیڈینس یوزر گروپ <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 08:33, 19 جَنؤری 2025 (UTC) == Universal Code of Conduct annual review: provide your comments on the UCoC and Enforcement Guidelines == <div lang="en" dir="ltr" class="mw-content-ltr"> My apologies for writing in English. {{Int:Please-translate}}. I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 3 February 2025. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]]. The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 01:11, 24 جَنؤری 2025 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27746256 --> == Feminism and Folklore 2025 starts soon == <div style="border:8px maroon ridge;padding:6px;> [[File:Feminism and Folklore 2025 logo.svg|centre|550px|frameless]] ::<div lang="en" dir="ltr" class="mw-content-ltr"> <center>''{{int:please-translate}}''</center> Dear Wiki Community, You are humbly invited to organize the '''[[:m:Feminism and Folklore 2025|Feminism and Folklore 2025]]''' writing competition from February 1, 2025, to March 31, 2025 on your local Wikipedia. This year, Feminism and Folklore will focus on feminism, women's issues, and gender-focused topics for the project, with a [[:c:Commons:Wiki Loves Folklore 2025|Wiki Loves Folklore]] gender gap focus and a folk culture theme on Wikipedia. You can help Wikipedia's coverage of folklore from your area by writing or improving articles about things like folk festivals, folk dances, folk music, women and queer folklore figures, folk game athletes, women in mythology, women warriors in folklore, witches and witch hunting, fairy tales, and more. Users can help create new articles, expand or translate from a generated list of suggested articles. Organisers are requested to work on the following action items to sign up their communities for the project: # Create a page for the contest on the local wiki. # Set up a campaign on '''CampWiz''' tool. # Create the local list and mention the timeline and local and international prizes. # Request local admins for site notice. # Link the local page and the CampWiz link on the [[:m:Feminism and Folklore 2025/Project Page|meta project page]]. This year, the Wiki Loves Folklore Tech Team has introduced two new tools to enhance support for the campaign. These tools include the '''Article List Generator by Topic''' and '''CampWiz'''. The Article List Generator by Topic enables users to identify articles on the English Wikipedia that are not present in their native language Wikipedia. Users can customize their selection criteria, and the tool will present a table showcasing the missing articles along with suggested titles. Additionally, users have the option to download the list in both CSV and wikitable formats. Notably, the CampWiz tool will be employed for the project for the first time, empowering users to effectively host the project with a jury. Both tools are now available for use in the campaign. [https://tools.wikilovesfolklore.org/ '''Click here to access these tools'''] Learn more about the contest and prizes on our [[:m:Feminism and Folklore 2025|project page]]. Feel free to contact us on our [[:m:Talk:Feminism and Folklore 2025/Project Page|meta talk page]] or by email us if you need any assistance. We look forward to your immense coordination. Thank you and Best wishes, '''[[:m:Feminism and Folklore 2025|Feminism and Folklore 2025 International Team]]''' ::::Stay connected [[File:B&W Facebook icon.png|link=https://www.facebook.com/feminismandfolklore/|30x30px]]&nbsp; [[File:B&W Twitter icon.png|link=https://twitter.com/wikifolklore|30x30px]] </div></div> --[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 02:36, 29 جَنؤری 2025 (UTC) == Wiki Loves Folklore is back! == <div lang="en" dir="ltr" class="mw-content-ltr"> {{int:please-translate}} [[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]] Dear Wiki Community, You are humbly invited to participate in the '''[[:c:Commons:Wiki Loves Folklore 2025|Wiki Loves Folklore 2025]]''' an international media contest organized on Wikimedia Commons to document folklore and intangible cultural heritage from different regions, including, folk creative activities and many more. It is held every year from the '''1st till the 31st''' of March. You can help in enriching the folklore documentation on Commons from your region by taking photos, audios, videos, and [https://commons.wikimedia.org/w/index.php?title=Special:UploadWizard&campaign=wlf_2025 submitting] them in this commons contest. You can also [[:c:Commons:Wiki Loves Folklore 2025/Organize|organize a local contest]] in your country and support us in translating the [[:c:Commons:Wiki Loves Folklore 2025/Translations|project pages]] to help us spread the word in your native language. Feel free to contact us on our [[:c:Commons talk:Wiki Loves Folklore 2025|project Talk page]] if you need any assistance. '''Kind regards,''' '''Wiki loves Folklore International Team''' --[[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 02:36, 29 جَنؤری 2025 (UTC) </div> <!-- Message sent by User:Tiven2240@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=26503019 --> == Reminder: first part of the annual UCoC review closes soon == <div lang="en" dir="ltr" class="mw-content-ltr"> My apologies for writing in English. {{Int:Please-translate}}. This is a reminder that the first phase of the annual review period for the Universal Code of Conduct and Enforcement Guidelines will be closing soon. You can make suggestions for changes through [[d:Q614092|the end of day]], 3 February 2025. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]]. After review of the feedback, proposals for updated text will be published on Meta in March for another round of community review. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 00:48, 3 فَرؤری 2025 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28198931 --> == کٲشِرؠ وِکی میڈینز میٹ اپ == ڈیر وکیمیڈینز، اسہِ چھِ یہِ اعلان کران خوشی زِ کٲشِرؠ وِکی میڈینز میٹ اپ چھِ اننت ناگَس منٛز گژھَن وول 16 فروری 2025 ہَس منٛز۔ یہِ اجتماع کرِ سٲتھی وکیمیڈینَن سۭتۍ بَحَژ، اشتراک تہٕ مشغولیت ہُنٛد موقعہٕ۔ تۄہہِ سارِوٕے چھِ اَتھ تقریٖبہِ منٛز دعوت دِنہٕ آمٕژ۔ اگر تۄہہِ حصہٕ نِنَس منٛز دِلچسپی چھِو، مہربٲنی کٔرِتھ بٔرِو رجسٹریشن فارم 14 فروری 2025 برٛونٛہہ بۄنہٕ کَنہِ دِنہٕ آمُت لِنکُک استعمال کٔرِتھ: [https://docs.google.com/forms/d/e/1FAIpQLSeTi7V34DjP1sgw-bAXRhcL100Frfwj9z3NYdr32rq4NJ8N5w/viewform یَتھ جاے] أسۍ چھِ تُہنٛزِ شرکتُک منتظر۔ اگر تۄہہِ کانٛہہ سوال آسہِ، تیٚلہِ کٔرِو وٲتِتھ آزاد ۔ استعار، <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 16:35, 7 فَرؤری 2025 (UTC) == <span lang="en" dir="ltr"> Upcoming Language Community Meeting (Feb 28th, 14:00 UTC) and Newsletter</span> == <div lang="en" dir="ltr"> <section begin="message"/> Hello everyone! [[File:WP20Symbols WIKI INCUBATOR.svg|right|frameless|150x150px|alt=An image symbolising multiple languages]] We’re excited to announce that the next '''Language Community Meeting''' is happening soon, '''February 28th at 14:00 UTC'''! If you’d like to join, simply sign up on the '''[[mw:Wikimedia_Language_and_Product_Localization/Community_meetings#28_February_2025|wiki page]]'''. This is a participant-driven meeting where we share updates on language-related projects, discuss technical challenges in language wikis, and collaborate on solutions. In our last meeting, we covered topics like developing language keyboards, creating the Moore Wikipedia, and updates from the language support track at Wiki Indaba. '''Got a topic to share?''' Whether it’s a technical update from your project, a challenge you need help with, or a request for interpretation support, we’d love to hear from you! Feel free to '''reply to this message''' or add agenda items to the document '''[[etherpad:p/language-community-meeting-feb-2025|here]]'''. Also, we wanted to highlight that the sixth edition of the Language & Internationalization newsletter (January 2025) is available here: [[:mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2025/January|Wikimedia Language and Product Localization/Newsletter/2025/January]]. This newsletter provides updates from the October–December 2024 quarter on new feature development, improvements in various language-related technical projects and support efforts, details about community meetings, and ideas for contributing to projects. To stay updated, you can subscribe to the newsletter on its wiki page: [[:mw:Wikimedia Language and Product Localization/Newsletter|Wikimedia Language and Product Localization/Newsletter]]. We look forward to your ideas and participation at the language community meeting, see you there! <section end="message"/> </div> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 08:29, 22 فَرؤری 2025 (UTC) <!-- Message sent by User:SSethi (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28217779 --> == Universal Code of Conduct annual review: proposed changes are available for comment == <div lang="en" dir="ltr" class="mw-content-ltr"> My apologies for writing in English. {{Int:Please-translate}}. I am writing to you to let you know that [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|proposed changes]] to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct (UCoC) Enforcement Guidelines]] and [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|Universal Code of Conduct Coordinating Committee (U4C) Charter]] are open for review. '''[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|You can provide feedback on suggested changes]]''' through the [[d:Q614092|end of day]] on Tuesday, 18 March 2025. This is the second step in the annual review process, the final step will be community voting on the proposed changes. [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find relevant links about the process on the UCoC annual review page on Meta]]. The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] 18:51, 7 مارٕچ 2025 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28307738 --> == An improved dashboard for the Content Translation tool == <div lang="en" dir="ltr"> {{Int:hello}} Wikipedians, Apologies as this message is not in your language, {{Int:please-translate}}. The [[mediawikiwiki:Special:MyLanguage/Wikimedia_Language_and_Product_Localization|Language and Product Localization team]] has improved the [https://test.wikipedia.org/w/index.php?title=Special:ContentTranslation&filter-type=automatic&filter-id=previous-edits&active-list=suggestions&from=en&to=es Content Translation dashboard] to create a consistent experience for all contributors using mobile and desktop devices. The improved translation dashboard allows all logged-in users of the tool to enjoy a consistent experience regardless of their type of device. With a harmonized experience, logged-in desktop users now have access to the capabilities shown in the image below. [[file:Content_Translation_new-dashboard.png|alt=|center|thumb|576x576px|Notice that in this screenshot, the new dashboard allows: Users to adjust suggestions with the "For you" and "...More" buttons to select general topics or community-created collections (like the example of Climate topic).  Also, users can use translation to create new articles (as before) and expand existing articles section by section. You can see how suggestions are provided in the new dashboard  in two groups ("Create new pages" and "Expand with new sections")-one for each activity.]] [[File:Content_Translation_dashboard_on_desktop.png|alt=|center|thumb|577x577px|In the current dashboard, you will notice that you can't adjust suggestions to select topics or community-created collections. Also, you can't expand on existing articles by translating new sections.]] We will implement [[mw:Special:MyLanguage/Content translation#Improved translation experience|this improvement]] on your wiki '''on Monday, March 17th, 2025''' and remove the current dashboard '''by May 2025'''. Please reach out with any questions concerning the dashboard in this thread. Thank you! On behalf of the Language and Product Localization team. </div> <bdi lang="en" dir="ltr">[[User:UOzurumba (WMF)|UOzurumba (WMF)]]</bdi> 02:56, 13 مارٕچ 2025 (UTC) <!-- Message sent by User:UOzurumba (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:UOzurumba_(WMF)/sandbox_CX_Unified_dashboard_announcement_list_1&oldid=28382282 --> == <span lang="en" dir="ltr">Your wiki will be in read-only soon</span> == <div lang="en" dir="ltr"> <section begin="server-switch"/><div class="plainlinks"> [[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}] The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. All traffic will switch on '''{{#time:j xg|2025-03-19|en}}'''. The switch will start at '''[https://zonestamp.toolforge.org/{{#time:U|2025-03-19T14:00|en}} {{#time:H:i e|2025-03-19T14:00}}]'''. Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future. A banner will be displayed on all wikis 30 minutes before this operation happens. This banner will remain visible until the end of the operation. '''You will be able to read, but not edit, all wikis for a short period of time.''' *You will not be able to edit for up to an hour on {{#time:l j xg Y|2025-03-19|en}}. *If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case. ''Other effects'': *Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped. * We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards. * [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes. This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. '''Please share this information with your community.'''</div><section end="server-switch"/> </div> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 23:14, 14 مارٕچ 2025 (UTC) <!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=28307742 --> == تَرجمہ وکی پؠٹھ سیشن == سَلام، أسۍ چھِ تۄہہِ کٲشِرؠ وکیمیڈینس یوزر گروپ کہِ طرفہٕ Translatewiki.net تہٕ وکیپیڈیا اِنٹرفیس کٲشِرِ زبانہِ منٛز ترجمہٕ کرنس منٛز امکہِ کردارس پٮ۪ٹھ منعقد کرنہٕ آمتِس یِنہٕ وٲلِس آن لائن سیشن منٛز دعاوت دِوان۔ '''سیشن تفصیلات''': *موضوع: کٲشِرۍ تٲریخس منٛز وکیپیڈیا انٹرفیسُک Translatewiki.net تہٕ ترجمہٕ کرنُک تعارف: *23 مارچ 2025 وقت: 5:00 بجے (آئی ایس ٹی) *پلیٹ فارم/لنک: https://meet.google.com/ceo-rpos-wjs یتھ سیشن منٛز کرو أسۍ کشمیری وکیپیڈیا خٲطرٕ انٹرفیس ترجمٕچ اہمیت: میڈیا ویکی پیغامات ترجمہ کرنہٕ خٲطرٕ Translatewiki.net کِتھ پٲٹھؠ استعمال کرُن ترجمہٕ عملہٕ ہُنٛد عملی مظٲہرٕ کھلہٕ بحث تہٕ سوال و جواب سیشن آسہِ تمن خٲطرٕ اکھ بہترین موقعہٕ۔ کٲشِرِ وِکیٖپیٖڈیا چہِ لوکلائزیشن منٛز دِلچسپی تھاونس تہٕ یہِ سٲنِس برادٔری خٲطرٕ زِیٛادٕ رسٲیی بناونس منٛز دِلچسپی تھاوان۔ أسؠ چھِ تمام رُکنن اتھ اَہَم پَہلَس منٛز حِصہٕ نِنہٕ تہٕ حصہٕ نِنہٕ خٲطرٕ حوصلہٕ مہربٲنی کٔرِتھ کٔرِو یَتھ ای میلَس جواب دِتھ پنٕنؠ حٲضری تصدیٖق۔ <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] 15:27, 20 مارٕچ 2025 (UTC) == Final proposed modifications to the Universal Code of Conduct Enforcement Guidelines and U4C Charter now posted == <div lang="en" dir="ltr" class="mw-content-ltr"> The proposed modifications to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct Enforcement Guidelines]] and the U4C Charter [[m:Universal_Code_of_Conduct/Annual_review/2025/Proposed_Changes|are now on Meta-wiki for community notice]] in advance of the voting period. This final draft was developed from the previous two rounds of community review. Community members will be able to vote on these modifications starting on 17 April 2025. The vote will close on 1 May 2025, and results will be announced no later than 12 May 2025. The U4C election period, starting with a call for candidates, will open immediately following the announcement of the review results. More information will be posted on [[m:Special:MyLanguage//Universal_Code_of_Conduct/Coordinating_Committee/Election|the wiki page for the election]] soon. Please be advised that this process will require more messages to be sent here over the next two months. The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]]. Please share this message with members of your community so they can participate as well. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 02:04, 4 اَپریل 2025 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 --> == Ukraine's Cultural Diplomacy Month 2025: Invitation == <div lang="en" dir="ltr"> [[File:UCDM 2025 general.png|180px|right]] {{int:please-translate}} Hello, dear Wikipedians!<br/> [[:m:Special:MyLanguage/Wikimedia Ukraine|Wikimedia Ukraine]], in cooperation with the [[:en:Ministry of Foreign Affairs of Ukraine|MFA of Ukraine]] and [[:en:Ukrainian Institute|Ukrainian Institute]], has launched the fifth edition of writing challenge "'''[[:m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2025|Ukraine's Cultural Diplomacy Month]]'''", which lasts from '''14th April''' until '''16th May 2025'''. The campaign is dedicated to famous Ukrainian artists of cinema, music, literature, architecture, design, and cultural phenomena of Ukraine that are now part of world heritage. We accept contributions in every language! The most active contesters will receive prizes. If you are interested in coordinating long-term community engagement for the campaign and becoming a local ambassador, we would love to hear from you! Please let us know your interest. <br/> We invite you to take part and help us improve the coverage of Ukrainian culture on Wikipedia in your language! Also, we plan to set up a [[:m:CentralNotice/Request/Ukraine's Cultural Diplomacy Month 2025|banner]] to notify users of the possibility to participate in such a challenge! [[:m:User:OlesiaLukaniuk (WMUA)|OlesiaLukaniuk (WMUA)]] ([[:m:User talk:OlesiaLukaniuk (WMUA)|talk]]) </div> 16:11, 16 اَپریل 2025 (UTC) <!-- Message sent by User:Hide on Rosé@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:OlesiaLukaniuk_(WMUA)/list_of_wikis&oldid=28552112 --> == Vote now on the revised UCoC Enforcement Guidelines and U4C Charter == <div lang="en" dir="ltr" class="mw-content-ltr"> The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines ("UCoC EG") and the UCoC's Coordinating Committee Charter is open now through the end of 1 May (UTC) ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/2025/Voter_information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki. The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review of the EG and Charter was planned and implemented by the U4C. Further information will be provided in the coming months about the review of the UCoC itself. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]]. Please share this message with members of your community so they can participate as well. In cooperation with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 00:34, 17 اَپریل 2025 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 --> == Sub-referencing: User testing == <div lang="en" dir="ltr"> [[File:Sub-referencing reuse visual.png|400px|right]] <small>''Apologies for writing in English, please help us by providing a translation below''</small> Hi I’m Johannes from [[:m:Wikimedia Deutschland|Wikimedia Deutschland]]'s [[:m:WMDE Technical Wishes|Technical Wishes team]]. We are making great strides with the new [[:m:WMDE Technical Wishes/Sub-referencing|sub-referencing feature]] and we’d love to invite you to take part in two activities to help us move this work further: #'''Try it out and share your feedback''' #:[[:m:WMDE Technical Wishes/Sub-referencing# Test the prototype|Please try]] the updated ''wikitext'' feature [https://en.wikipedia.beta.wmflabs.org/wiki/Sub-referencing on the beta wiki] and let us know what you think, either [[:m:Talk:WMDE Technical Wishes/Sub-referencing|on our talk page]] or by [https://greatquestion.co/wikimediadeutschland/talktotechwish booking a call] with our UX researcher. #'''Get a sneak peak and help shape the ''Visual Editor'' user designs''' #:Help us test the new design prototypes by participating in user sessions – [https://greatquestion.co/wikimediadeutschland/gxk0taud/apply sign up here to receive an invite]. We're especially hoping to speak with people from underrepresented and diverse groups. If that's you, please consider signing up! No prior or extensive editing experience is required. User sessions will start ''May 14th''. We plan to bring this feature to Wikimedia wikis later this year. We’ll reach out to wikis for piloting in time for deployments. Creators and maintainers of reference-related tools and templates will be contacted beforehand as well. Thank you very much for your support and encouragement so far in helping bring this feature to life! </div> <bdi lang="en" dir="ltr">[[User:Johannes Richter (WMDE)|Johannes Richter (WMDE)]] ([[User talk:Johannes Richter (WMDE)|talk]])</bdi> 15:03, 28 اَپریل 2025 (UTC) <!-- Message sent by User:Johannes Richter (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Johannes_Richter_(WMDE)/Sub-referencing/massmessage_list&oldid=28628657 --> == <span lang="en" dir="ltr">Vote on proposed modifications to the UCoC Enforcement Guidelines and U4C Charter</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines and U4C Charter closes on 1 May 2025 at 23:59 UTC ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025/Voter information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]]. Please share this message with members of your community in your language, as appropriate, so they can participate as well. In cooperation with the U4C -- <section end="announcement-content" /> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 03:41, 29 اَپریل 2025 (UTC)</div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 --> == We will be enabling the new Charts extension on your wiki soon! == ''(Apologies for posting in English)'' Hi all! We have good news to share regarding the ongoing problem with graphs and charts affecting all wikis that use them. As you probably know, the [[:mw:Special:MyLanguage/Extension:Graph|old Graph extension]] was disabled in 2023 [[listarchive:list/wikitech-l@lists.wikimedia.org/thread/EWL4AGBEZEDMNNFTM4FRD4MHOU3CVESO/|due to security reasons]]. We’ve worked in these two years to find a solution that could replace the old extension, and provide a safer and better solution to users who wanted to showcase graphs and charts in their articles. We therefore developed the [[:mw:Special:MyLanguage/Extension:Chart|Charts extension]], which will be replacing the old Graph extension and potentially also the [[:mw:Extension:EasyTimeline|EasyTimeline extension]]. After successfully deploying the extension on Italian, Swedish, and Hebrew Wikipedia, as well as on MediaWiki.org, as part of a pilot phase, we are now happy to announce that we are moving forward with the next phase of deployment, which will also include your wiki. The deployment will happen in batches, and will start from '''May 6'''. Please, consult [[:mw:Special:MyLanguage/Extension:Chart/Project#Deployment Timeline|our page on MediaWiki.org]] to discover when the new Charts extension will be deployed on your wiki. You can also [[:mw:Special:MyLanguage/Extension:Chart|consult the documentation]] about the extension on MediaWiki.org. If you have questions, need clarifications, or just want to express your opinion about it, please refer to the [[:mw:Special:MyLanguage/Extension_talk:Chart/Project|project’s talk page on Mediawiki.org]], or ping me directly under this thread. If you encounter issues using Charts once it gets enabled on your wiki, please report it on the [[:mw:Extension_talk:Chart/Project|talk page]] or at [[phab:tag/charts|Phabricator]]. Thank you in advance! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:07, 6 مٔیی 2025 (UTC) <!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=28663781 --> == <span lang="en" dir="ltr">Call for Candidates for the Universal Code of Conduct Coordinating Committee (U4C)</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> The results of voting on the Universal Code of Conduct Enforcement Guidelines and Universal Code of Conduct Coordinating Committee (U4C) Charter is [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025#Results|available on Meta-wiki]]. You may now [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025/Candidates|submit your candidacy to serve on the U4C]] through 29 May 2025 at 12:00 UTC. Information about [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025|eligibility, process, and the timeline are on Meta-wiki]]. Voting on candidates will open on 1 June 2025 and run for two weeks, closing on 15 June 2025 at 12:00 UTC. If you have any questions, you can ask on [[m:Talk:Universal Code of Conduct/Coordinating Committee/Election/2025|the discussion page for the election]]. -- in cooperation with the U4C, </div><section end="announcement-content" /> </div> <bdi lang="en" dir="ltr">[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|کَتھ]])</bdi> 22:07, 15 مٔیی 2025 (UTC) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 --> == RfC ongoing regarding Abstract Wikipedia (and your project) == <div lang="en" dir="ltr" class="mw-content-ltr"> ''(Apologies for posting in English, if this is not your first language)'' Hello all! We opened a discussion on Meta about a very delicate issue for the development of [[:m:Special:MyLanguage/Abstract Wikipedia|Abstract Wikipedia]]: where to store the abstract content that will be developed through functions from Wikifunctions and data from Wikidata. Since some of the hypothesis involve your project, we wanted to hear your thoughts too. We want to make the decision process clear: we do not yet know which option we want to use, which is why we are consulting here. We will take the arguments from the Wikimedia communities into account, and we want to consult with the different communities and hear arguments that will help us with the decision. The decision will be made and communicated after the consultation period by the Foundation. You can read the various hypothesis and have your say at [[:m:Abstract Wikipedia/Location of Abstract Content|Abstract Wikipedia/Location of Abstract Content]]. Thank you in advance! -- [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|<span class="signature-talk">{{int:Talkpagelinktext}}</span>]]) 15:26, 22 مٔیی 2025 (UTC) </div> <!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=28768453 --> == <span lang="en" dir="ltr">Wikimedia Foundation Board of Trustees 2025 Selection & Call for Questions</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Selection announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Selection announcement}}&language=&action=page&filter= {{int:please-translate}}]'' Dear all, This year, the term of 2 (two) Community- and Affiliate-selected Trustees on the Wikimedia Foundation Board of Trustees will come to an end [1]. The Board invites the whole movement to participate in this year’s selection process and vote to fill those seats. The Elections Committee will oversee this process with support from Foundation staff [2]. The Governance Committee, composed of trustees who are not candidates in the 2025 community-and-affiliate-selected trustee selection process (Raju Narisetti, Shani Evenstein Sigalov, Lorenzo Losa, Kathy Collins, Victoria Doronina and Esra’a Al Shafei) [3], is tasked with providing Board oversight for the 2025 trustee selection process and for keeping the Board informed. More details on the roles of the Elections Committee, Board, and staff are here [4]. Here are the key planned dates: * May 22 – June 5: Announcement (this communication) and call for questions period [6] * June 17 – July 1, 2025: Call for candidates * July 2025: If needed, affiliates vote to shortlist candidates if more than 10 apply [5] * August 2025: Campaign period * August – September 2025: Two-week community voting period * October – November 2025: Background check of selected candidates * Board’s Meeting in December 2025: New trustees seated Learn more about the 2025 selection process - including the detailed timeline, the candidacy process, the campaign rules, and the voter eligibility criteria - on this Meta-wiki page [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025|[link]]]. '''Call for Questions''' In each selection process, the community has the opportunity to submit questions for the Board of Trustees candidates to answer. The Election Committee selects questions from the list developed by the community for the candidates to answer. Candidates must answer all the required questions in the application in order to be eligible; otherwise their application will be disqualified. This year, the Election Committee will select 5 questions for the candidates to answer. The selected questions may be a combination of what’s been submitted from the community, if they’re alike or related. [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025/Questions_for_candidates|[link]]] '''Election Volunteers''' Another way to be involved with the 2025 selection process is to be an Election Volunteer. Election Volunteers are a bridge between the Elections Committee and their respective community. They help ensure their community is represented and mobilize them to vote. Learn more about the program and how to join on this Meta-wiki page [[m:Wikimedia_Foundation_elections/2025/Election_volunteers|[link].]] Thank you! [1] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2022/Results [2] https://foundation.wikimedia.org/wiki/Committee:Elections_Committee_Charter [3] https://foundation.wikimedia.org/wiki/Resolution:Committee_Membership,_December_2024 [4] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections_committee/Roles [5] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/FAQ [6] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/Questions_for_candidates Best regards, Victoria Doronina Board Liaison to the Elections Committee Governance Committee<section end="announcement-content" /> </div> [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 03:07, 28 مٔیی 2025 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 --> == <span lang="en" dir="ltr"> Upcoming Deployment of the CampaignEvents Extension</span> == <div lang="en" dir="ltr"> <section begin="message"/> Hello everyone, ''(Apologies for posting in English if English is not your first language. Please help translate to your language.)'' The Campaigns Product Team is planning a global deployment of the '''[[:mw:Help:Extension:CampaignEvents|CampaignEvents extension]]''' to all Wikipedias, including this wiki, during the '''week of June 23rd'''. This extension is designed to help organizers plan and manage events, WikiProjects, and other on-wiki collaborations - and to make these efforts more discoverable. The three main features of this extension are: * '''[[:m:Event_Center/Registration|Event Registration]]''': A simple way to sign up for events on the wiki. * '''[[:m:CampaignEvents/Collaboration_list|Collaboration List]]''': A global list of events and a local list of WikiProjects, accessible at '''[[:m:Special:AllEvents|Special:AllEvents]]'''. * '''[[:m:Campaigns/Foundation_Product_Team/Invitation_list|Invitation Lists]]''': A tool to help organizers find editors who might want to join, based on their past contributions. '''Note''': The extension comes with a new user right called '''"Event Organizer"''', which will be managed by administrators on this wiki. Organizer tools like Event Registration and Invitation Lists will only work if someone is granted this right. The Collaboration List is available to everyone immediately after deployment. The extension is already live on several wikis, including '''Meta, Wikidata, English Wikipedia''', and more ( [[m:CampaignEvents/Deployment_status#Current_Deployment_Status_for_CampaignEvents_extension| See the full deployment list]]) If you have any questions, concerns, or feedback, please feel free to share them on the [[m:Talk:CampaignEvents| extension talkpage]]. We’d love to hear from you before the rollout. Thank you! <section end="message"/> </div> <bdi lang="en" dir="ltr">[[User:Udehb-WMF|Udehb-WMF]] ([[User talk:Udehb-WMF|کَتھ]]) 16:47, 29 مٔیی 2025 (UTC)</bdi> <!-- Message sent by User:Udehb-WMF@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Udehb-WMF/sandbox/deployment_audience&oldid=28803829 --> == 📣 Announcing the South Asia Newsletter – Get Involved! 🌏 == <div lang="en" dir="ltr"> ''{{int:please-translate}}'' Hello Wikimedians of South Asia! 👋 We’re excited to launch the planning phase for the '''South Asia Newsletter''' – a bi-monthly, community-driven publication that brings news, updates, and original stories from across our vibrant region, to one page! We’re looking for passionate contributors to join us in shaping this initiative: * Editors/Reviewers – Craft and curate impactful content * Technical Contributors – Build and maintain templates, modules, and other magic on meta. * Community Representatives – Represent your Wikimedia Affiliate or community If you're excited to contribute and help build a strong regional voice, we’d love to have you on board! 👉 Express your interest though [https://docs.google.com/forms/d/e/1FAIpQLSfhk4NIe3YwbX88SG5hJzcF3GjEeh5B1dMgKE3JGSFZ1vtrZw/viewform this link]. Please share this with your community members.. Let’s build this together! 💬 This message was sent with [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) by [[m:User:Gnoeee|Gnoeee]] ([[m:User_talk:Gnoeee|talk]]) at 15:42, 6 جوٗن 2025 (UTC) </div> <!-- Message sent by User:Gnoeee@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/South_Asia_Village_Pumps&oldid=25720607 --> == Vote now in the 2025 U4C Election == <div lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{Int:Please-translate}} Eligible voters are asked to participate in the 2025 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2025|2025 Election information page]]. The vote closes on 17 June 2025 at [https://zonestamp.toolforge.org/1750161600 12:00 UTC]. Please vote if your account is eligible. Results will be available by 1 July 2025. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 23:00, 13 June 2025 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28848819 --> == <span lang="en" dir="ltr">Wikimedia Foundation Board of Trustees 2025 - Call for Candidates</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Call for candidates|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Call for candidates}}&language=&action=page&filter= {{int:please-translate}}]</div> Hello all, The [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|call for candidates for the 2025 Wikimedia Foundation Board of Trustees selection is now open]] from June 17, 2025 – July 2, 2025 at 11:59 UTC [1]. The Board of Trustees oversees the Wikimedia Foundation's work, and each Trustee serves a three-year term [2]. This is a volunteer position. This year, the Wikimedia community will vote in late August through September 2025 to fill two (2) seats on the Foundation Board. Could you – or someone you know – be a good fit to join the Wikimedia Foundation's Board of Trustees? [3] Learn more about what it takes to stand for these leadership positions and how to submit your candidacy on [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidate application|this Meta-wiki page]] or encourage someone else to run in this year's election. Best regards, Abhishek Suryawanshi<br /> Chair of the Elections Committee On behalf of the Elections Committee and Governance Committee [1] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Call_for_candidates [2] https://foundation.wikimedia.org/wiki/Legal:Bylaws#(B)_Term. [3] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Resources_for_candidates<section end="announcement-content" /> </div> [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 17:44, 17 June 2025 (UTC) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28866958 --> == <span lang="en" dir="ltr">Sister Projects Task Force reviews Wikispore and Wikinews</span> == <div lang="en" dir="ltr"> <section begin="message"/> Dear Wikimedia Community, The [[m:Wikimedia Foundation Community Affairs Committee|Community Affairs Committee (CAC)]] of the Wikimedia Foundation Board of Trustees assigned [[m:Wikimedia Foundation Community Affairs Committee/Sister Projects Task Force|the Sister Projects Task Force (SPTF)]] to update and implement a procedure for assessing the lifecycle of Sister Projects – wiki [[m:Wikimedia projects|projects supported by Wikimedia Foundation (WMF)]]. A vision of relevant, accessible, and impactful free knowledge has always guided the Wikimedia Movement. As the ecosystem of Wikimedia projects continues to evolve, it is crucial that we periodically review existing projects to ensure they still align with our goals and community capacity. Despite their noble intent, some projects may no longer effectively serve their original purpose. '''Reviewing such projects is not about giving up – it's about responsible stewardship of shared resources'''. Volunteer time, staff support, infrastructure, and community attention are finite, and the non-technical costs tend to grow significantly as our ecosystem has entered a different age of the internet than the one we were founded in. Supporting inactive projects or projects that didn't meet our ambitions can unintentionally divert these resources from areas with more potential impact. Moreover, maintaining projects that no longer reflect the quality and reliability of the Wikimedia name stands for, involves a reputational risk. An abandoned or less reliable project affects trust in the Wikimedia movement. Lastly, '''failing to sunset or reimagine projects that are no longer working can make it much harder to start new ones'''. When the community feels bound to every past decision – no matter how outdated – we risk stagnation. A healthy ecosystem must allow for evolution, adaptation, and, when necessary, letting go. If we create the expectation that every project must exist indefinitely, we limit our ability to experiment and innovate. Because of this, SPTF reviewed two requests concerning the lifecycle of the Sister Projects to work through and demonstrate the review process. We chose Wikispore as a case study for a possible new Sister Project opening and Wikinews as a case study for a review of an existing project. Preliminary findings were discussed with the CAC, and a community consultation on both proposals was recommended. === Wikispore === The [[m:Wikispore|application to consider Wikispore]] was submitted in 2019. SPTF decided to review this request in more depth because rather than being concentrated on a specific topic, as most of the proposals for the new Sister Projects are, Wikispore has the potential to nurture multiple start-up Sister Projects. After careful consideration, the SPTF has decided '''not to recommend''' Wikispore as a Wikimedia Sister Project. Considering the current activity level, the current arrangement allows '''better flexibility''' and experimentation while WMF provides core infrastructural support. We acknowledge the initiative's potential and seek community input on what would constitute a sufficient level of activity and engagement to reconsider its status in the future. As part of the process, we shared the decision with the Wikispore community and invited one of its leaders, Pharos, to an SPTF meeting. Currently, we especially invite feedback on measurable criteria indicating the project's readiness, such as contributor numbers, content volume, and sustained community support. This would clarify the criteria sufficient for opening a new Sister Project, including possible future Wikispore re-application. However, the numbers will always be a guide because any number can be gamed. === Wikinews === We chose to review Wikinews among existing Sister Projects because it is the one for which we have observed the highest level of concern in multiple ways. Since the SPTF was convened in 2023, its members have asked for the community's opinions during conferences and community calls about Sister Projects that did not fulfil their promise in the Wikimedia movement.[https://commons.wikimedia.org/wiki/File:WCNA_2024._Sister_Projects_-_opening%3F_closing%3F_merging%3F_splitting%3F.pdf <nowiki>[1]</nowiki>][https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Community_Affairs_Committee/Sister_Projects_Task_Force#Wikimania_2023_session_%22Sister_Projects:_past,_present_and_the_glorious_future%22 <nowiki>[2]</nowiki>][https://meta.wikimedia.org/wiki/WikiConvention_francophone/2024/Programme/Quelle_proc%C3%A9dure_pour_ouvrir_ou_fermer_un_projet_%3F <nowiki>[3]</nowiki>] Wikinews was the leading candidate for an evaluation because people from multiple language communities proposed it. Additionally, by most measures, it is the least active Sister Project, with the greatest drop in activity over the years. While the Language Committee routinely opens and closes language versions of the Sister Projects in small languages, there has never been a valid proposal to close Wikipedia in major languages or any project in English. This is not true for Wikinews, where there was a proposal to close English Wikinews, which gained some traction but did not result in any action[https://meta.wikimedia.org/wiki/Proposals_for_closing_projects/Closure_of_English_Wikinews <nowiki>[4]</nowiki>][https://meta.wikimedia.org/wiki/WikiConvention_francophone/2024/Programme/Quelle_proc%C3%A9dure_pour_ouvrir_ou_fermer_un_projet_%3F <nowiki>[5]</nowiki>, see section 5] as well as a draft proposal to close all languages of Wikinews[https://meta.wikimedia.org/wiki/Talk:Proposals_for_closing_projects/Archive_2#Close_Wikinews_completely,_all_languages? <nowiki>[6]</nowiki>]. [[:c:File:Sister Projects Taskforce Wikinews review 2024.pdf|Initial metrics]] compiled by WMF staff also support the community's concerns about Wikinews. Based on this report, SPTF recommends a community reevaluation of Wikinews. We conclude that its current structure and activity levels are the lowest among the existing sister projects. SPTF also recommends pausing the opening of new language editions while the consultation runs. SPTF brings this analysis to a discussion and welcomes discussions of alternative outcomes, including potential restructuring efforts or integration with other Wikimedia initiatives. '''Options''' mentioned so far (which might be applied to just low-activity languages or all languages) include but are not limited to: *Restructure how Wikinews works and is linked to other current events efforts on the projects, *Merge the content of Wikinews into the relevant language Wikipedias, possibly in a new namespace, *Merge content into compatibly licensed external projects, *Archive Wikinews projects. Your insights and perspectives are invaluable in shaping the future of these projects. We encourage all interested community members to share their thoughts on the relevant discussion pages or through other designated feedback channels. === Feedback and next steps === We'd be grateful if you want to take part in a conversation on the future of these projects and the review process. We are setting up two different project pages: [[m:Public consultation about Wikispore|Public consultation about Wikispore]] and [[m:Public consultation about Wikinews|Public consultation about Wikinews]]. Please participate between 27 June 2025 and 27 July 2025, after which we will summarize the discussion to move forward. You can write in your own language. I will also host a community conversation 16th July Wednesday 11.00 UTC and 17th July Thursday 17.00 UTC (call links to follow shortly) and will be around at Wikimania for more discussions. <section end="message"/> </div> -- [[User:Victoria|Victoria]] on behalf of the Sister Project Task Force, 20:56, 27 جوٗن 2025 (UTC) <!-- Message sent by User:Johan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Sister_project_MassMassage_on_behalf_of_Victoria/Target_list&oldid=28911188 --> == Wikidata Item and Property labels soon displayed in Wiki Watchlist/Recent Changes == ''(Apologies for posting in English, you can help by translating into your language)'' Hello everyone, the [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Resolve_Labels|Wikidata For Wikimedia Projects]] team is excited to announce an upcoming change in how Wikidata edit changelogs are displayed in your [[Special:Watchlist|Watchlists]] and [[Special:RecentChanges|Recent Changes]] lists. If an edit is made on Wikidata that affects a page in another Wikimedia Project, the changelog will contain some information about the nature of the edit. This can include a QID (or Q-number), a PID (or P-number) and a value (which can be text, numbers, dates, or also QID or PID’s). Confused by these terms? See the [[d:Special:MyLanguage/Wikidata:Glossary|Wikidata:Glossary]] for further explanations. The upcoming change is scheduled for '''17.07.2025''', between '''1300 - 1500 UTC'''. The change will display the label (item name) alongside any QID or PIDs, as seen in the image below: [[File:Apr10 edit summary on Wikidata.png|An edit sum entry on Wikidata, labels display alongside their P- and Q-no.'s]] These changes will only be visible if you have Wikidata edits enabled in your User Preferences for Watchlists and Recent Changes, or have the active filter ‘Wikidata edits’ checkbox toggled on, directly on the Watchlist and Recent Changes pages. Your bot and gadget may be affected! There are thousands of bots, gadgets and user-scripts and whilst we have researched potential effects to many of them, we cannot guarantee there won’t be some that are broken or affected by this change. Further information and context about this change, including how your bot may be affected can be found on this [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Resolve_Labels|project task page]]. We welcome your questions and feedback, please write to us on this dedicated [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Resolve_Labels|Talk page]]. Thank you, - [[m:User:Danny_Benjafield_(WMDE)|Danny Benjafield (WMDE)]] on behalf of the Wikidata For Wikimedia Projects Team. [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 12:45, 14 جُلَے 2025 (UTC) <!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=28981877 --> == <span lang="en" dir="ltr">Temporary accounts will be rolled out soon</span> == <div lang="en" dir="ltr"> <section begin="body"/> Hello, we are the Wikimedia Foundation [[mw:Special:MyLanguage/Product Safety and Integrity|Product Safety and Integrity]] team. We would like to announce that '''we plan to enable [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] for this wiki in the week of September 1'''. Temporary accounts are successfully live on 30 wikis, including many large ones like German, Japanese, and French. The change they bring is especially relevant to logged-out editors, who this feature is designed to protect. But it is also relevant to community members like mentors, patrollers, and admins – anyone who reverts edits, blocks users, or otherwise interacts with logged-out editors as part of keeping the wikis safe and accurate. '''Why we are building temporary accounts''' Our wikis should be safer to edit by default for logged-out editors. Temporary accounts allow people to continue editing the wikis without creating an account, while avoiding publicly tying their edits to their IP address. We believe this is in the best interest of our logged-out editors, who make valuable contributions to the wikis and who may later create accounts and grow our community of editors, admins, and other roles. Even though the wikis do warn logged-out editors that their IP address will be associated with their edit, many people may not understand what an IP address is, or that it could be used to connect them to other information about them in ways they might not expect. Additionally, our moderation software and tools rely too heavily on network origin (IP addresses) to identify users and patterns of activity, especially as IP addresses themselves are becoming less stable as identifiers. Temporary accounts allow for more precise interactions with logged-out editors, including more precise blocks, and can help limit how often we unintentionally end up blocking good-faith users who use the same IP addresses as bad-faith users. '''How temporary accounts work''' [[File:Temporary account banner and empty talk page.png|thumb]] Any time a logged-out user publishes an edit on this wiki, a cookie will be set in this user's browser, and a temporary account tied with this cookie will be automatically created. This account's name will follow the pattern: <code dir=ltr>~2025-12345-67</code> (a tilde, current year, a number). On pages like Recent Changes or page history, this name will be displayed. The cookie will expire 90 days after its creation. As long as it exists, all edits made from this device will be attributed to this temporary account. It will be the same account even if the IP address changes, unless the user clears their cookies or uses a different device or web browser. A record of the IP address used at the time of each edit will be stored for 90 days after the edit. However, only some logged-in users will be able to see it. '''What does this mean for different groups of users?''' '''For logged-out editors''' * This increases privacy: currently, if you do not use a registered account to edit, then everybody can see the IP address for the edits you made, even after 90 days. That will no longer be possible on this wiki. * If you use a temporary account to edit from different locations in the last 90 days (for example at home and at a coffee shop), the edit history and the IP addresses for all those locations will now be recorded together, for the same temporary account. Users who [[foundation:Special:MyLanguage/Policy:Access_to_temporary_account_IP_addresses|meet the relevant requirements]] will be able to view this data. If this creates any personal security concerns for you, please contact talktohumanrights at wikimedia.org for advice. '''For community members interacting with logged-out editors''' * A temporary account is uniquely linked to a device. In comparison, an IP address can be shared with different devices and people (for example, different people at school or at work might have the same IP address). * Compared to the current situation, it will be safer to assume that a temporary user's talk page belongs to only one person, and messages left there will be read by them. As you can see in the screenshot, temporary account users will receive notifications. It will also be possible to thank them for their edits, ping them in discussions, and invite them to get more involved in the community. '''For users who use IP address data to moderate and maintain the wiki''' * '''For patrollers''' who track persistent abusers, investigate violations of policies, etc.: Users who [[foundation:Special:MyLanguage/Policy:Access_to_temporary_account_IP_addresses|meet the requirements]] will be able to reveal temporary users' IP addresses and all contributions made by temporary accounts from a specific IP address or range ([[Special:IPContributions]]). They will also have access to useful information about the IP addresses thanks to the [[mw:Special:MyLanguage/Trust and Safety Product/IP Info|IP Info]] feature. Many other pieces of software have been built or adjusted to work with temporary accounts, including AbuseFilter, global blocks, Global User Contributions, and more. (For information for volunteer developers on how to update the code of your tools – see the last part of the message.) * '''For admins blocking logged-out editors''': ** It will be possible to block many abusers by just blocking their temporary accounts. A blocked person won't be able to create new temporary accounts quickly if the admin selects the [[mw:Special:MyLanguage/Autoblock|autoblock]] option. ** It will still be possible to block an IP address or IP range. * Temporary accounts will not be retroactively applied to contributions made before the deployment. On Special:Contributions, you will be able to see existing IP user contributions, but not new contributions made by temporary accounts on that IP address. Instead, you should use Special:IPContributions for this. '''Our requests for you, and next steps''' * If you know of any tools, bots, gadgets etc. using data about IP addresses or being available for logged-out users, you may want to test if they work on [[testwiki:Main_Page|testwiki]] or [[test2wiki:Main_Page|test2wiki]]. If you are a volunteer developer, [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers|read our documentation for developers]], and in particular, the section on [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers#How should I update my code?|how your code might need to be updated]]. * If you want to test the temporary account experience, for example just to check what it feels like, go to testwiki or test2wiki and edit without logging in. * Tell us if you know of any difficulties that need to be addressed. We will try to help, and if we are not able, we will consider the available options. * Look at our [[m:Meta:Babel#Temporary_Accounts:_access_to_IP_addresses_and_next_steps|previous message]] about requirements for users without extended rights who may need access to IP addresses. To learn more about the project, check out [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/FAQ|our FAQ]] – you will find many useful answers there. You may also [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/Updates|look at the updates]] (we have just posted one) and [[mw:Newsletter:Product Safety and Integrity|subscribe to our new newsletter]]. If you'd like to talk to me (Szymon) off-wiki, you will find me on Discord and Telegram. Thank you!<section end="body" /> </div> <bdi lang="en" dir="ltr">[[m:user:NKohli (WMF)|NKohli (WMF)]], [[m:user:SGrabarczuk (WMF)|SGrabarczuk (WMF)]]</bdi> 21:36, 26 اَگست 2025 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Quiddity_(WMF)/sandbox6&oldid=29181713 --> == <span lang="en" dir="ltr">Server switch - Your wiki will be read-only for a short time soon</span> == <div lang="en" dir="ltr"> <section begin="server-switch"/><div class="plainlinks"> [[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}] The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. All traffic will switch on '''{{#time:j xg|2025-09-24|en}}'''. The switch will start at '''[https://zonestamp.toolforge.org/{{#time:U|2025-09-24T15:00|en}} {{#time:H:i e|2025-09-24T15:00}}]'''. Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future. A banner will be displayed on all wikis 30 minutes before this operation happens. This banner will remain visible until the end of the operation. You can contribute to the [https://meta.wikimedia.org/w/index.php?title=Special%3ATranslate&group=Centralnotice-tgroup-read_only_banner&task=view&language=&filter=&action=translate translation or proofreading] of this banner text. '''You will be able to read, but not edit, all wikis for a short period of time.''' *You will not be able to edit for up to an hour on {{#time:l j xg Y|2025-09-24|en}}. *If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case. ''Other effects'': *Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped. * We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards. * [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes. This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. '''Please share this information with your community.'''</div><section end="server-switch"/> </div> <span dir=ltr>[[m:User:Trizek (WMF)|Trizek (WMF)]] ([[m:User talk:Trizek (WMF)|{{int:talk}}]])</span> 15:41, 18 سیٚپٹَمبَر 2025 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29170715 --> == <span lang="en" dir="ltr">Migration to Parsoid</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> <em>[[m:Special:MyLanguage/Wikimedia Foundation/Product and Technology/Parsoid Read Views/Read View Announcement|Read this in another language]]</em> Hello everyone! I am glad to inform you that as the next step in the [[mw:Special:MyLanguage/Parsoid/Parser Unification|Parser Unification]] project, Parsoid will soon be turned on as the default article renderer on your wiki. We are gradually increasing the number of wikis using Parsoid, with the intention of making it the default wikitext parser for MediaWiki's next long-term support release. This will make our wikis more reliable and consistent for editors, readers, and tools to use, as well as making the development of future wikitext features easier. If this disrupts your workflow, don’t worry! You can still opt out through a user preference or turn Parsoid off on the current page using the Tools submenu, as described in the [[mw:Special:MyLanguage/Help:Extension:ParserMigration|Extension:ParserMigration]] documentation. There is [[mw:Special:MyLanguage/Parsoid/Parser_Unification/Confidence_Framework|more information about our roll-out strategy]] available, including the testing done before we turn on Parsoid for a new wiki. To report bugs and issues, please look at our [[mw:Special:MyLanguage/Parsoid/Parser Unification/Known Issues|known issues]] documentation and if you found a new bug please create a phab ticket and tag the [[phab:project/view/5846|Content Transform Team in Phabricator]]. <section end="announcement-content" /> </div> <bdi lang="en" dir="ltr">[[mw:User:ABreault (WMF)|Content Transform Team]]</bdi> 23:03, 18 سیٚپٹَمبَر 2025 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:ABreault (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Wikimedia_Foundation/Product_and_Technology/Parsoid_Read_Views/2025-09-22_Wikipedias&oldid=29294855 --> == <span lang="en" dir="ltr">Have your say: vote for the 2025 Board of Trustees</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Hello all, The voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|2025 Board of Trustees election]] is now open. Candidates are running for two (2) seats on the Board. To check your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Voter eligibility guidelines|voter eligibility page]]. Learn more about them by [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidates|reading their application statements and watch their candidacy videos]]. When you are ready, go to the [[m:Special:SecurePoll/vote/405|SecurePoll voting page to vote]]. '''The vote is open from October 8 at 00:00 UTC to October 22 at 23:59 UTC.''' Best regards, Abhishek Suryawanshi<br />Chair, Elections Committee<section end="announcement-content" /> </div> [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 04:48, 9 اَکتوٗبَر 2025 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:RamzyM (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29360896 --> == <span lang="en" dir="ltr">Help us decide the name of the new Abstract Wikipedia project</span> == <div lang="en" dir="ltr"> <section begin="function1"/> {{int:Hello}}. Please help pick a name for the new Abstract Wikipedia wiki project. This project will be a wiki that will enable users to combine functions from [[:f:|Wikifunctions]] and data from Wikidata in order to generate natural language sentences in any supported languages. These sentences can then be used by any Wikipedia (or elsewhere). There will be two rounds of voting, each followed by legal review of candidates, with votes beginning on 20 October and 17 November 2025. Our goal is to have a final project name selected on mid-December 2025. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki. {{Int:Feedback-thanks-title}} <section end="function1"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:43, 20 اَکتوٗبَر 2025 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29432175 --> == <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Each year, typically from October through December, several of the movement’s committees seek new volunteers. Read more about the committees on their Meta-wiki pages: * [[m:Special:MyLanguage/Affiliations Committee|Affiliations Committee (AffCom)]] * [[m:Special:MyLanguage/Ombuds commission|Ombuds commission (OC)]] * [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]] Applications for the committees open on October 30, 2025. Applications for the Affiliations Committee, Ombuds commission and the Case Review Committee close on December 11, 2025. Learn how to apply by [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Committee appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email cst[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org with any questions you may have. For the Committee Support team, <section end="announcement-content" /> </div> -[[m:User:MKaur (WMF)| MKaur (WMF)]] 14:12, 30 اَکتوٗبَر 2025 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:MKaur (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29517125 --> == <span lang="en" dir="ltr">Reminder: Help us decide the name of the new Abstract Wikipedia project</span> == <div lang="en" dir="ltr"> <section begin="function2"/> {{int:Hello}}. Reminder: Please help to choose name for the new Abstract Wikipedia wiki project. The finalist vote starts today. The finalists for the name are: <span lang="en" dir="ltr" class="mw-content-ltr">Abstract Wikipedia, Multilingual Wikipedia, Wikiabstracts, Wikigenerator, Proto-Wiki</span>. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki. {{Int:Feedback-thanks-title}} <section end="function2"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:22, 20 نَوَمبَر 2025 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29583860 --> == Thank You for Last Year – Join Wiki Loves Ramadan 2026 == Dear Wikimedia communities, We hope you are doing well, and we wish you a happy New Year. ''Last year, we captured light. This year, we’ll capture legacy.'' In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects. We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community. 📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]] If you have questions about the project, please refer to the FAQs: * [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]] * [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]] ''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]''''' ''Stay connected and receive updates:'' * [https://t.me/WikiLovesRamadan Telegram channel] * [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list] We look forward to collaborating with you and your community. '''The Wiki Loves Ramadan 2026 Organizing Team''' 19:44, 16 جَنؤری 2026 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 --> == Feminism and Folklore 2026 starts soon == <div style="border:8px maroon ridge;padding:6px;"> [[File:Feminism and Folklore 2026 logo.svg|centre|550px|frameless]] ::<div lang="en" dir="ltr" class="mw-content-ltr"> <div style="text-align: center; width: 100%;">''{{int:please-translate}}''</div> ;Invitation to Organize Feminism and Folklore 2026 Dear Wiki Community, We are pleased to invite Wikimedia communities, affiliates, and independent contributors to organize the '''[[:m:Feminism and Folklore 2026|Feminism and Folklore 2026]]''' writing competition on your local Wikipedia. The international campaign will run from '''1 February to 31 March 2026''' and aims to improve coverage of feminism, women’s histories, gender-related topics, and folk culture across Wikipedia projects. ;About the Campaign '''Feminism and Folklore''' is a global writing initiative that complements the '''[[:c:Commons:Wiki Loves Folklore 2026|Wiki Loves Folklore]]''' photography competition. While Wiki Loves Folklore focuses on visual documentation, this writing campaign addresses the '''gender gap on Wikipedia''' by improving encyclopedic content related to folk culture and marginalized voices. ;What Can Participants Write About? Communities can contribute by creating, expanding, or translating articles related to: * Folk festivals, rituals, and celebrations * Folk dances, music, and traditional performances * Women and queer figures in folklore * Women in mythology and oral traditions * Women warriors, witches, and witch-hunting narratives * Fairy tales, folk stories, and legends * Folk games, sports, and cultural practices Participants may work from curated article lists or generate new article suggestions using campaign tools. ;How to Sign Up as an Organizer Organizers are requested to complete the following steps to register their community: # Create a local project page on your wiki [[:m:Feminism and Folklore/Sample|(see sample)]] # Set up the campaign using the '''CampWiz''' tool # Prepare a local article list and clearly mention: #* Campaign timeline #* Local and international prizes # Request a site notice from local administrators [[:mr:Template:SN-FNF|(see sample)]] # Add your local project page and CampWiz link to the '''[[:m:Feminism and Folklore 2026/Project Page|Meta project page]]''' ;Campaign Tools The Wiki Loves Folklore Tech Team has introduced tools to support organizers and participants: * '''Article List Generator by Topic''' – Helps identify articles available on English Wikipedia but missing in your local language Wikipedia. The tool allows customized filters and provides downloadable article lists in CSV and wikitable formats. * '''CampWiz''' – Enables communities to manage writing campaigns effectively, including jury-based evaluation. This will be the third year CampWiz is officially used for Feminism and Folklore. Both tools are now available for use in the campaign. '''[https://tools.wikilovesfolklore.org/ Click here to access the tools]''' ;Learn More & Get Support For detailed information about rules, timelines, and prizes, please visit the '''[[:m:Feminism and Folklore 2026|Feminism and Folklore 2026 project page]]'''. If you have any questions or need assistance, feel free to reach out via: * '''[[:m:Talk:Feminism and Folklore 2026/Project Page|Meta talk page]]''' * Email us using details on the contact page. ;Join Us We look forward to your collaboration and coordination in making Feminism and Folklore 2026 a meaningful and impactful campaign for closing gender gaps and enriching folk culture content on Wikipedia. Thank you and best wishes, '''[[:m:Feminism and Folklore 2026|Feminism and Folklore 2026 International Team]]''' ---- ''Stay connected:'' [[File:B&W Facebook icon.png|link=https://www.facebook.com/feminismandfolklore/|30x30px]]&nbsp; [[File:B&W Twitter icon.png|link=https://twitter.com/wikifolklore|30x30px]] </div></div> == Invitation to Host Wiki Loves Folklore 2026 in Your Country == <div lang="en" dir="ltr" class="mw-content-ltr"> <div style="text-align: center; width: 100%;">''{{int:please-translate}}''</div> [[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]] Hello everyone, We are delighted to invite Wikimedia affiliates, user groups, and community organizations worldwide to participate in '''Wiki Loves Folklore 2026''', an international initiative dedicated to documenting and celebrating folk culture across the globe. ;About Wiki Loves Folklore '''Wiki Loves Folklore''' is an annual international photography competition hosted on Wikimedia Commons. The campaign runs from '''1 February to 31 March 2026''' and encourages photographers, cultural enthusiasts, and community members to contribute photographs that highlight: * Folk traditions and rituals * Cultural festivals and celebrations * Traditional attire and crafts * Performing arts, music, and dance * Everyday practices rooted in folk heritage Through this campaign, we aim to preserve and promote diverse folk cultures and make them freely accessible to the world. [[:c:Commons:Wiki_Loves_Folklore_2026|Project page on Wikimedia Commons]] ; Host a Local Edition As we celebrate the '''eight edition''' of Wiki Loves Folklore, we warmly invite communities to organize a local edition in their country or region. Hosting a local campaign is a great opportunity to: * Increase visibility of your region’s folk culture * Engage new contributors in your community * Enrich Wikimedia Commons with high-quality cultural content '''[[:c:Commons:Wiki_Loves_Folklore_2026/Organize|Sign up to organize]]:''' If your team prefers to organize the competition in ''either February or March only'', please feel free to let us know. If you are unable to organize, we encourage you to share this opportunity with other interested groups or organizations in your region. ;Get in Touch If you have any questions, need support, or would like to explore collaboration opportunities, please feel free to contact us via: * The project Talk pages * Email: '''support@wikilovesfolklore.org''' We are also happy to connect via an online meeting if your team would like to discuss planning or coordination in more detail. Warm regards, '''The Wiki Loves Folklore International Team''' </div> [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 13:21, 18 جَنؤری 2026 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Tiven2240@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery/Wikipedia&oldid=29228188 --> == <span lang="en" dir="ltr">Annual review of the Universal Code of Conduct and Enforcement Guidelines</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 9 February 2026. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Read more information and find a conversation to join on the UCoC page on Meta]]. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" /> </div> 21:01, 19 جَنؤری 2026 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> == وِکی کانفرٛنٕس اِنڈِیا 2026 خٲطرٕ چھِ سُکالرشپ درخاستہٕ یَلہٕ == سَلام تہٕ آداب، وِکی کانفرٛنٕس اِنڈِیا 2026 خٲطرٕ چھِ سُکالرشپٕچ درخاستہٕ یلہٕ۔ یہِ کانفرٛنٕس سپدِ 4 پٮ۪ٹھٕ 6 سَتمبر 2026 تام کوچی، ہندوستانَس منٛز۔ وِکی کانفرٛاس اِنڈِیا چھِ وِکیٖمیٖڈِین، کمیونٹی آرگنائزر، تہٕ ہِندوستان، جٔنوٗبی ایشیا تہٕ اَمہِ نؠبَر مَضموٗن ہِنٛدِ اِکہٕ وٹہٕ کَران۔ یہِ چھِ آزاد علمی تحریکہِ مضبوٗط بناونَس منٛز رٲبطہٕ، ہیٚچھن، تجرُبَن ہُنٛد اشتراک کرنٕچ تہٕ تعاون کرنٕچ جاے۔ اگر تُہؠ وِکیٖمیٖڈیا مَنصوٗبَن مَنٛز سرگرم حِصہٕ نِوان چھِو یا عَوٲمی سرگرمیَن مَنٛز شٲمِل چھِو، تیٚلہِ چھِو تۄہہِ سُکالرشپ خٲطرٕ درخاست دِنہٕ خٲطرٕ حوصلہٕ اَفزٲیی یِوان کرنہٕ۔ تفصیلی اعلان چھُ یَتھ جاے۔ 🙂 درخاستُک آخری تٲریٖخ: [15 اپریل 2026 11:59 شامَس IST] درخاست لنک: https://docs.google.com/forms/d/e/1FAIpQLSdA3rR9xX_k31dzJrjM5MTDNYNUIRcAB45S4TflsYCbGJNrzg/viewform مٔزیٖد معلوٗماتھ: https://meta.wikimedia.org/wiki/WikiConference_India_2026/Scholarship مہربٲنی کٔرِتھ کٔرِو یہِ اعلان  پننہِ برادری منٛز باقین سٲتؠ شیئر۔ شُکرِیہ تُہُنٛد. وِکی کانفرٛنٕس اِنڈِیا 2026 اِنتِظٲمی ٹیٖم -[[رُکُن:Gnoeee|Gnoeee]] ([[رُکُن کَتھ:Gnoeee|کَتھ صَفہٕ]]) 21:05, 28 مارٕچ 2026 (UTC) == Join the sixth Ukraine’s Cultural Diplomacy Month on Wikipedia! == <div lang="en" dir="ltr"> [[File:Ukraine’s Cultural Diplomacy Month on Wikipedia 2026.png|right|250px|thumb|link=https://meta.wikimedia.org/wiki/Ukraine%27s_Cultural_Diplomacy_Month_2026|Join our campaign!]] {{int:please-translate}} Dear Wikipedians! [[:m:Special:MyLanguage/Wikimedia Ukraine|Wikimedia Ukraine]], in cooperation with the [[:en:Ministry of Foreign Affairs of Ukraine|MFA of Ukraine]] and [[:en:Ukrainian Institute|Ukrainian Institute]], has launched the sixth edition of writing challenge "'''[[:m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2026|Ukraine's Cultural Diplomacy Month]]'''", which lasts from '''1st April''' until '''30th April 2026'''. The initiative aims to promote knowledge about Ukrainian culture abroad by creating and improving Wikipedia articles in multiple languages. This year marks the sixth edition of the campaign, which will focus on contemporary culture, making today’s artistic voices and practices more visible to international audiences. 🧩'''How to participate?''' Choose an article from the suggested list → Write an article in your language, or improve an existing one according to the rules → Add your contribution to the contest page and calculate your points → Win prizes and receive a certificate of participation → Become a promoter of truthful knowledge about Ukraine. 🧩'''[[m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2026|Check our main page for more information]]'''. '''If you are interested in coordinating long-term community engagement for the campaign and becoming a local ambassador, we would love to hear from you! Please let us know your interest.''' If not, then we encourage you to translate the [[m:Special:MyLanguage/Ukraine's Cultural Diplomacy Month 2026|landing page of the contest]] and [https://meta.wikimedia.org/wiki/Special:MessageGroupStats?group=Centralnotice-tgroup-UCDM2026banner&messages=&language=en&x=D banner] into your own language. Also, we set up a [[:m:CentralNotice/Request/Ukraine's Cultural Diplomacy Month 2026|banner]] to notify users of the possibility to participate in this challenge! [[:m:User:OlesiaLukaniuk (WMUA)|OlesiaLukaniuk (WMUA)]] ([[:m:User talk:OlesiaLukaniuk (WMUA)|talk]]) 04:35, 1 April 2026 (UTC) </div> (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:OlesiaLukaniuk (WMUA)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:OlesiaLukaniuk_(WMUA)/list_of_wikis&oldid=28552112 --> == Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) == Hello everyone, This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>). '''The Change:'''<br /> Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]]. We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''. '''What You Need To Do:'''<br /> To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search. '''Deadline:'''<br /> We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles. Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 17:11, 3 اپریٖل 2026 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:ZI Jony@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 --> == Request for comment (global AI policy) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{int:Please-translate}} A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}} [[رُکُن:MediaWiki message delivery|MediaWiki message delivery]] ([[رُکُن کَتھ:MediaWiki message delivery|کَتھ صَفہٕ]]) 00:57, 26 اپریٖل 2026 (UTC) </bdi> (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Codename Noreste@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 --> == <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC]. Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" /> </div> [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:14, 27 مٔی 2026 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == RFC about AI-generated content in Wikimedia Commons == <bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|کَتھ]])</bdi> 17:11, 23 جوٗن 2026 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Codename Noreste@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> == <div lang="en" dir="ltr"> <section begin="Message"/> '''Legal & Safety Contacts''' Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]]. <section end="Message"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:29, 25 جوٗن 2026 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 --> == عُنوان: وِکی کانٛفرنٕس اِنڈِیا 2026: مشمولات تہٕ ذٲتی مٲلی معاونت واجنہِ درخاستن ہٕنٛز وصولی خٲطرٕ عرض == '''میلنگ لسٹہٕ میل''' عُنوان: '''وِکی کانٛفرنٕس اِنڈِیا 2026: مشمولات تہٕ ذٲتی مٲلی معاونت واجنہِ درخاستن ہٕنٛز وصولی خٲطرٕ عرض''' کمیونٹی ممبران، اسہ چھُ یہ اعلان کرنس خوشی گژھان ز ذٲتی  رجسٹریشن تہٕ وِکی کانٛفرنٕس اِنڈِیا 2026 باپتھ جمع کرنٕچ کال چھےٚ وۄنؠ یلہٕ۔ وِکی کانٛفرنٕس اِنڈِیا 2026 ییہٕ کوچی، کیرالہ ہس منٛز 4-6 سَتمبَر 2026 پیٹھہٕ مُنعقٕد کرنہٕ۔ یہِ کانٛفرنٕس ہاو ویکیمیڈین، کمیونٹی لیڈرن، ڈویلپرن، محقیقن، تہٕ پورٕ ہندوستان تہٕ جنوبی ایشیا کیو کھلہٕ علم کین شوقینن جوڑنہٕ، تعاون کرنہٕ تہٕ تَجرُباتک اشتراک کرنہٕ خٲطرٕ اکوٹھ۔ ڈبلیو سی آی 2026 ہُک تھیم چھُ "نالج کامنزک دوبارٕ تصور: اکھ ترقی پذیر وِکیٖمیٖڈیا ماحولیٲتی نظامس منٛز کمیونٹی لیڈرشپ"۔ یتھ کٔنؠ ز وِکیٖمیٖڈیا تٔحریٖک چھِ تیز رفتار تکنیکی تبدیلین ہنٛز رَہنُمٲیی کران، یَتھ منٛز اے آٮٔی یُک عروج تہٕ علمچ تخلیقک نٔوؠ ماڈل شٲمل چھِ، کانٛفرنسُک مقصد چھُ کمیونٹی قیادت، علمچ مساوات، علاقٲئی زبانہٕ، کھلہٕ علم، تہٕ ہندوستانَس تہٕ جنوبی ایشیایَس منٛز وِکیٖمیٖڈیا کِس مُستقبِلس أنٛدؠ پٔکؠ کتھ باتھہٕ خٲطرٕ جاے پٲدٕ کرٕنؠ۔ '''ذٲتی مٲلی معاونت واجنہِ'''  '''رجسٹریشن''' ذٲتی مٲلی معاونت رجسٹریشنٕچ درخاست چھےٚ وۄنؠ پریٹکسس پؠٹھ لایو۔ * تفصیلات تہٕ اہلیت: [<nowiki/>[[m:WikiConference_India_2026/Registration|رجسٹریشن میٹا پیج لنک]]] * رجسٹریشن فارم: [https://pretix.eu/wikimedia-events/WCI2026/<nowiki>]</nowiki> * رجسٹریشن کرک آخری اپڈیٹ اگست 22,2026 '''مشمولات خٲطرٕ عرض''' مشمولات خٲطرٕ عرض چھِ وۄنؠ ایونتیے یس پؠٹھ براہ راست۔ أسؠ چھِ ورکشاپس، بحثہٕ، پینل، انٹرایکٹو سیشن، کتھ باتھ، تہٕ پوسٹر پریزنٹیشنن خٲطرٕ تجاویٖز مدعو کران۔ چاہے تُہؠ چھو اکھ تَجربہٕ کار، تعاون کرن وول یا کمیونٹی ہنٛد نوٚو رکن، تہنٛد خیالات، تجربات، تہٕ ہیٚچھنٕ ہؠکن کانفرنسہٕ کین پروگرامن شکل دنس منٛز مَدَتھ کٔرتھ تہٕ پورٕ تحریکس منٛز اہم کتھ باتھ کرنَس منٛز مَدَتھ کٔرتھ۔ تفصیلات تہٕ رہنما خطوط: [<nowiki/>[[m:WikiConference_India_2026/Programme/Submissions|میٹا ویکی جمع کرانے کے صفحے کا لنک]]] جمع کرنٕچ آخری تٲریخ: [15 جُلے 2026] وکی کانفرنس انڈیا 2026 کِس بارس منٛز مکمل معلوماتہٕ خٲطرٕ، یتھ منٛز شرکتٕچ تفصیلات، ٹایِم لاین، کانفرنسہ ہٕنٛدؠ اپ ڈیٹ، تہٕ جمع کرنٕچ رہنما خطوط شٲمل چھِ، مہربٲنی کٔرتھ کٔرو سرکٲرؠ اعلانُک حوالہٕ: تفصیلی اعلان: [<nowiki/>[[diffblog:2026/06/26/shape-the-future-call-for-submissions-open-for-wikiconference-india-2026/|بلاگ پوسٹ لنک]]] أسؠ چھِ کمیونٹی ممبرن رجسٹر کرنہٕ، تجاویز جمع کرنہٕ، تہٕ یہ اعلان پننس نیٹ ورکس منٛز شیر کرنہٕ خٲطرٕ حوصلہٕ افضٲیی کران۔ احترام، وکی کانٛفرنٕس انڈیا 2026 آرگنائزنگ ٹیم مکمل اعلان: [<nowiki/>[[diffblog:2026/06/26/shape-the-future-call-for-submissions-open-for-wikiconference-india-2026/|بلاگ پوسٹ لنک]]] سَوالن مُتلِق: اَسہِ سٟتؠ کٔرِو رٲبطہٕ : [mailto:connect@wikiconference.in connect@wikiconference.in] مہربٲنی کٔرتھ ہاو یہِ اعلان پننہ کمیونٹین تہٕ نیٹ ورکس۔ [[رُکُن:Amrit Sufi|Amrit Sufi]] ([[رُکُن کَتھ:Amrit Sufi|کَتھ صَفہٕ]]) 10:21, 30 جوٗن 2026 (UTC) [[زٲژ:Wikipedia help forums]] == Reminder: WikiConference India 2026 – Deadline on 15 July 2026 == Dear Community Members, This is a friendly reminder that the deadline for '''Self-funded Registration''' and the '''Call for Submissions''' for '''WikiConference India 2026''' is '''15 July 2026'''. === Self-funded Registration === https://pretix.eu/wikimedia-events/WCI2026/ === Call for Submissions === https://meta.wikimedia.org/wiki/WikiConference_India_2026/Programme/Submissions We invite proposals for workshops, discussions, panel sessions, interactive sessions, lightning talks, and poster presentations. === For more information === https://meta.wikimedia.org/wiki/WikiConference_India_2026 We encourage everyone to register, submit proposals, and share this reminder within your communities. Regards, '''WikiConference India 2026 Organizing Team''' [[رُکُن:Gauri Guptaa|Gauri Guptaa]] ([[رُکُن کَتھ:Gauri Guptaa|کَتھ صَفہٕ]]) 14:24, 7 جُلَے 2026 (UTC) == Request for comment (the future of Abstract Wikipedia) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}} You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}} [[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:24, 24 جُلَے 2026 (UTC) </bdi> (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:DreamRimmer@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == Invitation to Participate in Kerala Culture Month 2026 == Dear Wikimedia Contributors, We are excited to announce '''[[m:Kerala_Culture_Month_2026|Kerala Culture Month 2026]]''', a collaborative campaign launched in conjunction with '''[[m:WikiConference_India_2026|WikiConference India 2026]]'''. This initiative aims to expand and enhance content about Kerala across all Wikimedia projects, creating a comprehensive, open-access knowledge base. '''Campaign Focus:''' * Expand Wikipedia articles about Kerala in multiple languages * Improve content quality with citations, images, and comprehensive information * Populate Wikimedia Commons with freely licensed Kerala media * Enrich Wikidata with structured information about Kerala-related topics We invite you to contribute by writing new articles, enhancing existing ones, uploading media, or organizing data on Wikidata. Whether you're an experienced editor or new to Wikimedia, your participation matters. For more information and to get involved, visit the campaign page: https://meta.wikimedia.org/wiki/Kerala_Culture_Month_2026 on your preferred Wikimedia project. Best regards, ''Communications Team, WCI 2026'' <nowiki>~~~~</nowiki> [[رُکُن:Shadabgdg|Shadabgdg]] ([[رُکُن کَتھ:Shadabgdg|کَتھ صَفہٕ]]) 16:02, 25 جُلَے 2026 (UTC) == Invitation to pre-conference activities for WikiConference India 2026 == Dear Wikimedia contributors, As the Wikiconference India 2026 draws nearer, the excitement is soaring as well! We are sending this message to inform you that two pre-conference activities are being held as a part of this meetup. The Wiki Loves Villages campaign 2026 starts on 15th August 2026, so get ready to contribute! This initiative aims to expand and enhance content and media about villages across all Wikimedia projects, creating a comprehensive, open-access knowledge base. Campaign Focus: A. Expand Wikipedia articles about Villages in India in multiple languages B. Improve content quality with citations, images, and comprehensive information C. Populate Wikimedia Commons with freely licensed media about a village D. Enrich Wikidata with structured information about Village-related topics We invite you to contribute by writing new articles, enhancing existing ones, uploading media, or organizing data on Wikidata. Whether you're an experienced editor or new to Wikimedia, your participation matters. For more information and to get involved, visit the campaign page ([https://meta.wikimedia.org/wiki/Wiki_Loves_Village_2026](https://meta.wikimedia.org/wiki/Wiki_Loves_Village_2026)) on your preferred Wikimedia project. Another way to contribute to a pre-conference activity is the innovative Wiki Loves Medicinal Plants 2026- it is a photography campaign hosted by WikiConference India 2026. The activity already started on 1st August and ends on 31st August 2026, so gear up to document local medicinal knowledge and fill the knowledge gaps. This initiative aims to expand and enhance freely licensed images and other media of medicinal plants in and around our surroundings. Campaign Focus: A. Add freely licensed images of medicinal plants. B. Improve description of existing medicinal plants. C. Improve depictions of images. D. Improve wikidata items. We invite you to contribute by adding new photos, videos or enhancing existing ones. Whether you're an experienced editor or new to Wikimedia, your participation matters. To know more about how to contribute, rules, and tips head to the Meta page to find information ([https://commons.wikimedia.org/wiki/Commons:Wiki_Loves_Medicinal_Plants](https://commons.wikimedia.org/wiki/Commons:Wiki_Loves_Medicinal_Plants)) on your preferred Wikimedia project. Best regards, WikiConference India 2026 pre-conference organizing team -- [[رُکُن:Kuldeepburjbhalaike|Kuldeepburjbhalaike]] ([[رُکُن کَتھ:Kuldeepburjbhalaike|کَتھ صَفہٕ]]) 11:56, 13 اَگست 2026 (UTC) == <span lang="en" dir="ltr">Server switch - Your wiki will be read-only for a short time soon</span> == <div lang="en" dir="ltr"> <section begin="server-switch"/><div class="plainlinks"> [[:m:Special:MyLanguage/Tech/Server switch|Read this message in another language]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}] The [[foundation:|Wikimedia Foundation]] will switch the traffic between its data centers. This will make sure that Wikipedia and the other Wikimedia wikis can stay online even after a disaster. All traffic will switch on '''{{#time:j xg|2026-09-23|en}}'''. The switch will start at '''[https://zonestamp.toolforge.org/{{#time:U|2026-09-23T14:00|en}} {{#time:H:i e|2026-09-23T14:00}}]'''. Unfortunately, because of some limitations in [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], all editing must stop while the switch is made. We apologize for this disruption, and we are working to minimize it in the future. A banner will be displayed on all wikis 30 minutes before this operation happens. This banner will remain visible until the end of the operation. You can contribute to the [https://meta.wikimedia.org/w/index.php?title=Special%3ATranslate&group=Centralnotice-tgroup-read_only_banner&task=view&language=&filter=&action=translate translation or proofreading] of this banner text. '''You will be able to read, but not edit, all wikis for a short period of time.''' * You will not be able to edit for up to an hour on {{#time:l j xg Y|2026-09-23|en}}. * If you try to edit or save during these times, you will see an error message. We hope that no edits will be lost during these minutes, but we can't guarantee it. If you see the error message, then please wait until everything is back to normal. Then you should be able to save your edit. But, we recommend that you make a copy of your changes first, just in case. ''Other effects'': * Background jobs will be slower and some may be dropped. Red links might not be updated as quickly as normal. If you create an article that is already linked somewhere else, the link will stay red longer than usual. Some long-running scripts will have to be stopped. * We expect the code deployments to happen as any other week. However, some case-by-case code freezes could punctually happen if the operation require them afterwards. * [[mw:Special:MyLanguage/GitLab|GitLab]] will be unavailable for about 90 minutes. This project may be postponed if necessary. You can [[wikitech:Switch_Datacenter|read the schedule at wikitech.wikimedia.org]]. Any changes will be announced in the schedule. '''Please share this information with your community.'''</div><section end="server-switch"/> </div> [[m:user:Trizek (WMF)|Trizek (WMF)]] 12:58, 15 سیٚپٹَمبَر 2026 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Trizek (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=30513874 --> == Your feedback wanted: Remove ''(Language link added:) and similar'' edits from Special:RecentChanges == ''(Apologies for posting in English. You can help by translating it)'' Hello, I’m Danny from [[:en:w:Wikimedia_Deutschland|Wikimedia Deutschland’s]] [[m:Wikidata_For_Wikimedia_Projects|Wikidata For Wikimedia Projects]] team.<br/> We have been investigating and examining how Wikidata’s use in the [[Special:RecentChanges]] and [[Special:Watchlist]] pages can be made to be more useful, or less ‘noisy’ (fewer edits that have little value to the reader). We are currently exploring to make a change in the volume and the type of Wikidata edits that appear in these pages, and '''we need your feedback''' to help us ensure this is a positive change for the Wikis and won’t disrupt your workflows.<br/> Language links are also known as sitelinks or interlanguage links and describe when a Wikidata item is connected to a Wiki, adding it to the language dropdown tool for other connected Wikis. [[File:Types of Lang Link changes.png|x350px|frame|A variety of "Language Link" edits as seen in the Recent Changes feed]] The request for feedback is whether you support the removal of these language link edits from the Recent Changes and Watchlist feed, or would you oppose such a change and if so, why? Please share you thoughts on the dedicated '''[[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|metawiki Talk page]]'''. Further information about this change: [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|m:Wikidata_For_Wikimedia_Projects/Hide_Language_Link_edits]] Thank you for any participation or feedback you give, -- [[m:User:Danny_Benjafield_(WMDE)|User:Danny Benjafield (WMDE)]] 15:20, 21 سیٚپٹَمبَر 2026 (UTC) (This message was sent to [[:وِکیٖپیٖڈیا:Community Portal]] and is being posted here due to a redirect.) <!-- Message sent by User:Danny Benjafield (WMDE)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_test_list&oldid=31067418 --> oz54m8x4q6s77sfnygwgtqfgw2ac4yg Module:String 828 6476 151899 83415 2025-08-11T23:48:56Z en>Pppery 0 Fix 151899 Scribunto text/plain --[[ This module is intended to provide access to basic string functions. Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either preserve or remove such whitespace. Global options ignore_errors: If set to 'true' or 1, any error condition will result in an empty string being returned rather than an error message. error_category: If an error occurs, specifies the name of a category to include with the error message. The default category is [Category:Errors reported by Module String]. no_category: If set to 'true' or 1, no category will be added if an error is generated. Unit tests for this module are available at Module:String/tests. ]] local str = {} --[[ len This function returns the length of the target string. Usage: {{#invoke:String|len|target_string|}} OR {{#invoke:String|len|s=target_string}} Parameters s: The string whose length to report If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. ]] function str.len( frame ) local new_args = str._getParameters( frame.args, {'s'} ) local s = new_args['s'] or '' return mw.ustring.len( s ) end --[[ sub This function returns a substring of the target string at specified indices. Usage: {{#invoke:String|sub|target_string|start_index|end_index}} OR {{#invoke:String|sub|s=target_string|i=start_index|j=end_index}} Parameters s: The string to return a subset of i: The first index of the substring to return, defaults to 1. j: The last index of the string to return, defaults to the last character. The first character of the string is assigned an index of 1. If either i or j is a negative value, it is interpreted the same as selecting a character by counting from the end of the string. Hence, a value of -1 is the same as selecting the last character of the string. If the requested indices are out of range for the given string, an error is reported. ]] function str.sub( frame ) local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } ) local s = new_args['s'] or '' local i = tonumber( new_args['i'] ) or 1 local j = tonumber( new_args['j'] ) or -1 local len = mw.ustring.len( s ) -- Convert negatives for range checking if i < 0 then i = len + i + 1 end if j < 0 then j = len + j + 1 end if i > len or j > len or i < 1 or j < 1 then return str._error( 'String subset index out of range' ) end if j < i then return str._error( 'String subset indices out of order' ) end return mw.ustring.sub( s, i, j ) end --[[ This function implements that features of {{str sub old}} and is kept in order to maintain these older templates. ]] function str.sublength( frame ) local i = tonumber( frame.args.i ) or 0 local len = tonumber( frame.args.len ) return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) ) end --[[ _match This function returns a substring from the source string that matches a specified pattern. It is exported for use in other modules Usage: strmatch = require("Module:String")._match sresult = strmatch( s, pattern, start, match, plain, nomatch ) Parameters s: The string to search pattern: The pattern or string to find within the string start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1. match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1. plain: A flag indicating that the pattern should be understood as plain text. Defaults to false. nomatch: If no match is found, output the "nomatch" value rather than an error. For information on constructing Lua patterns, a form of [regular expression], see: * http://www.lua.org/manual/5.1/manual.html#5.4.1 * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns ]] -- This sub-routine is exported for use in other modules function str._match( s, pattern, start, match_index, plain_flag, nomatch ) if s == '' then return str._error( 'Target string is empty' ) end if pattern == '' then return str._error( 'Pattern string is empty' ) end start = tonumber(start) or 1 if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then return str._error( 'Requested start is out of range' ) end if match_index == 0 then return str._error( 'Match index is out of range' ) end if plain_flag then pattern = str._escapePattern( pattern ) end local result if match_index == 1 then -- Find first match is simple case result = mw.ustring.match( s, pattern, start ) else if start > 1 then s = mw.ustring.sub( s, start ) end local iterator = mw.ustring.gmatch(s, pattern) if match_index > 0 then -- Forward search for w in iterator do match_index = match_index - 1 if match_index == 0 then result = w break end end else -- Reverse search local result_table = {} local count = 1 for w in iterator do result_table[count] = w count = count + 1 end result = result_table[ count + match_index ] end end if result == nil then if nomatch == nil then return str._error( 'Match not found' ) else return nomatch end else return result end end --[[ match This function returns a substring from the source string that matches a specified pattern. Usage: {{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}} OR {{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index |match=match_number|plain=plain_flag|nomatch=nomatch_output}} Parameters s: The string to search pattern: The pattern or string to find within the string start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1. match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1. plain: A flag indicating that the pattern should be understood as plain text. Defaults to false. nomatch: If no match is found, output the "nomatch" value rather than an error. If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from each string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. If the match_number or start_index are out of range for the string being queried, then this function generates an error. An error is also generated if no match is found. If one adds the parameter ignore_errors=true, then the error will be suppressed and an empty string will be returned on any failure. For information on constructing Lua patterns, a form of [regular expression], see: * http://www.lua.org/manual/5.1/manual.html#5.4.1 * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns ]] -- This is the entry point for #invoke:String|match function str.match( frame ) local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} ) local s = new_args['s'] or '' local start = tonumber( new_args['start'] ) or 1 local plain_flag = str._getBoolean( new_args['plain'] or false ) local pattern = new_args['pattern'] or '' local match_index = math.floor( tonumber(new_args['match']) or 1 ) local nomatch = new_args['nomatch'] return str._match( s, pattern, start, match_index, plain_flag, nomatch ) end --[[ pos This function returns a single character from the target string at position pos. Usage: {{#invoke:String|pos|target_string|index_value}} OR {{#invoke:String|pos|target=target_string|pos=index_value}} Parameters target: The string to search pos: The index for the character to return If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. The first character has an index value of 1. If one requests a negative value, this function will select a character by counting backwards from the end of the string. In other words pos = -1 is the same as asking for the last character. A requested value of zero, or a value greater than the length of the string returns an error. ]] function str.pos( frame ) local new_args = str._getParameters( frame.args, {'target', 'pos'} ) local target_str = new_args['target'] or '' local pos = tonumber( new_args['pos'] ) or 0 if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then return str._error( 'String index out of range' ) end return mw.ustring.sub( target_str, pos, pos ) end --[[ str_find This function duplicates the behavior of {{str_find}}, including all of its quirks. This is provided in order to support existing templates, but is NOT RECOMMENDED for new code and templates. New code is recommended to use the "find" function instead. Returns the first index in "source" that is a match to "target". Indexing is 1-based, and the function returns -1 if the "target" string is not present in "source". Important Note: If the "target" string is empty / missing, this function returns a value of "1", which is generally unexpected behavior, and must be accounted for separatetly. ]] function str.str_find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target'} ) local source_str = new_args['source'] or '' local target_str = new_args['target'] or '' if target_str == '' then return 1 end local start = mw.ustring.find( source_str, target_str, 1, true ) if start == nil then start = -1 end return start end --[[ find This function allows one to search for a target string or pattern within another string. Usage: {{#invoke:String|find|source_str|target_string|start_index|plain_flag}} OR {{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}} Parameters source: The string to search target: The string or pattern to find within source start: The index within the source string to start the search, defaults to 1 plain: Boolean flag indicating that target should be understood as plain text and not as a Lua style regular expression, defaults to true If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. This function returns the first index >= "start" where "target" can be found within "source". Indices are 1-based. If "target" is not found, then this function returns 0. If either "source" or "target" are missing / empty, this function also returns 0. This function should be safe for UTF-8 strings. ]] function str.find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } ) local source_str = new_args['source'] or '' local pattern = new_args['target'] or '' local start_pos = tonumber(new_args['start']) or 1 local plain = new_args['plain'] or true if source_str == '' or pattern == '' then return 0 end plain = str._getBoolean( plain ) local start = mw.ustring.find( source_str, pattern, start_pos, plain ) if start == nil then start = 0 end return start end --[[ replace This function allows one to replace a target string or pattern within another string. Usage: {{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}} OR {{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string| count=replacement_count|plain=plain_flag}} Parameters source: The string to search pattern: The string or pattern to find within source replace: The replacement text count: The number of occurences to replace, defaults to all. plain: Boolean flag indicating that pattern should be understood as plain text and not as a Lua style regular expression, defaults to true ]] function str.replace( frame ) local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } ) local source_str = new_args['source'] or '' local pattern = new_args['pattern'] or '' local replace = new_args['replace'] or '' local count = tonumber( new_args['count'] ) local plain = new_args['plain'] or true if source_str == '' or pattern == '' then return source_str end plain = str._getBoolean( plain ) if plain then pattern = str._escapePattern( pattern ) replace = string.gsub( replace, "%%", "%%%%" ) --Only need to escape replacement sequences. end local result if count ~= nil then result = mw.ustring.gsub( source_str, pattern, replace, count ) else result = mw.ustring.gsub( source_str, pattern, replace ) end return result end --[[ simple function to pipe string.rep to templates. ]] function str.rep( frame ) local repetitions = tonumber( frame.args[2] ) if not repetitions then return str._error( 'function rep expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' ) end return string.rep( frame.args[1] or '', repetitions ) end --[[ escapePattern This function escapes special characters from a Lua string pattern. See [1] for details on how patterns work. [1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns Usage: {{#invoke:String|escapePattern|pattern_string}} Parameters pattern_string: The pattern string to escape. ]] function str.escapePattern( frame ) local pattern_str = frame.args[1] if not pattern_str then return str._error( 'No pattern string specified' ) end local result = str._escapePattern( pattern_str ) return result end --[[ count This function counts the number of occurrences of one string in another. ]] function str.count(frame) local args = str._getParameters(frame.args, {'source', 'pattern', 'plain'}) local source = args.source or '' local pattern = args.pattern or '' local plain = str._getBoolean(args.plain or true) if plain then pattern = str._escapePattern(pattern) end local _, count = mw.ustring.gsub(source, pattern, '') return count end --[[ endswith This function determines whether a string ends with another string. ]] function str.endswith(frame) local args = str._getParameters(frame.args, {'source', 'pattern'}) local source = args.source or '' local pattern = args.pattern or '' if pattern == '' then -- All strings end with the empty string. return "yes" end if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then return "yes" else return "" end end --[[ join Join all non empty arguments together; the first argument is the separator. Usage: {{#invoke:String|join|sep|one|two|three}} ]] function str.join(frame) local args = {} local sep for _, v in ipairs( frame.args ) do if sep then if v ~= '' then table.insert(args, v) end else sep = v end end return table.concat( args, sep or '' ) end -- findpagetext returns the position of a piece of text in a page -- First positional parameter or |text is the search text -- Optional parameter |title is the page title, defaults to current page -- Optional parameter |plain is either true for plain search (default) or false for Lua pattern search -- Optional parameter |nomatch is the return value when no match is found; default is nil function str._findpagetext(args) -- process parameters local nomatch = args.nomatch or "" if nomatch == "" then nomatch = nil end -- local text = mw.text.trim(args[1] or args.text or "") if text == "" then return nil end -- local title = args.title or "" local titleobj if title == "" then titleobj = mw.title.getCurrentTitle() else titleobj = mw.title.new(title) end -- local plain = args.plain or "" if plain:sub(1, 1) == "f" then plain = false else plain = true end -- get the page content and look for 'text' - return position or nomatch local content = titleobj and titleobj:getContent() return content and mw.ustring.find(content, text, 1, plain) or nomatch end function str.findpagetext(frame) local args = frame.args local pargs = frame:getParent().args for k, v in pairs(pargs) do args[k] = v end if not (args[1] or args.text) then return nil end -- just the first value return (str._findpagetext(args)) end --[[ Helper function that populates the argument list given that user may need to use a mix of named and unnamed parameters. This is relevant because named parameters are not identical to unnamed parameters due to string trimming, and when dealing with strings we sometimes want to either preserve or remove that whitespace depending on the application. ]] function str._getParameters( frame_args, arg_list ) local new_args = {} local index = 1 local value for _, arg in ipairs( arg_list ) do value = frame_args[arg] if value == nil then value = frame_args[index] index = index + 1 end new_args[arg] = value end return new_args end --[[ Helper function to handle error messages. ]] function str._error( error_str ) local frame = mw.getCurrentFrame() local error_category = frame.args.error_category or 'Errors reported by Module String' local ignore_errors = frame.args.ignore_errors or false local no_category = frame.args.no_category or false if str._getBoolean(ignore_errors) then return '' end local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>' if error_category ~= '' and not str._getBoolean( no_category ) then error_str = '[[Category:' .. error_category .. ']]' .. error_str end return error_str end --[[ Helper Function to interpret boolean strings ]] function str._getBoolean( boolean_str ) local boolean_value if type( boolean_str ) == 'string' then boolean_str = boolean_str:lower() if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0' or boolean_str == '' then boolean_value = false else boolean_value = true end elseif type( boolean_str ) == 'boolean' then boolean_value = boolean_str else error( 'No boolean value found' ) end return boolean_value end --[[ Helper function that escapes all pattern characters so that they will be treated as plain text. ]] function str._escapePattern( pattern_str ) return ( string.gsub( pattern_str, "[%(%)%.%%%+%-%*%?%[%^%$%]]", "%%%0" ) ) end return str j3b8d4sejqnvazpfl0gk0yfaa503gli 151900 151899 2026-09-21T16:34:11Z 511KeV 8268 1 revision imported from [[:en:Module:String]] 151899 Scribunto text/plain --[[ This module is intended to provide access to basic string functions. Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either preserve or remove such whitespace. Global options ignore_errors: If set to 'true' or 1, any error condition will result in an empty string being returned rather than an error message. error_category: If an error occurs, specifies the name of a category to include with the error message. The default category is [Category:Errors reported by Module String]. no_category: If set to 'true' or 1, no category will be added if an error is generated. Unit tests for this module are available at Module:String/tests. ]] local str = {} --[[ len This function returns the length of the target string. Usage: {{#invoke:String|len|target_string|}} OR {{#invoke:String|len|s=target_string}} Parameters s: The string whose length to report If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. ]] function str.len( frame ) local new_args = str._getParameters( frame.args, {'s'} ) local s = new_args['s'] or '' return mw.ustring.len( s ) end --[[ sub This function returns a substring of the target string at specified indices. Usage: {{#invoke:String|sub|target_string|start_index|end_index}} OR {{#invoke:String|sub|s=target_string|i=start_index|j=end_index}} Parameters s: The string to return a subset of i: The first index of the substring to return, defaults to 1. j: The last index of the string to return, defaults to the last character. The first character of the string is assigned an index of 1. If either i or j is a negative value, it is interpreted the same as selecting a character by counting from the end of the string. Hence, a value of -1 is the same as selecting the last character of the string. If the requested indices are out of range for the given string, an error is reported. ]] function str.sub( frame ) local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } ) local s = new_args['s'] or '' local i = tonumber( new_args['i'] ) or 1 local j = tonumber( new_args['j'] ) or -1 local len = mw.ustring.len( s ) -- Convert negatives for range checking if i < 0 then i = len + i + 1 end if j < 0 then j = len + j + 1 end if i > len or j > len or i < 1 or j < 1 then return str._error( 'String subset index out of range' ) end if j < i then return str._error( 'String subset indices out of order' ) end return mw.ustring.sub( s, i, j ) end --[[ This function implements that features of {{str sub old}} and is kept in order to maintain these older templates. ]] function str.sublength( frame ) local i = tonumber( frame.args.i ) or 0 local len = tonumber( frame.args.len ) return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) ) end --[[ _match This function returns a substring from the source string that matches a specified pattern. It is exported for use in other modules Usage: strmatch = require("Module:String")._match sresult = strmatch( s, pattern, start, match, plain, nomatch ) Parameters s: The string to search pattern: The pattern or string to find within the string start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1. match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1. plain: A flag indicating that the pattern should be understood as plain text. Defaults to false. nomatch: If no match is found, output the "nomatch" value rather than an error. For information on constructing Lua patterns, a form of [regular expression], see: * http://www.lua.org/manual/5.1/manual.html#5.4.1 * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns ]] -- This sub-routine is exported for use in other modules function str._match( s, pattern, start, match_index, plain_flag, nomatch ) if s == '' then return str._error( 'Target string is empty' ) end if pattern == '' then return str._error( 'Pattern string is empty' ) end start = tonumber(start) or 1 if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then return str._error( 'Requested start is out of range' ) end if match_index == 0 then return str._error( 'Match index is out of range' ) end if plain_flag then pattern = str._escapePattern( pattern ) end local result if match_index == 1 then -- Find first match is simple case result = mw.ustring.match( s, pattern, start ) else if start > 1 then s = mw.ustring.sub( s, start ) end local iterator = mw.ustring.gmatch(s, pattern) if match_index > 0 then -- Forward search for w in iterator do match_index = match_index - 1 if match_index == 0 then result = w break end end else -- Reverse search local result_table = {} local count = 1 for w in iterator do result_table[count] = w count = count + 1 end result = result_table[ count + match_index ] end end if result == nil then if nomatch == nil then return str._error( 'Match not found' ) else return nomatch end else return result end end --[[ match This function returns a substring from the source string that matches a specified pattern. Usage: {{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}} OR {{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index |match=match_number|plain=plain_flag|nomatch=nomatch_output}} Parameters s: The string to search pattern: The pattern or string to find within the string start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1. match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1. plain: A flag indicating that the pattern should be understood as plain text. Defaults to false. nomatch: If no match is found, output the "nomatch" value rather than an error. If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from each string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. If the match_number or start_index are out of range for the string being queried, then this function generates an error. An error is also generated if no match is found. If one adds the parameter ignore_errors=true, then the error will be suppressed and an empty string will be returned on any failure. For information on constructing Lua patterns, a form of [regular expression], see: * http://www.lua.org/manual/5.1/manual.html#5.4.1 * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns ]] -- This is the entry point for #invoke:String|match function str.match( frame ) local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} ) local s = new_args['s'] or '' local start = tonumber( new_args['start'] ) or 1 local plain_flag = str._getBoolean( new_args['plain'] or false ) local pattern = new_args['pattern'] or '' local match_index = math.floor( tonumber(new_args['match']) or 1 ) local nomatch = new_args['nomatch'] return str._match( s, pattern, start, match_index, plain_flag, nomatch ) end --[[ pos This function returns a single character from the target string at position pos. Usage: {{#invoke:String|pos|target_string|index_value}} OR {{#invoke:String|pos|target=target_string|pos=index_value}} Parameters target: The string to search pos: The index for the character to return If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. The first character has an index value of 1. If one requests a negative value, this function will select a character by counting backwards from the end of the string. In other words pos = -1 is the same as asking for the last character. A requested value of zero, or a value greater than the length of the string returns an error. ]] function str.pos( frame ) local new_args = str._getParameters( frame.args, {'target', 'pos'} ) local target_str = new_args['target'] or '' local pos = tonumber( new_args['pos'] ) or 0 if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then return str._error( 'String index out of range' ) end return mw.ustring.sub( target_str, pos, pos ) end --[[ str_find This function duplicates the behavior of {{str_find}}, including all of its quirks. This is provided in order to support existing templates, but is NOT RECOMMENDED for new code and templates. New code is recommended to use the "find" function instead. Returns the first index in "source" that is a match to "target". Indexing is 1-based, and the function returns -1 if the "target" string is not present in "source". Important Note: If the "target" string is empty / missing, this function returns a value of "1", which is generally unexpected behavior, and must be accounted for separatetly. ]] function str.str_find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target'} ) local source_str = new_args['source'] or '' local target_str = new_args['target'] or '' if target_str == '' then return 1 end local start = mw.ustring.find( source_str, target_str, 1, true ) if start == nil then start = -1 end return start end --[[ find This function allows one to search for a target string or pattern within another string. Usage: {{#invoke:String|find|source_str|target_string|start_index|plain_flag}} OR {{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}} Parameters source: The string to search target: The string or pattern to find within source start: The index within the source string to start the search, defaults to 1 plain: Boolean flag indicating that target should be understood as plain text and not as a Lua style regular expression, defaults to true If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. This function returns the first index >= "start" where "target" can be found within "source". Indices are 1-based. If "target" is not found, then this function returns 0. If either "source" or "target" are missing / empty, this function also returns 0. This function should be safe for UTF-8 strings. ]] function str.find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } ) local source_str = new_args['source'] or '' local pattern = new_args['target'] or '' local start_pos = tonumber(new_args['start']) or 1 local plain = new_args['plain'] or true if source_str == '' or pattern == '' then return 0 end plain = str._getBoolean( plain ) local start = mw.ustring.find( source_str, pattern, start_pos, plain ) if start == nil then start = 0 end return start end --[[ replace This function allows one to replace a target string or pattern within another string. Usage: {{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}} OR {{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string| count=replacement_count|plain=plain_flag}} Parameters source: The string to search pattern: The string or pattern to find within source replace: The replacement text count: The number of occurences to replace, defaults to all. plain: Boolean flag indicating that pattern should be understood as plain text and not as a Lua style regular expression, defaults to true ]] function str.replace( frame ) local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } ) local source_str = new_args['source'] or '' local pattern = new_args['pattern'] or '' local replace = new_args['replace'] or '' local count = tonumber( new_args['count'] ) local plain = new_args['plain'] or true if source_str == '' or pattern == '' then return source_str end plain = str._getBoolean( plain ) if plain then pattern = str._escapePattern( pattern ) replace = string.gsub( replace, "%%", "%%%%" ) --Only need to escape replacement sequences. end local result if count ~= nil then result = mw.ustring.gsub( source_str, pattern, replace, count ) else result = mw.ustring.gsub( source_str, pattern, replace ) end return result end --[[ simple function to pipe string.rep to templates. ]] function str.rep( frame ) local repetitions = tonumber( frame.args[2] ) if not repetitions then return str._error( 'function rep expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' ) end return string.rep( frame.args[1] or '', repetitions ) end --[[ escapePattern This function escapes special characters from a Lua string pattern. See [1] for details on how patterns work. [1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns Usage: {{#invoke:String|escapePattern|pattern_string}} Parameters pattern_string: The pattern string to escape. ]] function str.escapePattern( frame ) local pattern_str = frame.args[1] if not pattern_str then return str._error( 'No pattern string specified' ) end local result = str._escapePattern( pattern_str ) return result end --[[ count This function counts the number of occurrences of one string in another. ]] function str.count(frame) local args = str._getParameters(frame.args, {'source', 'pattern', 'plain'}) local source = args.source or '' local pattern = args.pattern or '' local plain = str._getBoolean(args.plain or true) if plain then pattern = str._escapePattern(pattern) end local _, count = mw.ustring.gsub(source, pattern, '') return count end --[[ endswith This function determines whether a string ends with another string. ]] function str.endswith(frame) local args = str._getParameters(frame.args, {'source', 'pattern'}) local source = args.source or '' local pattern = args.pattern or '' if pattern == '' then -- All strings end with the empty string. return "yes" end if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then return "yes" else return "" end end --[[ join Join all non empty arguments together; the first argument is the separator. Usage: {{#invoke:String|join|sep|one|two|three}} ]] function str.join(frame) local args = {} local sep for _, v in ipairs( frame.args ) do if sep then if v ~= '' then table.insert(args, v) end else sep = v end end return table.concat( args, sep or '' ) end -- findpagetext returns the position of a piece of text in a page -- First positional parameter or |text is the search text -- Optional parameter |title is the page title, defaults to current page -- Optional parameter |plain is either true for plain search (default) or false for Lua pattern search -- Optional parameter |nomatch is the return value when no match is found; default is nil function str._findpagetext(args) -- process parameters local nomatch = args.nomatch or "" if nomatch == "" then nomatch = nil end -- local text = mw.text.trim(args[1] or args.text or "") if text == "" then return nil end -- local title = args.title or "" local titleobj if title == "" then titleobj = mw.title.getCurrentTitle() else titleobj = mw.title.new(title) end -- local plain = args.plain or "" if plain:sub(1, 1) == "f" then plain = false else plain = true end -- get the page content and look for 'text' - return position or nomatch local content = titleobj and titleobj:getContent() return content and mw.ustring.find(content, text, 1, plain) or nomatch end function str.findpagetext(frame) local args = frame.args local pargs = frame:getParent().args for k, v in pairs(pargs) do args[k] = v end if not (args[1] or args.text) then return nil end -- just the first value return (str._findpagetext(args)) end --[[ Helper function that populates the argument list given that user may need to use a mix of named and unnamed parameters. This is relevant because named parameters are not identical to unnamed parameters due to string trimming, and when dealing with strings we sometimes want to either preserve or remove that whitespace depending on the application. ]] function str._getParameters( frame_args, arg_list ) local new_args = {} local index = 1 local value for _, arg in ipairs( arg_list ) do value = frame_args[arg] if value == nil then value = frame_args[index] index = index + 1 end new_args[arg] = value end return new_args end --[[ Helper function to handle error messages. ]] function str._error( error_str ) local frame = mw.getCurrentFrame() local error_category = frame.args.error_category or 'Errors reported by Module String' local ignore_errors = frame.args.ignore_errors or false local no_category = frame.args.no_category or false if str._getBoolean(ignore_errors) then return '' end local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>' if error_category ~= '' and not str._getBoolean( no_category ) then error_str = '[[Category:' .. error_category .. ']]' .. error_str end return error_str end --[[ Helper Function to interpret boolean strings ]] function str._getBoolean( boolean_str ) local boolean_value if type( boolean_str ) == 'string' then boolean_str = boolean_str:lower() if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0' or boolean_str == '' then boolean_value = false else boolean_value = true end elseif type( boolean_str ) == 'boolean' then boolean_value = boolean_str else error( 'No boolean value found' ) end return boolean_value end --[[ Helper function that escapes all pattern characters so that they will be treated as plain text. ]] function str._escapePattern( pattern_str ) return ( string.gsub( pattern_str, "[%(%)%.%%%+%-%*%?%[%^%$%]]", "%%%0" ) ) end return str j3b8d4sejqnvazpfl0gk0yfaa503gli Module:Message box 828 6482 151895 83407 2025-10-19T18:19:52Z en>Izno 0 below in div mbox 151895 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 151896 151895 2026-09-21T16:34:11Z 511KeV 8268 1 revision imported from [[:en:Module:Message_box]] 151895 Scribunto text/plain require('strict') local getArgs local yesno = require('Module:Yesno') local lang = mw.language.getContentLanguage() local CONFIG_MODULE = 'Module:Message box/configuration' local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getTitleObject(...) -- Get the title object, passing the function through pcall -- in case we are over the expensive function count limit. local success, title = pcall(mw.title.new, ...) if success then return title end end local function union(t1, t2) -- Returns the union of two arrays. local vals = {} for i, v in ipairs(t1) do vals[v] = true end for i, v in ipairs(t2) do vals[v] = true end local ret = {} for k in pairs(vals) do table.insert(ret, k) end table.sort(ret) return ret end local function getArgNums(args, prefix) local nums = {} for k, v in pairs(args) do local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end -------------------------------------------------------------------------------- -- Box class definition -------------------------------------------------------------------------------- local MessageBox = {} MessageBox.__index = MessageBox function MessageBox.new(boxType, args, cfg) args = args or {} local obj = {} -- Set the title object and the namespace. obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle() -- Set the config for our box type. obj.cfg = cfg[boxType] if not obj.cfg then local ns = obj.title.namespace -- boxType is "mbox" or invalid input if args.demospace and args.demospace ~= '' then -- implement demospace parameter of mbox local demospace = string.lower(args.demospace) if DEMOSPACES[demospace] then -- use template from DEMOSPACES obj.cfg = cfg[DEMOSPACES[demospace]] elseif string.find( demospace, 'talk' ) then -- demo as a talk page obj.cfg = cfg.tmbox else -- default to ombox obj.cfg = cfg.ombox end elseif ns == 0 then obj.cfg = cfg.ambox -- main namespace elseif ns == 6 then obj.cfg = cfg.imbox -- file namespace elseif ns == 14 then obj.cfg = cfg.cmbox -- category namespace else local nsTable = mw.site.namespaces[ns] if nsTable and nsTable.isTalk then obj.cfg = cfg.tmbox -- any talk namespace else obj.cfg = cfg.ombox -- other namespaces or invalid input end end end -- Set the arguments, and remove all blank arguments except for the ones -- listed in cfg.allowBlankParams. do local newArgs = {} for k, v in pairs(args) do if v ~= '' then newArgs[k] = v end end for i, param in ipairs(obj.cfg.allowBlankParams or {}) do newArgs[param] = args[param] end obj.args = newArgs end -- Define internal data structure. obj.categories = {} obj.classes = {} -- For lazy loading of [[Module:Category handler]]. obj.hasCategories = false return setmetatable(obj, MessageBox) end function MessageBox:addCat(ns, cat, sort) if not cat then return nil end if sort then cat = string.format('[[Category:%s|%s]]', cat, sort) else cat = string.format('[[Category:%s]]', cat) end self.hasCategories = true self.categories[ns] = self.categories[ns] or {} table.insert(self.categories[ns], cat) end function MessageBox:addClass(class) if not class then return nil end table.insert(self.classes, class) end function MessageBox:setParameters() local args = self.args local cfg = self.cfg -- Get type data. self.type = args.type local typeData = cfg.types[self.type] self.invalidTypeError = cfg.showInvalidTypeError and self.type and not typeData typeData = typeData or cfg.types[cfg.default] self.typeClass = typeData.class self.typeImage = typeData.image self.typeImageNeedsLink = typeData.imageNeedsLink -- Find if the box has been wrongly substituted. self.isSubstituted = cfg.substCheck and args.subst == 'SUBST' -- Find whether we are using a small message box. self.isSmall = cfg.allowSmall and ( cfg.smallParam and args.small == cfg.smallParam or not cfg.smallParam and yesno(args.small) ) -- Set the below row. self.below = cfg.below and args.below -- Add attributes, classes and styles. self.id = args.id self.name = args.name if self.name then self:addClass('box-' .. string.gsub(self.name,' ','_')) end if yesno(args.plainlinks) ~= false then self:addClass('plainlinks') end if self.below then self:addClass('mbox-with-below') end for _, class in ipairs(cfg.classes or {}) do self:addClass(class) end if self.isSmall then self:addClass(cfg.smallClass or 'mbox-small') end self:addClass(self.typeClass) self:addClass(args.class) self.style = args.style self.attrs = args.attrs -- Set text style. self.textstyle = args.textstyle -- Set image classes. self.imageRightClass = args.imagerightclass or args.imageclass self.imageLeftClass = args.imageleftclass or args.imageclass -- Find if we are on the template page or not. This functionality is only -- used if useCollapsibleTextFields is set, or if both cfg.templateCategory -- and cfg.templateCategoryRequireName are set. self.useCollapsibleTextFields = cfg.useCollapsibleTextFields if self.useCollapsibleTextFields or cfg.templateCategory and cfg.templateCategoryRequireName then if self.name then local templateName = mw.ustring.match( self.name, '^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$' ) or self.name templateName = 'Template:' .. templateName self.templateTitle = getTitleObject(templateName) end self.isTemplatePage = self.templateTitle and mw.title.equals(self.title, self.templateTitle) end -- Process data for collapsible text fields. At the moment these are only -- used in {{ambox}}. if self.useCollapsibleTextFields then -- Get the self.issue value. if self.isSmall and args.smalltext then self.issue = args.smalltext else local sect if args.sect == '' then sect = 'This ' .. (cfg.sectionDefault or 'page') elseif type(args.sect) == 'string' then sect = 'This ' .. args.sect end local issue = args.issue issue = type(issue) == 'string' and issue ~= '' and issue or nil local text = args.text text = type(text) == 'string' and text or nil local issues = {} table.insert(issues, sect) table.insert(issues, issue) table.insert(issues, text) self.issue = table.concat(issues, ' ') end -- Get the self.talk value. local talk = args.talk -- Show talk links on the template page or template subpages if the talk -- parameter is blank. if talk == '' and self.templateTitle and ( mw.title.equals(self.templateTitle, self.title) or self.title:isSubpageOf(self.templateTitle) ) then talk = '#' elseif talk == '' then talk = nil end if talk then -- If the talk value is a talk page, make a link to that page. Else -- assume that it's a section heading, and make a link to the talk -- page of the current page with that section heading. local talkTitle = getTitleObject(talk) local talkArgIsTalkPage = true if not talkTitle or not talkTitle.isTalkPage then talkArgIsTalkPage = false talkTitle = getTitleObject( self.title.text, mw.site.namespaces[self.title.namespace].talk.id ) end if talkTitle and talkTitle.exists then local talkText if self.isSmall then local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. (talk == '#' and '' or '#') .. talk) talkText = string.format('([[%s|talk]])', talkLink) else talkText = 'Relevant discussion may be found on' if talkArgIsTalkPage then talkText = string.format( '%s [[%s|%s]].', talkText, talk, talkTitle.prefixedText ) else talkText = string.format( '%s the [[%s' .. (talk == '#' and '' or '#') .. '%s|talk page]].', talkText, talkTitle.prefixedText, talk ) end end self.talk = talkText end end -- Get other values. self.fix = args.fix ~= '' and args.fix or nil local date if args.date and args.date ~= '' then date = args.date elseif args.date == '' and self.isTemplatePage then date = lang:formatDate('F Y') end if date then self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date) end self.info = args.info if yesno(args.removalnotice) then self.removalNotice = cfg.removalNotice end end -- Set the non-collapsible text field. At the moment this is used by all box -- types other than ambox, and also by ambox when small=yes. if self.isSmall then self.text = args.smalltext or args.text else self.text = args.text end -- General image settings. self.imageCellDiv = not self.isSmall and cfg.imageCellDiv self.imageEmptyCell = cfg.imageEmptyCell -- Left image settings. local imageLeft = self.isSmall and args.smallimage or args.image if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none' or not cfg.imageCheckBlank and imageLeft ~= 'none' then self.imageLeft = imageLeft if not imageLeft then local imageSize = self.isSmall and (cfg.imageSmallSize or '30x30px') or '40x40px' self.imageLeft = string.format('[[File:%s|%s%s|alt=]]', self.typeImage or 'Information icon4.svg', imageSize, self.typeImageNeedsLink and "" or "|link=" ) end end -- Right image settings. local imageRight = self.isSmall and args.smallimageright or args.imageright if not (cfg.imageRightNone and imageRight == 'none') then self.imageRight = imageRight end -- set templatestyles self.base_templatestyles = cfg.templatestyles self.templatestyles = args.templatestyles end function MessageBox:setMainspaceCategories() local args = self.args local cfg = self.cfg if not cfg.allowMainspaceCategories then return nil end local nums = {} for _, prefix in ipairs{'cat', 'category', 'all'} do args[prefix .. '1'] = args[prefix] nums = union(nums, getArgNums(args, prefix)) end -- The following is roughly equivalent to the old {{Ambox/category}}. local date = args.date date = type(date) == 'string' and date local preposition = 'from' for _, num in ipairs(nums) do local mainCat = args['cat' .. tostring(num)] or args['category' .. tostring(num)] local allCat = args['all' .. tostring(num)] mainCat = type(mainCat) == 'string' and mainCat allCat = type(allCat) == 'string' and allCat if mainCat and date and date ~= '' then local catTitle = string.format('%s %s %s', mainCat, preposition, date) self:addCat(0, catTitle) catTitle = getTitleObject('Category:' .. catTitle) if not catTitle or not catTitle.exists then self:addCat(0, 'Articles with invalid date parameter in template') end elseif mainCat and (not date or date == '') then self:addCat(0, mainCat) end if allCat then self:addCat(0, allCat) end end end function MessageBox:setTemplateCategories() local args = self.args local cfg = self.cfg -- Add template categories. if cfg.templateCategory then if cfg.templateCategoryRequireName then if self.isTemplatePage then self:addCat(10, cfg.templateCategory) end elseif not self.title.isSubpage then self:addCat(10, cfg.templateCategory) end end -- Add template error categories. if cfg.templateErrorCategory then local templateErrorCategory = cfg.templateErrorCategory local templateCat, templateSort if not self.name and not self.title.isSubpage then templateCat = templateErrorCategory elseif self.isTemplatePage then local paramsToCheck = cfg.templateErrorParamsToCheck or {} local count = 0 for i, param in ipairs(paramsToCheck) do if not args[param] then count = count + 1 end end if count > 0 then templateCat = templateErrorCategory templateSort = tostring(count) end if self.categoryNums and #self.categoryNums > 0 then templateCat = templateErrorCategory templateSort = 'C' end end self:addCat(10, templateCat, templateSort) end end function MessageBox:setAllNamespaceCategories() -- Set categories for all namespaces. if self.invalidTypeError then local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort) end if self.isSubstituted then self:addCat('all', 'Pages with incorrectly substituted templates') end end function MessageBox:setCategories() if self.title.namespace == 0 then self:setMainspaceCategories() elseif self.title.namespace == 10 then self:setTemplateCategories() end self:setAllNamespaceCategories() end function MessageBox:renderCategories() if not self.hasCategories then -- No categories added, no need to pass them to Category handler so, -- if it was invoked, it would return the empty string. -- So we shortcut and return the empty string. return "" end -- Convert category tables to strings and pass them through -- [[Module:Category handler]]. return require('Module:Category handler')._main{ main = table.concat(self.categories[0] or {}), template = table.concat(self.categories[10] or {}), all = table.concat(self.categories.all or {}), nocat = self.args.nocat, page = self.args.page } end function MessageBox:exportDiv() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end local frame = mw.getCurrentFrame() root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.base_templatestyles }, }) -- Add support for a single custom templatestyles sheet. Undocumented as -- need should be limited and many templates using mbox are substed; we -- don't want to spread templatestyles sheets around to arbitrary places if self.templatestyles then root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.templatestyles }, }) end -- Create the box. local mbox = root:tag('div') mbox:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do mbox:addClass(class or nil) end mbox :cssText(self.style or nil) if self.attrs then mbox:attr(self.attrs) end local flex_container if self.below then -- we need to wrap the flex components (`image(right)` and `text`) in their -- own container div to support the `below` parameter flex_container = mw.html.create('div') flex_container:addClass('mbox-flex') else -- the mbox itself is the parent, so we need no HTML flex_container flex_container = mw.html.create() end -- Add the left-hand image. if self.imageLeft then local imageLeftCell = flex_container:tag('div'):addClass('mbox-image') imageLeftCell :addClass(self.imageLeftClass) :wikitext(self.imageLeft or nil) end -- Add the text. local textCell = flex_container:tag('div'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('span') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = flex_container:tag('div'):addClass('mbox-imageright') imageRightCell :addClass(self.imageRightClass) :wikitext(self.imageRight or nil) end mbox:node(flex_container) -- Add the below row. if self.below then mbox:tag('div') :addClass('mbox-text mbox-below') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :addClass('mbox-invalid-type') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end function MessageBox:export() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end local frame = mw.getCurrentFrame() root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.base_templatestyles }, }) -- Add support for a single custom templatestyles sheet. Undocumented as -- need should be limited and many templates using mbox are substed; we -- don't want to spread templatestyles sheets around to arbitrary places if self.templatestyles then root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.templatestyles }, }) end -- Create the box table. local boxTable = root:tag('table') boxTable:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do boxTable:addClass(class or nil) end boxTable :cssText(self.style or nil) :attr('role', 'presentation') if self.attrs then boxTable:attr(self.attrs) end -- Add the left-hand image. local row = boxTable:tag('tr') if self.imageLeft then local imageLeftCell = row:tag('td'):addClass('mbox-image') if self.imageCellDiv then -- If we are using a div, redefine imageLeftCell so that the image -- is inside it. Divs use style="width: 52px;", which limits the -- image width to 52px. If any images in a div are wider than that, -- they may overlap with the text or cause other display problems. imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div') end imageLeftCell :addClass(self.imageLeftClass) :wikitext(self.imageLeft or nil) elseif self.imageEmptyCell then -- Some message boxes define an empty cell if no image is specified, and -- some don't. The old template code in templates where empty cells are -- specified gives the following hint: "No image. Cell with some width -- or padding necessary for text cell to have 100% width." row:tag('td') :addClass('mbox-empty-cell') end -- Add the text. local textCell = row:tag('td'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('span') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = row:tag('td'):addClass('mbox-imageright') if self.imageCellDiv then -- If we are using a div, redefine imageRightCell so that the image -- is inside it. imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div') end imageRightCell :addClass(self.imageRightClass) :wikitext(self.imageRight or nil) end -- Add the below row. if self.below then boxTable:tag('tr') :tag('td') :attr('colspan', self.imageRight and '3' or '2') :addClass('mbox-text') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :addClass('mbox-invalid-type') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p, mt = {}, {} function p._exportClasses() -- For testing. return { MessageBox = MessageBox } end function p.main(boxType, args, cfgTables) local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE)) box:setParameters() box:setCategories() -- DIV MIGRATION CONDITIONAL if box.cfg.div_structure then return box:exportDiv() end -- END DIV MIGRATION CONDITIONAL return box:export() end function mt.__index(t, k) return function (frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return t.main(k, getArgs(frame, {trim = false, removeBlanks = false})) end end return setmetatable(p, mt) ocboyo877qnpqum2b9fyiquh72vukqa Module:Message box/configuration 828 6486 151897 85509 2025-10-19T18:19:49Z en>Izno 0 div imbox 151897 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 151898 151897 2026-09-21T16:34:11Z 511KeV 8268 1 revision imported from [[:en:Module:Message_box/configuration]] 151897 Scribunto text/plain -------------------------------------------------------------------------------- -- Message box configuration -- -- -- -- This module contains configuration data for [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageSmallSize = '20x20px', imageCellDiv = true, useCollapsibleTextFields = true, imageRightNone = true, sectionDefault = 'article', allowMainspaceCategories = true, templateCategory = 'Article message templates', templateCategoryRequireName = true, templateErrorCategory = 'Article message templates with missing parameters', templateErrorParamsToCheck = {'issue', 'fix', 'subst'}, removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this message]]</small>', templatestyles = 'Module:Message box/ambox.css' }, cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true, templatestyles = 'Module:Message box/cmbox.css', div_structure = true, }, fmbox = { types = { warning = { class = 'fmbox-warning', image = 'Ambox warning pn.svg' }, editnotice = { class = 'fmbox-editnotice', image = 'Information icon4.svg' }, system = { class = 'fmbox-system', image = 'Information icon4.svg' } }, default = 'system', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false, templatestyles = 'Module:Message box/fmbox.css', div_structure = true, }, imbox = { types = { speedy = { class = 'imbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'imbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'imbox-content', image = 'Ambox important.svg' }, style = { class = 'imbox-style', image = 'Edit-clear.svg' }, move = { class = 'imbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'imbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, license = { class = 'imbox-license licensetpl', image = 'Imbox-license.svg' }, ["license-related"] = { class = 'imbox-license', image = 'Imbox-license.svg' }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg', imageNeedsLink = true }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategory = 'File message boxes', templatestyles = 'Module:Message box/imbox.css', div_structure = true, }, ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, allowSmall = true, imageEmptyCell = true, imageRightNone = true, templatestyles = 'Module:Message box/ombox.css' }, tmbox = { types = { speedy = { class = 'tmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'tmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'tmbox-content', image = 'Ambox important.svg' }, style = { class = 'tmbox-style', image = 'Edit-clear.svg' }, move = { class = 'tmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'tmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'tmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'tmbox'}, allowSmall = true, imageRightNone = true, imageEmptyCell = true, templateCategory = 'Talk message boxes', templatestyles = 'Module:Message box/tmbox.css' } } p36hrbxjy99m7clj64lhlint2en3bo0 فرما:Template link 10 6533 151883 38487 2025-01-21T19:19:39Z en>Ahecht 0 Reduce [[WP:PEIS]] 151883 wikitext text/x-wiki <span class="nowrap">&#123;&#123;</span>[[Template:{{{1}}}|{{{1}}}]]<span class="nowrap">&#125;&#125;</span><noinclude> {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> kkhg4xclyf9r0bcl7ypdd0yuh41mfu9 151884 151883 2026-09-21T16:17:43Z 511KeV 8268 1 revision imported from [[:en:Template:Template_link]]: Needed Locally 151883 wikitext text/x-wiki <span class="nowrap">&#123;&#123;</span>[[Template:{{{1}}}|{{{1}}}]]<span class="nowrap">&#125;&#125;</span><noinclude> {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> kkhg4xclyf9r0bcl7ypdd0yuh41mfu9 رُکُن:511KeV 2 6535 151871 141652 2026-09-21T14:32:18Z 511KeV 8268 /* */ 151871 wikitext text/x-wiki {{ImageStackPopup |start = 177 |list = User:Doc_James/Appendicitis_CT#medical |caption = [[CT scan]] showing acute appendicitis |title = |file = [[File:Appendicitis_(CT_angiogram)_(Radiopaedia_154713-127660_Axial_1).jpg|link=|thumb|upright=1.3|CT scan showing acute appendicitis]] }} {{کیلَنڑر}} بہٕ چھُس صٲرِف '''511KeV'''، مےٚ ووت یَتھ وِکی پؠٹھ واریاہ کال کٲم کَران۔ مٚے چھُ کٲشرِ زَبانہِ ہُنٛد سؠٹھا لول، تہٕ چھُس یَژھان کٲشُر مُکَمَل پٲٹھؠ وَرتاوُن تہٕ باقیَن لوٗکَن تام واتٕناوُن. از چھِ اَلہٕ پَلہٕ 50 فی صد کھوتہٕ زیٛادٕ کٲشِر لوٗکھ باقی زَبانہٕ استِمال کَران، یُس زَنہٕ غلط چھُنہٕ، مَگر باقی زَبان وَرتاونَس سٟتؠ سٟتؠ چھُ ایسہٕ پؠٹھ فرض زِ أس بَرو پَنہٕ ماجہِ زؠوِ لول. اَکھ کٲشُر شٲیِر چھُ وَنان: {{Randomquote}} بہِ چھُس اَکھ [[ریڈیالجی]] طٲلبہِ عٔلِم تہٕ چھُ عام طور طِبی مَضموٗن لیٚکھان. بہٕ چھُس یَتھ وِکیٖپیٖڈیاہَس پؠٹھ اِنتِظٲمؠ جَمٲژ ہُنٛد رُکُن مَطلب بہٕ چھُس ہیکان تِم کامہِ اَنجام دِتھ یِم نہٕ عام صٲرِف ہیکَن کٔرِتھ مِثال، صَفہٕ مِٹٲوِتھ رٲچھؠ کٔرِتھ تہٕ باقی کامہِ اَنجام دِتھ۔ اَگر تُہؠ چھِو کانٛہہ یِژھ کٲم تیلہِ کٔرِو [[رُکُن کَتھ:511KeV|کَتھ صَفَس]] پؠٹھ اَمِیُک اِظہار. {{رُکُن:Uhaas bot/last7}} {{Year article header|1999}} {{calendar|lk=on|show_year=on|float=left|month={{CURRENTMONTH}}|lk_suff_mnext=on|week_colour=#228b57|wknum_colour=#2e8b57|link=on}} {{رُکُن:511KeV/articles|2334}} == اَہَم لِنکہٕ == *[[Special:ContentTranslation|باقٕے زَبانو پؠٹھ کٲشِرس مَنٛز تَرجَمہٕ کَرنہٕ خٲطرٕ آلہٕ]] * [[مَدَتھ:تَعارُف|وِکیٖپیٖڈیاہُک تَعارُف]] == تۄہہِ چھا پَتا == {{Random subpage|وِکیٖپیٖڈیا:تۄہہِ چھا پَتا/کانٛہہ تہِ|1|2|3|4|5}} ==test == {{فرما:Kashmir Valley}} {{فرما:SelectedAnniv}} "اگرچہ کیٚنٛہہ پاسن منٛز ہیٚکہِ سٲنؠ مہارت محدوٗد ٲسِتھ، مَگر یمہٕ کَتھ باتھ سٟتؠ گوو اسہٕ منٛز تحریکس اندر ملکیت تہٕ اہمیتُک احساس پٲدٕ ، یمہٕ سٟتؠ یتہٕ صحیٖح معنن منٛز قدر ہُنٛداحساس چھُ گژھان ۔" 4lafj9h881uazxjtnlg12mfdd3u0g0x 151873 151871 2026-09-21T14:34:25Z 511KeV 8268 /* */ Add 151873 wikitext text/x-wiki {{ImageStackPopup |start = 177 |list = User:511KeV/Appendicitis_CT#medical |caption = [[CT scan]] showing acute appendicitis |title = |file = [[File:Appendicitis_(CT_angiogram)_(Radiopaedia_154713-127660_Axial_1).jpg|link=|thumb|upright=1.3|CT scan showing acute appendicitis]] }} {{کیلَنڑر}} بہٕ چھُس صٲرِف '''511KeV'''، مےٚ ووت یَتھ وِکی پؠٹھ واریاہ کال کٲم کَران۔ مٚے چھُ کٲشرِ زَبانہِ ہُنٛد سؠٹھا لول، تہٕ چھُس یَژھان کٲشُر مُکَمَل پٲٹھؠ وَرتاوُن تہٕ باقیَن لوٗکَن تام واتٕناوُن. از چھِ اَلہٕ پَلہٕ 50 فی صد کھوتہٕ زیٛادٕ کٲشِر لوٗکھ باقی زَبانہٕ استِمال کَران، یُس زَنہٕ غلط چھُنہٕ، مَگر باقی زَبان وَرتاونَس سٟتؠ سٟتؠ چھُ ایسہٕ پؠٹھ فرض زِ أس بَرو پَنہٕ ماجہِ زؠوِ لول. اَکھ کٲشُر شٲیِر چھُ وَنان: {{Randomquote}} بہِ چھُس اَکھ [[ریڈیالجی]] طٲلبہِ عٔلِم تہٕ چھُ عام طور طِبی مَضموٗن لیٚکھان. بہٕ چھُس یَتھ وِکیٖپیٖڈیاہَس پؠٹھ اِنتِظٲمؠ جَمٲژ ہُنٛد رُکُن مَطلب بہٕ چھُس ہیکان تِم کامہِ اَنجام دِتھ یِم نہٕ عام صٲرِف ہیکَن کٔرِتھ مِثال، صَفہٕ مِٹٲوِتھ رٲچھؠ کٔرِتھ تہٕ باقی کامہِ اَنجام دِتھ۔ اَگر تُہؠ چھِو کانٛہہ یِژھ کٲم تیلہِ کٔرِو [[رُکُن کَتھ:511KeV|کَتھ صَفَس]] پؠٹھ اَمِیُک اِظہار. {{رُکُن:Uhaas bot/last7}} {{Year article header|1999}} {{calendar|lk=on|show_year=on|float=left|month={{CURRENTMONTH}}|lk_suff_mnext=on|week_colour=#228b57|wknum_colour=#2e8b57|link=on}} {{رُکُن:511KeV/articles|2334}} == اَہَم لِنکہٕ == *[[Special:ContentTranslation|باقٕے زَبانو پؠٹھ کٲشِرس مَنٛز تَرجَمہٕ کَرنہٕ خٲطرٕ آلہٕ]] * [[مَدَتھ:تَعارُف|وِکیٖپیٖڈیاہُک تَعارُف]] == تۄہہِ چھا پَتا == {{Random subpage|وِکیٖپیٖڈیا:تۄہہِ چھا پَتا/کانٛہہ تہِ|1|2|3|4|5}} ==test == {{فرما:Kashmir Valley}} {{فرما:SelectedAnniv}} "اگرچہ کیٚنٛہہ پاسن منٛز ہیٚکہِ سٲنؠ مہارت محدوٗد ٲسِتھ، مَگر یمہٕ کَتھ باتھ سٟتؠ گوو اسہٕ منٛز تحریکس اندر ملکیت تہٕ اہمیتُک احساس پٲدٕ ، یمہٕ سٟتؠ یتہٕ صحیٖح معنن منٛز قدر ہُنٛداحساس چھُ گژھان ۔" sw3ne001jglp0u8ak2mosrl7w9ecrei 151919 151873 2026-09-21T16:36:07Z 511KeV 8268 151919 wikitext text/x-wiki {{ImageStackPopup |start = 177 |list = User:511KeV/Appendicitis_CT#medical |caption = [[CT scan]] showing acute appendicitis |title = |file = [[File:Appendicitis_(CT_angiogram)_(Radiopaedia_154713-127660_Axial_1).jpg|link=|thumb|upright=1.3|سی ٹی سیکینس پؠٹھ پَر أنٛدرَم]] }} {{کیلَنڑر}} بہٕ چھُس صٲرِف '''511KeV'''، مےٚ ووت یَتھ وِکی پؠٹھ واریاہ کال کٲم کَران۔ مٚے چھُ کٲشرِ زَبانہِ ہُنٛد سؠٹھا لول، تہٕ چھُس یَژھان کٲشُر مُکَمَل پٲٹھؠ وَرتاوُن تہٕ باقیَن لوٗکَن تام واتٕناوُن. از چھِ اَلہٕ پَلہٕ 50 فی صد کھوتہٕ زیٛادٕ کٲشِر لوٗکھ باقی زَبانہٕ استِمال کَران، یُس زَنہٕ غلط چھُنہٕ، مَگر باقی زَبان وَرتاونَس سٟتؠ سٟتؠ چھُ ایسہٕ پؠٹھ فرض زِ أس بَرو پَنہٕ ماجہِ زؠوِ لول. اَکھ کٲشُر شٲیِر چھُ وَنان: {{Randomquote}} بہِ چھُس اَکھ [[ریڈیالجی]] طٲلبہِ عٔلِم تہٕ چھُ عام طور طِبی مَضموٗن لیٚکھان. بہٕ چھُس یَتھ وِکیٖپیٖڈیاہَس پؠٹھ اِنتِظٲمؠ جَمٲژ ہُنٛد رُکُن مَطلب بہٕ چھُس ہیکان تِم کامہِ اَنجام دِتھ یِم نہٕ عام صٲرِف ہیکَن کٔرِتھ مِثال، صَفہٕ مِٹٲوِتھ رٲچھؠ کٔرِتھ تہٕ باقی کامہِ اَنجام دِتھ۔ اَگر تُہؠ چھِو کانٛہہ یِژھ کٲم تیلہِ کٔرِو [[رُکُن کَتھ:511KeV|کَتھ صَفَس]] پؠٹھ اَمِیُک اِظہار. {{رُکُن:Uhaas bot/last7}} {{Year article header|1999}} {{calendar|lk=on|show_year=on|float=left|month={{CURRENTMONTH}}|lk_suff_mnext=on|week_colour=#228b57|wknum_colour=#2e8b57|link=on}} {{رُکُن:511KeV/articles|2334}} == اَہَم لِنکہٕ == *[[Special:ContentTranslation|باقٕے زَبانو پؠٹھ کٲشِرس مَنٛز تَرجَمہٕ کَرنہٕ خٲطرٕ آلہٕ]] * [[مَدَتھ:تَعارُف|وِکیٖپیٖڈیاہُک تَعارُف]] == تۄہہِ چھا پَتا == {{Random subpage|وِکیٖپیٖڈیا:تۄہہِ چھا پَتا/کانٛہہ تہِ|1|2|3|4|5}} ==test == {{فرما:Kashmir Valley}} {{فرما:SelectedAnniv}} "اگرچہ کیٚنٛہہ پاسن منٛز ہیٚکہِ سٲنؠ مہارت محدوٗد ٲسِتھ، مَگر یمہٕ کَتھ باتھ سٟتؠ گوو اسہٕ منٛز تحریکس اندر ملکیت تہٕ اہمیتُک احساس پٲدٕ ، یمہٕ سٟتؠ یتہٕ صحیٖح معنن منٛز قدر ہُنٛداحساس چھُ گژھان ۔" jbc6p17loej7gpgxqseg3mapxs503el 151921 151919 2026-09-21T16:37:35Z 511KeV 8268 151921 wikitext text/x-wiki {{ImageStackPopup |start = 177 |list = User:511KeV/Appendicitis_CT#medical |caption = [[CT scan]] showing acute appendicitis |title = |file = [[File:Appendicitis_(CT_angiogram)_(Radiopaedia_154713-127660_Axial_1).jpg|link=|thumb|upright=1.3|سی ٹی سیکینس پؠٹھ پَر أنٛدرَم]] }} {{کیلَنڑر}} بہٕ چھُس صٲرِف '''511KeV'''، مےٚ ووت یَتھ وِکی پؠٹھ واریاہ کال کٲم کَران۔ مٚے چھُ کٲشرِ زَبانہِ ہُنٛد سؠٹھا لول، تہٕ چھُس یَژھان کٲشُر مُکَمَل پٲٹھؠ وَرتاوُن تہٕ باقیَن لوٗکَن تام واتٕناوُن. از چھِ اَلہٕ پَلہٕ 50 فی صد کھوتہٕ زیٛادٕ کٲشِر لوٗکھ باقی زَبانہٕ استِمال کَران، یُس زَنہٕ غلط چھُنہٕ، مَگر باقی زَبان وَرتاونَس سٟتؠ سٟتؠ چھُ ایسہٕ پؠٹھ فرض زِ أس بَرو پَنہٕ ماجہِ زؠوِ لول. اَکھ کٲشُر شٲیِر چھُ وَنان: {{Randomquote}} بہِ چھُس اَکھ [[ریڈیالجی]] طٲلبہِ عٔلِم تہٕ چھُ عام طور طِبی مَضموٗن لیٚکھان. بہٕ چھُس یَتھ وِکیٖپیٖڈیاہَس پؠٹھ اِنتِظٲمؠ جَمٲژ ہُنٛد رُکُن مَطلب بہٕ چھُس ہیکان تِم کامہِ اَنجام دِتھ یِم نہٕ عام صٲرِف ہیکَن کٔرِتھ مِثال، صَفہٕ مِٹٲوِتھ رٲچھؠ کٔرِتھ تہٕ باقی کامہِ اَنجام دِتھ۔ اَگر تُہؠ چھِو کانٛہہ یِژھ کٲم تیلہِ کٔرِو [[رُکُن کَتھ:511KeV|کَتھ صَفَس]] پؠٹھ اَمِیُک اِظہار. == تۄہہِ چھا پَتا == {{Random subpage|وِکیٖپیٖڈیا:تۄہہِ چھا پَتا/کانٛہہ تہِ|1|2|3|4|5}} "اگرچہ کیٚنٛہہ پاسن منٛز ہیٚکہِ سٲنؠ مہارت محدوٗد ٲسِتھ، مَگر یمہٕ کَتھ باتھ سٟتؠ گوو اسہٕ منٛز تحریکس اندر ملکیت تہٕ اہمیتُک احساس پٲدٕ ، یمہٕ سٟتؠ یتہٕ صحیٖح معنن منٛز قدر ہُنٛداحساس چھُ گژھان ۔" pat785taahrze6zy188hs9fho7bra5r Module:List 828 6560 151901 77499 2026-09-12T00:43:13Z en>JJMC89 0 move was reverted 151901 Scribunto text/plain local libUtil = require('libraryUtil') local checkType = libUtil.checkType local mTableTools = require('Module:TableTools') local p = {} local listTypes = { ['bulleted'] = true, ['unbulleted'] = true, ['horizontal'] = true, ['ordered'] = true, ['horizontal_ordered'] = true } function p.makeListData(listType, args) -- Constructs a data table to be passed to p.renderList. local data = {} -- Classes and TemplateStyles data.classes = {} data.templatestyles = '' if listType == 'horizontal' or listType == 'horizontal_ordered' then table.insert(data.classes, 'hlist') data.templatestyles = mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Hlist/styles.css' } } elseif listType == 'unbulleted' then table.insert(data.classes, 'plainlist') data.templatestyles = mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Plainlist/styles.css' } } end table.insert(data.classes, args.class) -- Main div style data.style = args.style -- Indent for horizontal lists if listType == 'horizontal' or listType == 'horizontal_ordered' then local indent = tonumber(args.indent) indent = indent and indent * 1.6 or 0 if indent > 0 then data.marginLeft = indent .. 'em' end end -- List style types for ordered lists -- This could be "1, 2, 3", "a, b, c", or a number of others. The list style -- type is either set by the "type" attribute or the "list-style-type" CSS -- property. if listType == 'ordered' or listType == 'horizontal_ordered' then data.listStyleType = args.list_style_type or args['list-style-type'] data.type = args['type'] -- Detect invalid type attributes and attempt to convert them to -- list-style-type CSS properties. if data.type and not data.listStyleType and not tostring(data.type):find('^%s*[1AaIi]%s*$') then data.listStyleType = data.type data.type = nil end end -- List tag type if listType == 'ordered' or listType == 'horizontal_ordered' then data.listTag = 'ol' else data.listTag = 'ul' end -- Start number for ordered lists data.start = args.start if listType == 'horizontal_ordered' then -- Apply fix to get start numbers working with horizontal ordered lists. local startNum = tonumber(data.start) if startNum then data.counterReset = 'listitem ' .. tostring(startNum - 1) end end -- List style -- ul_style and ol_style are included for backwards compatibility. No -- distinction is made for ordered or unordered lists. data.listStyle = args.list_style -- List items -- li_style is included for backwards compatibility. item_style was included -- to be easier to understand for non-coders. data.itemStyle = args.item_style or args.li_style data.items = {} for _, num in ipairs(mTableTools.numKeys(args)) do local item = {} item.content = args[num] item.style = args['item' .. tostring(num) .. '_style'] or args['item_style' .. tostring(num)] item.value = args['item' .. tostring(num) .. '_value'] or args['item_value' .. tostring(num)] table.insert(data.items, item) end return data end function p.renderList(data) -- Renders the list HTML. -- Return the blank string if there are no list items. if type(data.items) ~= 'table' or #data.items < 1 then return '' end -- Render the main div tag. local root = mw.html.create('div') for _, class in ipairs(data.classes or {}) do root:addClass(class) end root:css{['margin-left'] = data.marginLeft} if data.style then root:cssText(data.style) end -- Render the list tag. local list = root:tag(data.listTag or 'ul') list :attr{start = data.start, type = data.type} :css{ ['counter-reset'] = data.counterReset, ['list-style-type'] = data.listStyleType } if data.listStyle then list:cssText(data.listStyle) end -- Render the list items for _, t in ipairs(data.items or {}) do local item = list:tag('li') if data.itemStyle then item:cssText(data.itemStyle) end if t.style then item:cssText(t.style) end item :attr{value = t.value} :wikitext(t.content) end return data.templatestyles .. tostring(root) end function p.makeList(listType, args) if not listType or not listTypes[listType] then error(string.format( "bad argument #1 to 'makeList' ('%s' is not a valid list type)", tostring(listType) ), 2) end checkType('makeList', 2, args, 'table') local data = p.makeListData(listType, args) local list = p.renderList(data) return list end for listType in pairs(listTypes) do p[listType] = function (frame) local mArguments = require('Module:Arguments') local origArgs = mArguments.getArgs(frame, { frameOnly = ((frame and frame.args and frame.args.frameonly or '') ~= ''), valueFunc = function (key, value) if not value or not mw.ustring.find(value, '%S') then return nil end if mw.ustring.find(value, '^%s*[%*#;:]') then return value else return value:match('^%s*(.-)%s*$') end return nil end }) -- Copy all the arguments to a new table, for faster indexing. local args = {} for k, v in pairs(origArgs) do args[k] = v end return p.makeList(listType, args) end end return p lyheh2t5yqhjixmg8vlktt3t9sq2ewi 151902 151901 2026-09-21T16:34:11Z 511KeV 8268 1 revision imported from [[:en:Module:List]] 151901 Scribunto text/plain local libUtil = require('libraryUtil') local checkType = libUtil.checkType local mTableTools = require('Module:TableTools') local p = {} local listTypes = { ['bulleted'] = true, ['unbulleted'] = true, ['horizontal'] = true, ['ordered'] = true, ['horizontal_ordered'] = true } function p.makeListData(listType, args) -- Constructs a data table to be passed to p.renderList. local data = {} -- Classes and TemplateStyles data.classes = {} data.templatestyles = '' if listType == 'horizontal' or listType == 'horizontal_ordered' then table.insert(data.classes, 'hlist') data.templatestyles = mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Hlist/styles.css' } } elseif listType == 'unbulleted' then table.insert(data.classes, 'plainlist') data.templatestyles = mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Plainlist/styles.css' } } end table.insert(data.classes, args.class) -- Main div style data.style = args.style -- Indent for horizontal lists if listType == 'horizontal' or listType == 'horizontal_ordered' then local indent = tonumber(args.indent) indent = indent and indent * 1.6 or 0 if indent > 0 then data.marginLeft = indent .. 'em' end end -- List style types for ordered lists -- This could be "1, 2, 3", "a, b, c", or a number of others. The list style -- type is either set by the "type" attribute or the "list-style-type" CSS -- property. if listType == 'ordered' or listType == 'horizontal_ordered' then data.listStyleType = args.list_style_type or args['list-style-type'] data.type = args['type'] -- Detect invalid type attributes and attempt to convert them to -- list-style-type CSS properties. if data.type and not data.listStyleType and not tostring(data.type):find('^%s*[1AaIi]%s*$') then data.listStyleType = data.type data.type = nil end end -- List tag type if listType == 'ordered' or listType == 'horizontal_ordered' then data.listTag = 'ol' else data.listTag = 'ul' end -- Start number for ordered lists data.start = args.start if listType == 'horizontal_ordered' then -- Apply fix to get start numbers working with horizontal ordered lists. local startNum = tonumber(data.start) if startNum then data.counterReset = 'listitem ' .. tostring(startNum - 1) end end -- List style -- ul_style and ol_style are included for backwards compatibility. No -- distinction is made for ordered or unordered lists. data.listStyle = args.list_style -- List items -- li_style is included for backwards compatibility. item_style was included -- to be easier to understand for non-coders. data.itemStyle = args.item_style or args.li_style data.items = {} for _, num in ipairs(mTableTools.numKeys(args)) do local item = {} item.content = args[num] item.style = args['item' .. tostring(num) .. '_style'] or args['item_style' .. tostring(num)] item.value = args['item' .. tostring(num) .. '_value'] or args['item_value' .. tostring(num)] table.insert(data.items, item) end return data end function p.renderList(data) -- Renders the list HTML. -- Return the blank string if there are no list items. if type(data.items) ~= 'table' or #data.items < 1 then return '' end -- Render the main div tag. local root = mw.html.create('div') for _, class in ipairs(data.classes or {}) do root:addClass(class) end root:css{['margin-left'] = data.marginLeft} if data.style then root:cssText(data.style) end -- Render the list tag. local list = root:tag(data.listTag or 'ul') list :attr{start = data.start, type = data.type} :css{ ['counter-reset'] = data.counterReset, ['list-style-type'] = data.listStyleType } if data.listStyle then list:cssText(data.listStyle) end -- Render the list items for _, t in ipairs(data.items or {}) do local item = list:tag('li') if data.itemStyle then item:cssText(data.itemStyle) end if t.style then item:cssText(t.style) end item :attr{value = t.value} :wikitext(t.content) end return data.templatestyles .. tostring(root) end function p.makeList(listType, args) if not listType or not listTypes[listType] then error(string.format( "bad argument #1 to 'makeList' ('%s' is not a valid list type)", tostring(listType) ), 2) end checkType('makeList', 2, args, 'table') local data = p.makeListData(listType, args) local list = p.renderList(data) return list end for listType in pairs(listTypes) do p[listType] = function (frame) local mArguments = require('Module:Arguments') local origArgs = mArguments.getArgs(frame, { frameOnly = ((frame and frame.args and frame.args.frameonly or '') ~= ''), valueFunc = function (key, value) if not value or not mw.ustring.find(value, '%S') then return nil end if mw.ustring.find(value, '^%s*[%*#;:]') then return value else return value:match('^%s*(.-)%s*$') end return nil end }) -- Copy all the arguments to a new table, for faster indexing. local args = {} for k, v in pairs(origArgs) do args[k] = v end return p.makeList(listType, args) end end return p lyheh2t5yqhjixmg8vlktt3t9sq2ewi فرما:Documentation subpage 10 6641 151907 77541 2026-07-26T21:53:49Z en>Jlwoodwa 0 [[mw:Help:Magic words#EXPECTED_UNCONNECTED_PAGE|__EXPECTED_UNCONNECTED_PAGE__]] 151907 wikitext text/x-wiki <includeonly><!-- -->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}} | <!--(this template has been transcluded on a /doc or /{{{override}}} page)--> </includeonly><!-- -->{{#ifeq:{{{doc-notice|show}}} |show | {{Mbox | type = notice | style = margin-bottom:1.0em; | image = [[File:Edit-copy green.svg|40px|alt=icon]] | text = {{strong|This is a [[Wikipedia:Template documentation|documentation subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}<br />It may contain usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}. }} }}<!-- -->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!-- --><includeonly>__EXPECTED_UNCONNECTED_PAGE__</includeonly><!-- -->{{#if:{{{nocat|}}}{{{inhibit|}}}|<!--(don't categorize)--> |<includeonly><!-- -->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}} | [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]] | [[Category:Documentation subpages without corresponding pages]] }}<!-- --></includeonly> }}<!-- (completing initial #ifeq: at start of template:) --><includeonly> | <!--(this template has not been transcluded on a /doc or /{{{override}}} page)--> }}<!-- --></includeonly><noinclude>{{Documentation}}</noinclude> iwz7dreef73y68fx96yxyj3ry6l1x58 151908 151907 2026-09-21T16:34:12Z 511KeV 8268 1 revision imported from [[:en:Template:Documentation_subpage]] 151907 wikitext text/x-wiki <includeonly><!-- -->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}} | <!--(this template has been transcluded on a /doc or /{{{override}}} page)--> </includeonly><!-- -->{{#ifeq:{{{doc-notice|show}}} |show | {{Mbox | type = notice | style = margin-bottom:1.0em; | image = [[File:Edit-copy green.svg|40px|alt=icon]] | text = {{strong|This is a [[Wikipedia:Template documentation|documentation subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}<br />It may contain usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}. }} }}<!-- -->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!-- --><includeonly>__EXPECTED_UNCONNECTED_PAGE__</includeonly><!-- -->{{#if:{{{nocat|}}}{{{inhibit|}}}|<!--(don't categorize)--> |<includeonly><!-- -->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}} | [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]] | [[Category:Documentation subpages without corresponding pages]] }}<!-- --></includeonly> }}<!-- (completing initial #ifeq: at start of template:) --><includeonly> | <!--(this template has not been transcluded on a /doc or /{{{override}}} page)--> }}<!-- --></includeonly><noinclude>{{Documentation}}</noinclude> iwz7dreef73y68fx96yxyj3ry6l1x58 فرما:Lua 10 6644 151911 69687 2026-07-25T03:53:06Z en>Zackmann08 0 [[Wikipedia:Templates for discussion/Log/2026 July 24#Template:Lua]] closed as Withdrawn ([[WP:XFDC#4.0.16|XFDcloser]]) 36116 wikitext text/x-wiki <includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude> {{Lua|Module:Lua banner}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> pnmjp3f3fl321yf2jpg5syebi412n7b 151912 151911 2026-09-21T16:34:12Z 511KeV 8268 1 revision imported from [[:en:Template:Lua]] 36116 wikitext text/x-wiki <includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude> {{Lua|Module:Lua banner}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> pnmjp3f3fl321yf2jpg5syebi412n7b فرما:Sandbox other 10 6648 151905 36125 2025-08-05T04:52:35Z en>Theknightwho 0 Make substable. 151905 wikitext text/x-wiki <onlyinclude>{{safesubst:<noinclude/>#if:{{safesubst:<noinclude/>#ifeq:{{safesubst:<noinclude/>#invoke:String|sublength|s={{safesubst:<noinclude/>SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{safesubst:<noinclude/>#ifeq:{{safesubst:<noinclude/>SUBPAGENAME}}|doc|1}}{{safesubst:<noinclude/>#invoke:String|match|{{safesubst:<noinclude/>PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}</onlyinclude><!-- -->{{documentation}} qglmfuqapld2v7m2c8ehvpm6ympoljf 151906 151905 2026-09-21T16:34:11Z 511KeV 8268 1 revision imported from [[:en:Template:Sandbox_other]] 151905 wikitext text/x-wiki <onlyinclude>{{safesubst:<noinclude/>#if:{{safesubst:<noinclude/>#ifeq:{{safesubst:<noinclude/>#invoke:String|sublength|s={{safesubst:<noinclude/>SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{safesubst:<noinclude/>#ifeq:{{safesubst:<noinclude/>SUBPAGENAME}}|doc|1}}{{safesubst:<noinclude/>#invoke:String|match|{{safesubst:<noinclude/>PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}</onlyinclude><!-- -->{{documentation}} qglmfuqapld2v7m2c8ehvpm6ympoljf Module:Documentation 828 6655 151885 97849 2026-06-18T22:38:35Z en>Stjn 0 as a hotfix for [[phab:T268900]] issue, feel free to replace with some solution restoring separate [] at a later point if needed 151885 Scribunto text/plain -- This module implements {{documentation}}. -- Get required modules. local getArgs = require('Module:Arguments').getArgs -- Get the config table. local cfg = mw.loadData('Module:Documentation/config') local p = {} -- Often-used functions. local ugsub = mw.ustring.gsub local format = mw.ustring.format ---------------------------------------------------------------------------- -- Helper functions -- -- These are defined as local functions, but are made available in the p -- table for testing purposes. ---------------------------------------------------------------------------- local function message(cfgKey, valArray, expectType) --[[ -- Gets a message from the cfg table and formats it if appropriate. -- The function raises an error if the value from the cfg table is not -- of the type expectType. The default type for expectType is 'string'. -- If the table valArray is present, strings such as $1, $2 etc. in the -- message are substituted with values from the table keys [1], [2] etc. -- For example, if the message "foo-message" had the value 'Foo $2 bar $1.', -- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz." --]] local msg = cfg[cfgKey] expectType = expectType or 'string' if type(msg) ~= expectType then error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2) end if not valArray then return msg end local function getMessageVal(match) match = tonumber(match) return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4) end return ugsub(msg, '$([1-9][0-9]*)', getMessageVal) end p.message = message local function makeWikilink(page, display) if display then return format('[[%s|%s]]', page, display) else return format('[[%s]]', page) end end p.makeWikilink = makeWikilink local function makeCategoryLink(cat, sort) local catns = mw.site.namespaces[14].name return makeWikilink(catns .. ':' .. cat, sort) end p.makeCategoryLink = makeCategoryLink local function makeUrlLink(url, display) return format('[%s %s]', url, display) end p.makeUrlLink = makeUrlLink local function makeToolbar(...) local ret = {} local lim = select('#', ...) if lim < 1 then return nil end for i = 1, lim do ret[#ret + 1] = select(i, ...) end -- 'documentation-toolbar' return format( '<span class="%s">(%s)</span>', message('toolbar-class'), table.concat(ret, ' &#124; ') ) end p.makeToolbar = makeToolbar ---------------------------------------------------------------------------- -- Argument processing ---------------------------------------------------------------------------- local function makeInvokeFunc(funcName) return function (frame) local args = getArgs(frame, { valueFunc = function (key, value) if type(value) == 'string' then value = value:match('^%s*(.-)%s*$') -- Remove whitespace. if key == 'heading' or value ~= '' then return value else return nil end else return value end end }) return p[funcName](args) end end ---------------------------------------------------------------------------- -- Entry points ---------------------------------------------------------------------------- function p.nonexistent(frame) if mw.title.getCurrentTitle().subpageText == 'testcases' then return frame:expandTemplate{title = 'module test cases notice'} else return p.main(frame) end end p.main = makeInvokeFunc('_main') function p._main(args) --[[ -- This function defines logic flow for the module. -- @args - table of arguments passed by the user --]] local env = p.getEnvironment(args) local root = mw.html.create() root :wikitext(p._getModuleWikitext(args, env)) :wikitext(p.protectionTemplate(env)) :wikitext(p.sandboxNotice(args, env)) :tag('div') -- 'documentation-container' :addClass(message('container')) :attr('role', 'complementary') :attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil) :attr('aria-label', args.heading == '' and 'Documentation' or nil) :newline() :tag('div') -- 'documentation' :addClass(message('main-div-classes')) :newline() :wikitext(p._startBox(args, env)) :wikitext(p._content(args, env)) :tag('div') -- 'documentation-clear' :addClass(message('clear')) :done() :newline() :done() :wikitext(p._endBox(args, env)) :done() :wikitext(p.addTrackingCategories(env)) -- 'Module:Documentation/styles.css' return mw.getCurrentFrame():extensionTag ( 'templatestyles', '', {src=cfg['templatestyles'] }) .. tostring(root) end ---------------------------------------------------------------------------- -- Environment settings ---------------------------------------------------------------------------- function p.getEnvironment(args) --[[ -- Returns a table with information about the environment, including title -- objects and other namespace- or path-related data. -- @args - table of arguments passed by the user -- -- Title objects include: -- env.title - the page we are making documentation for (usually the current title) -- env.templateTitle - the template (or module, file, etc.) -- env.docTitle - the /doc subpage. -- env.sandboxTitle - the /sandbox subpage. -- env.testcasesTitle - the /testcases subpage. -- -- Data includes: -- env.protectionLevels - the protection levels table of the title object. -- env.subjectSpace - the number of the title's subject namespace. -- env.docSpace - the number of the namespace the title puts its documentation in. -- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace. -- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template. -- -- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value -- returned will be nil. --]] local env, envFuncs = {}, {} -- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value -- returned by that function is memoized in the env table so that we don't call any of the functions -- more than once. (Nils won't be memoized.) setmetatable(env, { __index = function (t, key) local envFunc = envFuncs[key] if envFunc then local success, val = pcall(envFunc) if success then env[key] = val -- Memoise the value. return val end end return nil end }) function envFuncs.title() -- The title object for the current page, or a test page passed with args.page. local title local titleArg = args.page if titleArg then title = mw.title.new(titleArg) else title = mw.title.getCurrentTitle() end return title end function envFuncs.templateTitle() --[[ -- The template (or module, etc.) title object. -- Messages: -- 'sandbox-subpage' --> 'sandbox' -- 'testcases-subpage' --> 'testcases' --]] local subjectSpace = env.subjectSpace local title = env.title local subpage = title.subpageText if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') or (subpage == message('doc-subpage') and mw.title.getCurrentTitle().namespace == env.docSpace) then return mw.title.makeTitle(subjectSpace, title.baseText) else return mw.title.makeTitle(subjectSpace, title.text) end end function envFuncs.docTitle() --[[ -- Title object of the /doc subpage. -- Messages: -- 'doc-subpage' --> 'doc' --]] local title = env.title local docname = args[1] -- User-specified doc page. local docpage if docname then docpage = docname else docpage = env.docpageBase .. '/' .. message('doc-subpage') end return mw.title.new(docpage) end function envFuncs.sandboxTitle() --[[ -- Title object for the /sandbox subpage. -- Messages: -- 'sandbox-subpage' --> 'sandbox' --]] return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage')) end function envFuncs.testcasesTitle() --[[ -- Title object for the /testcases subpage. -- Messages: -- 'testcases-subpage' --> 'testcases' --]] return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) end function envFuncs.protectionLevels() -- The protection levels table of the title object. return env.title.protectionLevels end function envFuncs.subjectSpace() -- The subject namespace number. return mw.site.namespaces[env.title.namespace].subject.id end function envFuncs.docSpace() -- The documentation namespace number. For most namespaces this is the -- same as the subject namespace. However, pages in the Article, File, -- MediaWiki or Category namespaces must have their /doc, /sandbox and -- /testcases pages in talk space. local subjectSpace = env.subjectSpace if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then return subjectSpace + 1 else return subjectSpace end end function envFuncs.docpageBase() -- The base page of the /doc, /sandbox, and /testcases subpages. -- For some namespaces this is the talk page, rather than the template page. local templateTitle = env.templateTitle local docSpace = env.docSpace local docSpaceText = mw.site.namespaces[docSpace].name -- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon. return docSpaceText .. ':' .. templateTitle.text end function envFuncs.compareUrl() -- Diff link between the sandbox and the main template using [[Special:ComparePages]]. local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle if templateTitle.exists and sandboxTitle.exists then local compareUrl = mw.uri.canonicalUrl( 'Special:ComparePages', { page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} ) return tostring(compareUrl) else return nil end end return env end ---------------------------------------------------------------------------- -- Auxiliary templates ---------------------------------------------------------------------------- p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext') function p._getModuleWikitext(args, env) local currentTitle = mw.title.getCurrentTitle() if currentTitle.contentModel ~= 'Scribunto' then return end pcall(require, currentTitle.prefixedText) -- if it fails, we don't care local moduleWikitext = package.loaded["Module:Module wikitext"] if moduleWikitext then return moduleWikitext.main() end end function p.sandboxNotice(args, env) --[=[ -- Generates a sandbox notice for display above sandbox pages. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-notice-image' --> '[[File:Sandbox.svg|50px|alt=|link=]]' -- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' -- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' -- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page' -- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page' -- 'sandbox-notice-pagetype-other' --> 'sandbox page' -- 'sandbox-notice-compare-link-display' --> 'diff' -- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.' -- 'sandbox-notice-testcases-link-display' --> 'test cases' -- 'sandbox-category' --> 'Template sandboxes' -- 'module-sandbox-category' --> 'Module sandboxes' -- 'other-sandbox-category' --> 'Sandboxes outside of template or module namespace' --]=] local title = env.title local sandboxTitle = env.sandboxTitle local templateTitle = env.templateTitle local subjectSpace = env.subjectSpace if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then return nil end -- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text". local omargs = {} omargs.image = message('sandbox-notice-image') -- Get the text. We start with the opening blurb, which is something like -- "This is the template sandbox for [[Template:Foo]] (diff)." local text = '__EXPECTUNUSEDTEMPLATE__' local pagetype, sandboxCat if subjectSpace == 10 then pagetype = message('sandbox-notice-pagetype-template') sandboxCat = message('sandbox-category') elseif subjectSpace == 828 then pagetype = message('sandbox-notice-pagetype-module') sandboxCat = message('module-sandbox-category') else pagetype = message('sandbox-notice-pagetype-other') sandboxCat = message('other-sandbox-category') end local templateLink = makeWikilink(templateTitle.prefixedText) local compareUrl = env.compareUrl if compareUrl then local compareDisplay = message('sandbox-notice-compare-link-display') local compareLink = makeUrlLink(compareUrl, compareDisplay) text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink}) else text = text .. message('sandbox-notice-blurb', {pagetype, templateLink}) end -- Get the test cases page blurb if the page exists. This is something like -- "See also the companion subpage for [[Template:Foo/testcases|test cases]]." local testcasesTitle = env.testcasesTitle if testcasesTitle and testcasesTitle.exists then if testcasesTitle.contentModel == "Scribunto" then local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink}) else local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink}) end end -- Add the sandbox to the sandbox category. omargs.text = text .. makeCategoryLink(sandboxCat) -- 'documentation-clear' return '<div class="' .. message('clear') .. '"></div>' .. require('Module:Message box').main('ombox', omargs) end function p.protectionTemplate(env) -- Generates the padlock icon in the top right. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'protection-template' --> 'pp-template' -- 'protection-template-args' --> {docusage = 'yes'} local protectionLevels = env.protectionLevels if not protectionLevels then return nil end local editProt = protectionLevels.edit and protectionLevels.edit[1] local moveProt = protectionLevels.move and protectionLevels.move[1] if editProt then -- The page is edit-protected. return require('Module:Protection banner')._main{ message('protection-reason-edit'), small = true } elseif moveProt and moveProt ~= 'autoconfirmed' then -- The page is move-protected but not edit-protected. Exclude move -- protection with the level "autoconfirmed", as this is equivalent to -- no move protection at all. return require('Module:Protection banner')._main{ action = 'move', small = true } else return nil end end ---------------------------------------------------------------------------- -- Start box ---------------------------------------------------------------------------- p.startBox = makeInvokeFunc('_startBox') function p._startBox(args, env) --[[ -- This function generates the start box. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make -- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox -- which generate the box HTML. --]] env = env or p.getEnvironment(args) local links local content = args.content if not content or args[1] then -- No need to include the links if the documentation is on the template page itself. local linksData = p.makeStartBoxLinksData(args, env) if linksData then links = p.renderStartBoxLinks(linksData) end end -- Generate the start box html. local data = p.makeStartBoxData(args, env, links) if data then return p.renderStartBox(data) else -- User specified no heading. return nil end end function p.makeStartBoxLinksData(args, env) --[[ -- Does initial processing of data to make the [view] [edit] [history] [purge] links. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'view-link-display' --> 'view' -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'purge-link-display' --> 'purge' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'docpage-preload' --> 'Template:Documentation/preload' -- 'create-link-display' --> 'create' --]] local subjectSpace = env.subjectSpace local title = env.title local docTitle = env.docTitle if not title or not docTitle then return nil end if docTitle.isRedirect then docTitle = docTitle.redirectTarget end -- Create link if /doc doesn't exist. local preload = args.preload if not preload then if subjectSpace == 828 then -- Module namespace preload = message('module-preload') else preload = message('docpage-preload') end end return { title = title, docTitle = docTitle, -- View, display, edit, and purge links if /doc exists. viewLinkDisplay = message('view-link-display'), editLinkDisplay = message('edit-link-display'), historyLinkDisplay = message('history-link-display'), purgeLinkDisplay = message('purge-link-display'), preload = preload, createLinkDisplay = message('create-link-display') } end function p.renderStartBoxLinks(data) --[[ -- Generates the [view][edit][history][purge] or [create][purge] links from the data table. -- @data - a table of data generated by p.makeStartBoxLinksData --]] local docTitle = data.docTitle -- yes, we do intend to purge the template page on which the documentation appears local purgeLink = makeWikilink("Special:Purge/" .. data.title.prefixedText, data.purgeLinkDisplay) if docTitle.exists then local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, data.editLinkDisplay) local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, data.historyLinkDisplay) return viewLink .. editLink .. historyLink .. purgeLink else local createLink = makeUrlLink(docTitle:canonicalUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay) return createLink .. purgeLink end return ret end function p.makeStartBoxData(args, env, links) --[=[ -- Does initial processing of data to pass to the start-box render function, p.renderStartBox. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error. -- -- Messages: -- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- 'template-namespace-heading' --> 'Template documentation' -- 'module-namespace-heading' --> 'Module documentation' -- 'file-namespace-heading' --> 'Summary' -- 'other-namespaces-heading' --> 'Documentation' -- 'testcases-create-link-display' --> 'create' --]=] local subjectSpace = env.subjectSpace if not subjectSpace then -- Default to an "other namespaces" namespace, so that we get at least some output -- if an error occurs. subjectSpace = 2 end local data = {} -- Heading local heading = args.heading -- Blank values are not removed. if heading == '' then -- Don't display the start box if the heading arg is defined but blank. return nil end if heading then data.heading = heading elseif subjectSpace == 10 then -- Template namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading') elseif subjectSpace == 828 then -- Module namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading') elseif subjectSpace == 6 then -- File namespace data.heading = message('file-namespace-heading') else data.heading = message('other-namespaces-heading') end -- Heading CSS local headingStyle = args['heading-style'] if headingStyle then data.headingStyleText = headingStyle else -- 'documentation-heading' data.headingClass = message('main-div-heading-class') end -- Data for the [view][edit][history][purge] or [create] links. if links then -- 'mw-editsection-like plainlinks' data.linksClass = message('start-box-link-classes') data.links = links end return data end function p.renderStartBox(data) -- Renders the start box html. -- @data - a table of data generated by p.makeStartBoxData. local sbox = mw.html.create('div') sbox -- 'documentation-startbox' :addClass(message('start-box-class')) :newline() :tag('span') :addClass(data.headingClass) :attr('id', 'documentation-heading') :cssText(data.headingStyleText) :wikitext(data.heading) local links = data.links if links then sbox:tag('span') :addClass(data.linksClass) :attr('id', data.linksId) :wikitext(links) end return tostring(sbox) end ---------------------------------------------------------------------------- -- Documentation content ---------------------------------------------------------------------------- p.content = makeInvokeFunc('_content') function p._content(args, env) -- Displays the documentation contents -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment env = env or p.getEnvironment(args) local docTitle = env.docTitle local content = args.content if not content and docTitle and docTitle.exists then content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText} end -- The line breaks below are necessary so that "=== Headings ===" at the start and end -- of docs are interpreted correctly. return '\n' .. (content or '') .. '\n' end p.contentTitle = makeInvokeFunc('_contentTitle') function p._contentTitle(args, env) env = env or p.getEnvironment(args) local docTitle = env.docTitle if not args.content and docTitle and docTitle.exists then return docTitle.prefixedText else return '' end end ---------------------------------------------------------------------------- -- End box ---------------------------------------------------------------------------- p.endBox = makeInvokeFunc('_endBox') function p._endBox(args, env) --[=[ -- This function generates the end box (also known as the link box). -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- --]=] -- Get environment data. env = env or p.getEnvironment(args) local subjectSpace = env.subjectSpace local docTitle = env.docTitle if not subjectSpace or not docTitle then return nil end -- Check whether we should output the end box at all. Add the end -- box by default if the documentation exists or if we are in the -- user, module or template namespaces. local linkBox = args['link box'] if linkBox == 'off' or not ( docTitle.exists or subjectSpace == 2 or subjectSpace == 828 or subjectSpace == 10 ) then return nil end -- Assemble the link box. local text = '' if linkBox then text = text .. linkBox else text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]." if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then -- We are in the user, template or module namespaces. -- Add sandbox and testcases links. -- "Editors can experiment in this template's sandbox and testcases pages." text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />' if not args.content and not args[1] then -- "Please add categories to the /doc subpage." -- Don't show this message with inline docs or with an explicitly specified doc page, -- as then it is unclear where to add the categories. text = text .. (p.makeCategoriesBlurb(args, env) or '') end text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" end end local box = mw.html.create('div') -- 'documentation-metadata' box:attr('role', 'note') :addClass(message('end-box-class')) -- 'plainlinks' :addClass(message('end-box-plainlinks')) :wikitext(text) :done() return '\n' .. tostring(box) end function p.makeDocPageBlurb(args, env) --[=[ -- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)". -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'transcluded-from-blurb' --> -- 'The above [[Wikipedia:Template documentation|documentation]] -- is [[Help:Transclusion|transcluded]] from $1.' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'create-link-display' --> 'create' -- 'create-module-doc-blurb' --> -- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' --]=] local docTitle = env.docTitle if not docTitle then return nil end if docTitle.exists then -- /doc exists; link to it. local docLink = makeWikilink(docTitle.prefixedText) local editDisplay = message('edit-link-display') local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, editDisplay) local historyDisplay = message('history-link-display') local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, historyDisplay) return message('transcluded-from-blurb', {docLink}) .. ' ' .. makeToolbar(editLink, historyLink) .. '<br />' elseif env.subjectSpace == 828 then -- /doc does not exist; ask to create it. local createUrl = docTitle:canonicalUrl{action = 'edit', preload = message('module-preload')} local createDisplay = message('create-link-display') local createLink = makeUrlLink(createUrl, createDisplay) return message('create-module-doc-blurb', {createLink}) .. '<br />' end end function p.makeExperimentBlurb(args, env) --[[ -- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-link-display' --> 'sandbox' -- 'sandbox-edit-link-display' --> 'edit' -- 'compare-link-display' --> 'diff' -- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'sandbox-create-link-display' --> 'create' -- 'mirror-edit-summary' --> 'Create sandbox version of $1' -- 'mirror-link-display' --> 'mirror' -- 'mirror-link-preload' --> 'Template:Documentation/mirror' -- 'sandbox-link-display' --> 'sandbox' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display'--> 'edit' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'testcases-create-link-display' --> 'create' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display' --> 'edit' -- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases' -- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases' -- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.' -- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle local testcasesTitle = env.testcasesTitle local templatePage = templateTitle.prefixedText if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then return nil end -- Make links. local sandboxLinks, testcasesLinks if sandboxTitle.exists then local sandboxPage = sandboxTitle.prefixedText local sandboxDisplay = message('sandbox-link-display') local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) local sandboxEditDisplay = message('sandbox-edit-link-display') local sandboxEditLink = makeWikilink("Special:EditPage/" .. sandboxPage, sandboxEditDisplay) local compareUrl = env.compareUrl local compareLink if compareUrl then local compareDisplay = message('compare-link-display') compareLink = makeUrlLink(compareUrl, compareDisplay) end sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink) else local sandboxPreload if subjectSpace == 828 then sandboxPreload = message('module-sandbox-preload') else sandboxPreload = message('template-sandbox-preload') end local sandboxCreateUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = sandboxPreload} local sandboxCreateDisplay = message('sandbox-create-link-display') local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) local mirrorPreload = message('mirror-link-preload') local mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary} if subjectSpace == 828 then mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary} end local mirrorDisplay = message('mirror-link-display') local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay) sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink) end if testcasesTitle.exists then local testcasesPage = testcasesTitle.prefixedText local testcasesDisplay = message('testcases-link-display') local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) local testcasesEditUrl = testcasesTitle:canonicalUrl{action = 'edit'} local testcasesEditDisplay = message('testcases-edit-link-display') local testcasesEditLink = makeWikilink("Special:EditPage/" .. testcasesPage, testcasesEditDisplay) -- for Modules, add testcases run link if exists if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then local testcasesRunLinkDisplay = message('testcases-run-link-display') local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink) else testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink) end else local testcasesPreload if subjectSpace == 828 then testcasesPreload = message('module-testcases-preload') else testcasesPreload = message('template-testcases-preload') end local testcasesCreateUrl = testcasesTitle:canonicalUrl{action = 'edit', preload = testcasesPreload} local testcasesCreateDisplay = message('testcases-create-link-display') local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink) end local messageName if subjectSpace == 828 then messageName = 'experiment-blurb-module' else messageName = 'experiment-blurb-template' end return message(messageName, {sandboxLinks, testcasesLinks}) end function p.makeCategoriesBlurb(args, env) --[[ -- Generates the text "Please add categories to the /doc subpage." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'doc-link-display' --> '/doc' -- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.' --]] local docTitle = env.docTitle if not docTitle then return nil end local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display')) return message('add-categories-blurb', {docPathLink}) end function p.makeSubpagesBlurb(args, env) --[[ -- Generates the "Subpages of this template" link. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'template-pagetype' --> 'template' -- 'module-pagetype' --> 'module' -- 'default-pagetype' --> 'page' -- 'subpages-link-display' --> 'Subpages of this $1' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle if not subjectSpace or not templateTitle then return nil end local pagetype if subjectSpace == 10 then pagetype = message('template-pagetype') elseif subjectSpace == 828 then pagetype = message('module-pagetype') else pagetype = message('default-pagetype') end local subpagesLink = makeWikilink( 'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/', message('subpages-link-display', {pagetype}) ) return message('subpages-blurb', {subpagesLink}) end ---------------------------------------------------------------------------- -- Tracking categories ---------------------------------------------------------------------------- function p.addTrackingCategories(env) --[[ -- Check if {{documentation}} is transcluded on a /doc or /testcases page. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'display-strange-usage-category' --> true -- 'doc-subpage' --> 'doc' -- 'testcases-subpage' --> 'testcases' -- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage' -- -- /testcases pages in the module namespace are not categorised, as they may have -- {{documentation}} transcluded automatically. --]] local title = env.title local subjectSpace = env.subjectSpace if not title or not subjectSpace then return nil end local subpage = title.subpageText if message('display-strange-usage-category', nil, 'boolean') and ( subpage == message('doc-subpage') or subjectSpace ~= 828 and subpage == message('testcases-subpage') ) then return makeCategoryLink(message('strange-usage-category')) end return '' end return p bo74oekmmsj1xtpw7dlzkvkhc0k05g6 151886 151885 2026-09-21T16:17:43Z 511KeV 8268 1 revision imported from [[:en:Module:Documentation]]: Needed Locally 151885 Scribunto text/plain -- This module implements {{documentation}}. -- Get required modules. local getArgs = require('Module:Arguments').getArgs -- Get the config table. local cfg = mw.loadData('Module:Documentation/config') local p = {} -- Often-used functions. local ugsub = mw.ustring.gsub local format = mw.ustring.format ---------------------------------------------------------------------------- -- Helper functions -- -- These are defined as local functions, but are made available in the p -- table for testing purposes. ---------------------------------------------------------------------------- local function message(cfgKey, valArray, expectType) --[[ -- Gets a message from the cfg table and formats it if appropriate. -- The function raises an error if the value from the cfg table is not -- of the type expectType. The default type for expectType is 'string'. -- If the table valArray is present, strings such as $1, $2 etc. in the -- message are substituted with values from the table keys [1], [2] etc. -- For example, if the message "foo-message" had the value 'Foo $2 bar $1.', -- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz." --]] local msg = cfg[cfgKey] expectType = expectType or 'string' if type(msg) ~= expectType then error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2) end if not valArray then return msg end local function getMessageVal(match) match = tonumber(match) return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4) end return ugsub(msg, '$([1-9][0-9]*)', getMessageVal) end p.message = message local function makeWikilink(page, display) if display then return format('[[%s|%s]]', page, display) else return format('[[%s]]', page) end end p.makeWikilink = makeWikilink local function makeCategoryLink(cat, sort) local catns = mw.site.namespaces[14].name return makeWikilink(catns .. ':' .. cat, sort) end p.makeCategoryLink = makeCategoryLink local function makeUrlLink(url, display) return format('[%s %s]', url, display) end p.makeUrlLink = makeUrlLink local function makeToolbar(...) local ret = {} local lim = select('#', ...) if lim < 1 then return nil end for i = 1, lim do ret[#ret + 1] = select(i, ...) end -- 'documentation-toolbar' return format( '<span class="%s">(%s)</span>', message('toolbar-class'), table.concat(ret, ' &#124; ') ) end p.makeToolbar = makeToolbar ---------------------------------------------------------------------------- -- Argument processing ---------------------------------------------------------------------------- local function makeInvokeFunc(funcName) return function (frame) local args = getArgs(frame, { valueFunc = function (key, value) if type(value) == 'string' then value = value:match('^%s*(.-)%s*$') -- Remove whitespace. if key == 'heading' or value ~= '' then return value else return nil end else return value end end }) return p[funcName](args) end end ---------------------------------------------------------------------------- -- Entry points ---------------------------------------------------------------------------- function p.nonexistent(frame) if mw.title.getCurrentTitle().subpageText == 'testcases' then return frame:expandTemplate{title = 'module test cases notice'} else return p.main(frame) end end p.main = makeInvokeFunc('_main') function p._main(args) --[[ -- This function defines logic flow for the module. -- @args - table of arguments passed by the user --]] local env = p.getEnvironment(args) local root = mw.html.create() root :wikitext(p._getModuleWikitext(args, env)) :wikitext(p.protectionTemplate(env)) :wikitext(p.sandboxNotice(args, env)) :tag('div') -- 'documentation-container' :addClass(message('container')) :attr('role', 'complementary') :attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil) :attr('aria-label', args.heading == '' and 'Documentation' or nil) :newline() :tag('div') -- 'documentation' :addClass(message('main-div-classes')) :newline() :wikitext(p._startBox(args, env)) :wikitext(p._content(args, env)) :tag('div') -- 'documentation-clear' :addClass(message('clear')) :done() :newline() :done() :wikitext(p._endBox(args, env)) :done() :wikitext(p.addTrackingCategories(env)) -- 'Module:Documentation/styles.css' return mw.getCurrentFrame():extensionTag ( 'templatestyles', '', {src=cfg['templatestyles'] }) .. tostring(root) end ---------------------------------------------------------------------------- -- Environment settings ---------------------------------------------------------------------------- function p.getEnvironment(args) --[[ -- Returns a table with information about the environment, including title -- objects and other namespace- or path-related data. -- @args - table of arguments passed by the user -- -- Title objects include: -- env.title - the page we are making documentation for (usually the current title) -- env.templateTitle - the template (or module, file, etc.) -- env.docTitle - the /doc subpage. -- env.sandboxTitle - the /sandbox subpage. -- env.testcasesTitle - the /testcases subpage. -- -- Data includes: -- env.protectionLevels - the protection levels table of the title object. -- env.subjectSpace - the number of the title's subject namespace. -- env.docSpace - the number of the namespace the title puts its documentation in. -- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace. -- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template. -- -- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value -- returned will be nil. --]] local env, envFuncs = {}, {} -- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value -- returned by that function is memoized in the env table so that we don't call any of the functions -- more than once. (Nils won't be memoized.) setmetatable(env, { __index = function (t, key) local envFunc = envFuncs[key] if envFunc then local success, val = pcall(envFunc) if success then env[key] = val -- Memoise the value. return val end end return nil end }) function envFuncs.title() -- The title object for the current page, or a test page passed with args.page. local title local titleArg = args.page if titleArg then title = mw.title.new(titleArg) else title = mw.title.getCurrentTitle() end return title end function envFuncs.templateTitle() --[[ -- The template (or module, etc.) title object. -- Messages: -- 'sandbox-subpage' --> 'sandbox' -- 'testcases-subpage' --> 'testcases' --]] local subjectSpace = env.subjectSpace local title = env.title local subpage = title.subpageText if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') or (subpage == message('doc-subpage') and mw.title.getCurrentTitle().namespace == env.docSpace) then return mw.title.makeTitle(subjectSpace, title.baseText) else return mw.title.makeTitle(subjectSpace, title.text) end end function envFuncs.docTitle() --[[ -- Title object of the /doc subpage. -- Messages: -- 'doc-subpage' --> 'doc' --]] local title = env.title local docname = args[1] -- User-specified doc page. local docpage if docname then docpage = docname else docpage = env.docpageBase .. '/' .. message('doc-subpage') end return mw.title.new(docpage) end function envFuncs.sandboxTitle() --[[ -- Title object for the /sandbox subpage. -- Messages: -- 'sandbox-subpage' --> 'sandbox' --]] return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage')) end function envFuncs.testcasesTitle() --[[ -- Title object for the /testcases subpage. -- Messages: -- 'testcases-subpage' --> 'testcases' --]] return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) end function envFuncs.protectionLevels() -- The protection levels table of the title object. return env.title.protectionLevels end function envFuncs.subjectSpace() -- The subject namespace number. return mw.site.namespaces[env.title.namespace].subject.id end function envFuncs.docSpace() -- The documentation namespace number. For most namespaces this is the -- same as the subject namespace. However, pages in the Article, File, -- MediaWiki or Category namespaces must have their /doc, /sandbox and -- /testcases pages in talk space. local subjectSpace = env.subjectSpace if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then return subjectSpace + 1 else return subjectSpace end end function envFuncs.docpageBase() -- The base page of the /doc, /sandbox, and /testcases subpages. -- For some namespaces this is the talk page, rather than the template page. local templateTitle = env.templateTitle local docSpace = env.docSpace local docSpaceText = mw.site.namespaces[docSpace].name -- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon. return docSpaceText .. ':' .. templateTitle.text end function envFuncs.compareUrl() -- Diff link between the sandbox and the main template using [[Special:ComparePages]]. local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle if templateTitle.exists and sandboxTitle.exists then local compareUrl = mw.uri.canonicalUrl( 'Special:ComparePages', { page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} ) return tostring(compareUrl) else return nil end end return env end ---------------------------------------------------------------------------- -- Auxiliary templates ---------------------------------------------------------------------------- p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext') function p._getModuleWikitext(args, env) local currentTitle = mw.title.getCurrentTitle() if currentTitle.contentModel ~= 'Scribunto' then return end pcall(require, currentTitle.prefixedText) -- if it fails, we don't care local moduleWikitext = package.loaded["Module:Module wikitext"] if moduleWikitext then return moduleWikitext.main() end end function p.sandboxNotice(args, env) --[=[ -- Generates a sandbox notice for display above sandbox pages. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-notice-image' --> '[[File:Sandbox.svg|50px|alt=|link=]]' -- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' -- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' -- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page' -- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page' -- 'sandbox-notice-pagetype-other' --> 'sandbox page' -- 'sandbox-notice-compare-link-display' --> 'diff' -- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.' -- 'sandbox-notice-testcases-link-display' --> 'test cases' -- 'sandbox-category' --> 'Template sandboxes' -- 'module-sandbox-category' --> 'Module sandboxes' -- 'other-sandbox-category' --> 'Sandboxes outside of template or module namespace' --]=] local title = env.title local sandboxTitle = env.sandboxTitle local templateTitle = env.templateTitle local subjectSpace = env.subjectSpace if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then return nil end -- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text". local omargs = {} omargs.image = message('sandbox-notice-image') -- Get the text. We start with the opening blurb, which is something like -- "This is the template sandbox for [[Template:Foo]] (diff)." local text = '__EXPECTUNUSEDTEMPLATE__' local pagetype, sandboxCat if subjectSpace == 10 then pagetype = message('sandbox-notice-pagetype-template') sandboxCat = message('sandbox-category') elseif subjectSpace == 828 then pagetype = message('sandbox-notice-pagetype-module') sandboxCat = message('module-sandbox-category') else pagetype = message('sandbox-notice-pagetype-other') sandboxCat = message('other-sandbox-category') end local templateLink = makeWikilink(templateTitle.prefixedText) local compareUrl = env.compareUrl if compareUrl then local compareDisplay = message('sandbox-notice-compare-link-display') local compareLink = makeUrlLink(compareUrl, compareDisplay) text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink}) else text = text .. message('sandbox-notice-blurb', {pagetype, templateLink}) end -- Get the test cases page blurb if the page exists. This is something like -- "See also the companion subpage for [[Template:Foo/testcases|test cases]]." local testcasesTitle = env.testcasesTitle if testcasesTitle and testcasesTitle.exists then if testcasesTitle.contentModel == "Scribunto" then local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink}) else local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink}) end end -- Add the sandbox to the sandbox category. omargs.text = text .. makeCategoryLink(sandboxCat) -- 'documentation-clear' return '<div class="' .. message('clear') .. '"></div>' .. require('Module:Message box').main('ombox', omargs) end function p.protectionTemplate(env) -- Generates the padlock icon in the top right. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'protection-template' --> 'pp-template' -- 'protection-template-args' --> {docusage = 'yes'} local protectionLevels = env.protectionLevels if not protectionLevels then return nil end local editProt = protectionLevels.edit and protectionLevels.edit[1] local moveProt = protectionLevels.move and protectionLevels.move[1] if editProt then -- The page is edit-protected. return require('Module:Protection banner')._main{ message('protection-reason-edit'), small = true } elseif moveProt and moveProt ~= 'autoconfirmed' then -- The page is move-protected but not edit-protected. Exclude move -- protection with the level "autoconfirmed", as this is equivalent to -- no move protection at all. return require('Module:Protection banner')._main{ action = 'move', small = true } else return nil end end ---------------------------------------------------------------------------- -- Start box ---------------------------------------------------------------------------- p.startBox = makeInvokeFunc('_startBox') function p._startBox(args, env) --[[ -- This function generates the start box. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make -- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox -- which generate the box HTML. --]] env = env or p.getEnvironment(args) local links local content = args.content if not content or args[1] then -- No need to include the links if the documentation is on the template page itself. local linksData = p.makeStartBoxLinksData(args, env) if linksData then links = p.renderStartBoxLinks(linksData) end end -- Generate the start box html. local data = p.makeStartBoxData(args, env, links) if data then return p.renderStartBox(data) else -- User specified no heading. return nil end end function p.makeStartBoxLinksData(args, env) --[[ -- Does initial processing of data to make the [view] [edit] [history] [purge] links. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'view-link-display' --> 'view' -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'purge-link-display' --> 'purge' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'docpage-preload' --> 'Template:Documentation/preload' -- 'create-link-display' --> 'create' --]] local subjectSpace = env.subjectSpace local title = env.title local docTitle = env.docTitle if not title or not docTitle then return nil end if docTitle.isRedirect then docTitle = docTitle.redirectTarget end -- Create link if /doc doesn't exist. local preload = args.preload if not preload then if subjectSpace == 828 then -- Module namespace preload = message('module-preload') else preload = message('docpage-preload') end end return { title = title, docTitle = docTitle, -- View, display, edit, and purge links if /doc exists. viewLinkDisplay = message('view-link-display'), editLinkDisplay = message('edit-link-display'), historyLinkDisplay = message('history-link-display'), purgeLinkDisplay = message('purge-link-display'), preload = preload, createLinkDisplay = message('create-link-display') } end function p.renderStartBoxLinks(data) --[[ -- Generates the [view][edit][history][purge] or [create][purge] links from the data table. -- @data - a table of data generated by p.makeStartBoxLinksData --]] local docTitle = data.docTitle -- yes, we do intend to purge the template page on which the documentation appears local purgeLink = makeWikilink("Special:Purge/" .. data.title.prefixedText, data.purgeLinkDisplay) if docTitle.exists then local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, data.editLinkDisplay) local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, data.historyLinkDisplay) return viewLink .. editLink .. historyLink .. purgeLink else local createLink = makeUrlLink(docTitle:canonicalUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay) return createLink .. purgeLink end return ret end function p.makeStartBoxData(args, env, links) --[=[ -- Does initial processing of data to pass to the start-box render function, p.renderStartBox. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error. -- -- Messages: -- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- 'template-namespace-heading' --> 'Template documentation' -- 'module-namespace-heading' --> 'Module documentation' -- 'file-namespace-heading' --> 'Summary' -- 'other-namespaces-heading' --> 'Documentation' -- 'testcases-create-link-display' --> 'create' --]=] local subjectSpace = env.subjectSpace if not subjectSpace then -- Default to an "other namespaces" namespace, so that we get at least some output -- if an error occurs. subjectSpace = 2 end local data = {} -- Heading local heading = args.heading -- Blank values are not removed. if heading == '' then -- Don't display the start box if the heading arg is defined but blank. return nil end if heading then data.heading = heading elseif subjectSpace == 10 then -- Template namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading') elseif subjectSpace == 828 then -- Module namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading') elseif subjectSpace == 6 then -- File namespace data.heading = message('file-namespace-heading') else data.heading = message('other-namespaces-heading') end -- Heading CSS local headingStyle = args['heading-style'] if headingStyle then data.headingStyleText = headingStyle else -- 'documentation-heading' data.headingClass = message('main-div-heading-class') end -- Data for the [view][edit][history][purge] or [create] links. if links then -- 'mw-editsection-like plainlinks' data.linksClass = message('start-box-link-classes') data.links = links end return data end function p.renderStartBox(data) -- Renders the start box html. -- @data - a table of data generated by p.makeStartBoxData. local sbox = mw.html.create('div') sbox -- 'documentation-startbox' :addClass(message('start-box-class')) :newline() :tag('span') :addClass(data.headingClass) :attr('id', 'documentation-heading') :cssText(data.headingStyleText) :wikitext(data.heading) local links = data.links if links then sbox:tag('span') :addClass(data.linksClass) :attr('id', data.linksId) :wikitext(links) end return tostring(sbox) end ---------------------------------------------------------------------------- -- Documentation content ---------------------------------------------------------------------------- p.content = makeInvokeFunc('_content') function p._content(args, env) -- Displays the documentation contents -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment env = env or p.getEnvironment(args) local docTitle = env.docTitle local content = args.content if not content and docTitle and docTitle.exists then content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText} end -- The line breaks below are necessary so that "=== Headings ===" at the start and end -- of docs are interpreted correctly. return '\n' .. (content or '') .. '\n' end p.contentTitle = makeInvokeFunc('_contentTitle') function p._contentTitle(args, env) env = env or p.getEnvironment(args) local docTitle = env.docTitle if not args.content and docTitle and docTitle.exists then return docTitle.prefixedText else return '' end end ---------------------------------------------------------------------------- -- End box ---------------------------------------------------------------------------- p.endBox = makeInvokeFunc('_endBox') function p._endBox(args, env) --[=[ -- This function generates the end box (also known as the link box). -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- --]=] -- Get environment data. env = env or p.getEnvironment(args) local subjectSpace = env.subjectSpace local docTitle = env.docTitle if not subjectSpace or not docTitle then return nil end -- Check whether we should output the end box at all. Add the end -- box by default if the documentation exists or if we are in the -- user, module or template namespaces. local linkBox = args['link box'] if linkBox == 'off' or not ( docTitle.exists or subjectSpace == 2 or subjectSpace == 828 or subjectSpace == 10 ) then return nil end -- Assemble the link box. local text = '' if linkBox then text = text .. linkBox else text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]." if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then -- We are in the user, template or module namespaces. -- Add sandbox and testcases links. -- "Editors can experiment in this template's sandbox and testcases pages." text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />' if not args.content and not args[1] then -- "Please add categories to the /doc subpage." -- Don't show this message with inline docs or with an explicitly specified doc page, -- as then it is unclear where to add the categories. text = text .. (p.makeCategoriesBlurb(args, env) or '') end text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" end end local box = mw.html.create('div') -- 'documentation-metadata' box:attr('role', 'note') :addClass(message('end-box-class')) -- 'plainlinks' :addClass(message('end-box-plainlinks')) :wikitext(text) :done() return '\n' .. tostring(box) end function p.makeDocPageBlurb(args, env) --[=[ -- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)". -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'transcluded-from-blurb' --> -- 'The above [[Wikipedia:Template documentation|documentation]] -- is [[Help:Transclusion|transcluded]] from $1.' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'create-link-display' --> 'create' -- 'create-module-doc-blurb' --> -- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' --]=] local docTitle = env.docTitle if not docTitle then return nil end if docTitle.exists then -- /doc exists; link to it. local docLink = makeWikilink(docTitle.prefixedText) local editDisplay = message('edit-link-display') local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, editDisplay) local historyDisplay = message('history-link-display') local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, historyDisplay) return message('transcluded-from-blurb', {docLink}) .. ' ' .. makeToolbar(editLink, historyLink) .. '<br />' elseif env.subjectSpace == 828 then -- /doc does not exist; ask to create it. local createUrl = docTitle:canonicalUrl{action = 'edit', preload = message('module-preload')} local createDisplay = message('create-link-display') local createLink = makeUrlLink(createUrl, createDisplay) return message('create-module-doc-blurb', {createLink}) .. '<br />' end end function p.makeExperimentBlurb(args, env) --[[ -- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-link-display' --> 'sandbox' -- 'sandbox-edit-link-display' --> 'edit' -- 'compare-link-display' --> 'diff' -- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'sandbox-create-link-display' --> 'create' -- 'mirror-edit-summary' --> 'Create sandbox version of $1' -- 'mirror-link-display' --> 'mirror' -- 'mirror-link-preload' --> 'Template:Documentation/mirror' -- 'sandbox-link-display' --> 'sandbox' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display'--> 'edit' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'testcases-create-link-display' --> 'create' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display' --> 'edit' -- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases' -- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases' -- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.' -- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle local testcasesTitle = env.testcasesTitle local templatePage = templateTitle.prefixedText if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then return nil end -- Make links. local sandboxLinks, testcasesLinks if sandboxTitle.exists then local sandboxPage = sandboxTitle.prefixedText local sandboxDisplay = message('sandbox-link-display') local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) local sandboxEditDisplay = message('sandbox-edit-link-display') local sandboxEditLink = makeWikilink("Special:EditPage/" .. sandboxPage, sandboxEditDisplay) local compareUrl = env.compareUrl local compareLink if compareUrl then local compareDisplay = message('compare-link-display') compareLink = makeUrlLink(compareUrl, compareDisplay) end sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink) else local sandboxPreload if subjectSpace == 828 then sandboxPreload = message('module-sandbox-preload') else sandboxPreload = message('template-sandbox-preload') end local sandboxCreateUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = sandboxPreload} local sandboxCreateDisplay = message('sandbox-create-link-display') local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) local mirrorPreload = message('mirror-link-preload') local mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary} if subjectSpace == 828 then mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary} end local mirrorDisplay = message('mirror-link-display') local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay) sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink) end if testcasesTitle.exists then local testcasesPage = testcasesTitle.prefixedText local testcasesDisplay = message('testcases-link-display') local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) local testcasesEditUrl = testcasesTitle:canonicalUrl{action = 'edit'} local testcasesEditDisplay = message('testcases-edit-link-display') local testcasesEditLink = makeWikilink("Special:EditPage/" .. testcasesPage, testcasesEditDisplay) -- for Modules, add testcases run link if exists if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then local testcasesRunLinkDisplay = message('testcases-run-link-display') local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink) else testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink) end else local testcasesPreload if subjectSpace == 828 then testcasesPreload = message('module-testcases-preload') else testcasesPreload = message('template-testcases-preload') end local testcasesCreateUrl = testcasesTitle:canonicalUrl{action = 'edit', preload = testcasesPreload} local testcasesCreateDisplay = message('testcases-create-link-display') local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink) end local messageName if subjectSpace == 828 then messageName = 'experiment-blurb-module' else messageName = 'experiment-blurb-template' end return message(messageName, {sandboxLinks, testcasesLinks}) end function p.makeCategoriesBlurb(args, env) --[[ -- Generates the text "Please add categories to the /doc subpage." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'doc-link-display' --> '/doc' -- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.' --]] local docTitle = env.docTitle if not docTitle then return nil end local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display')) return message('add-categories-blurb', {docPathLink}) end function p.makeSubpagesBlurb(args, env) --[[ -- Generates the "Subpages of this template" link. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'template-pagetype' --> 'template' -- 'module-pagetype' --> 'module' -- 'default-pagetype' --> 'page' -- 'subpages-link-display' --> 'Subpages of this $1' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle if not subjectSpace or not templateTitle then return nil end local pagetype if subjectSpace == 10 then pagetype = message('template-pagetype') elseif subjectSpace == 828 then pagetype = message('module-pagetype') else pagetype = message('default-pagetype') end local subpagesLink = makeWikilink( 'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/', message('subpages-link-display', {pagetype}) ) return message('subpages-blurb', {subpagesLink}) end ---------------------------------------------------------------------------- -- Tracking categories ---------------------------------------------------------------------------- function p.addTrackingCategories(env) --[[ -- Check if {{documentation}} is transcluded on a /doc or /testcases page. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'display-strange-usage-category' --> true -- 'doc-subpage' --> 'doc' -- 'testcases-subpage' --> 'testcases' -- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage' -- -- /testcases pages in the module namespace are not categorised, as they may have -- {{documentation}} transcluded automatically. --]] local title = env.title local subjectSpace = env.subjectSpace if not title or not subjectSpace then return nil end local subpage = title.subpageText if message('display-strange-usage-category', nil, 'boolean') and ( subpage == message('doc-subpage') or subjectSpace ~= 828 and subpage == message('testcases-subpage') ) then return makeCategoryLink(message('strange-usage-category')) end return '' end return p bo74oekmmsj1xtpw7dlzkvkhc0k05g6 Module:Documentation/config 828 6656 151887 83461 2025-10-13T18:10:40Z en>Paine Ellsworth 0 per edit request at [[Template talk:Documentation#Update sandbox icon to match all other templates]] - update sandbox notice image 151887 Scribunto text/plain ---------------------------------------------------------------------------------------------------- -- -- Configuration for Module:Documentation -- -- Here you can set the values of the parameters and messages used in Module:Documentation to -- localise it to your wiki and your language. Unless specified otherwise, values given here -- should be string values. ---------------------------------------------------------------------------------------------------- local cfg = {} -- Do not edit this line. ---------------------------------------------------------------------------------------------------- -- Protection template configuration ---------------------------------------------------------------------------------------------------- -- cfg['protection-reason-edit'] -- The protection reason for edit-protected templates to pass to -- [[Module:Protection banner]]. cfg['protection-reason-edit'] = 'template' --[[ ---------------------------------------------------------------------------------------------------- -- Sandbox notice configuration -- -- On sandbox pages the module can display a template notifying users that the current page is a -- sandbox, and the location of test cases pages, etc. The module decides whether the page is a -- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the -- messages that the notices contains. ---------------------------------------------------------------------------------------------------- --]] -- cfg['sandbox-notice-image'] -- The image displayed in the sandbox notice. cfg['sandbox-notice-image'] = '[[File:Edit In Sandbox Icon - Color.svg|50px|alt=|link=]]' --[[ -- cfg['sandbox-notice-pagetype-template'] -- cfg['sandbox-notice-pagetype-module'] -- cfg['sandbox-notice-pagetype-other'] -- The page type of the sandbox page. The message that is displayed depends on the current subject -- namespace. This message is used in either cfg['sandbox-notice-blurb'] or -- cfg['sandbox-notice-diff-blurb']. --]] cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page' cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page' cfg['sandbox-notice-pagetype-other'] = 'sandbox page' --[[ -- cfg['sandbox-notice-blurb'] -- cfg['sandbox-notice-diff-blurb'] -- cfg['sandbox-notice-diff-display'] -- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence -- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page -- type, which is either cfg['sandbox-notice-pagetype-template'], -- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what -- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between -- the sandbox and the main template. The display value of the diff link is set by -- cfg['sandbox-notice-compare-link-display']. --]] cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.' cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).' cfg['sandbox-notice-compare-link-display'] = 'diff' --[[ -- cfg['sandbox-notice-testcases-blurb'] -- cfg['sandbox-notice-testcases-link-display'] -- cfg['sandbox-notice-testcases-run-blurb'] -- cfg['sandbox-notice-testcases-run-link-display'] -- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit. $1 is a link to the test cases page. -- cfg['sandbox-notice-testcases-link-display'] is the display value for that link. -- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test -- cases page, and $2 is a link to the page to run it. -- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test -- cases. --]] cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.' cfg['sandbox-notice-testcases-link-display'] = 'test cases' cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).' cfg['sandbox-notice-testcases-run-link-display'] = 'run' -- cfg['sandbox-category'] - A category to add to all template sandboxes. -- cfg['module-sandbox-category'] - A category to add to all module sandboxes. -- cfg['module-sandbox-category'] - A category to add to all sandboxe not in templates or modules. cfg['sandbox-category'] = 'Template sandboxes' cfg['module-sandbox-category'] = 'Module sandboxes' cfg['other-sandbox-category'] = 'Sandboxes outside of template or module namespace' ---------------------------------------------------------------------------------------------------- -- Start box configuration ---------------------------------------------------------------------------------------------------- -- cfg['documentation-icon-wikitext'] -- The wikitext for the icon shown at the top of the template. cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- cfg['template-namespace-heading'] -- The heading shown in the template namespace. cfg['template-namespace-heading'] = 'Template documentation' -- cfg['module-namespace-heading'] -- The heading shown in the module namespace. cfg['module-namespace-heading'] = 'Module documentation' -- cfg['file-namespace-heading'] -- The heading shown in the file namespace. cfg['file-namespace-heading'] = 'Summary' -- cfg['other-namespaces-heading'] -- The heading shown in other namespaces. cfg['other-namespaces-heading'] = 'Documentation' -- cfg['view-link-display'] -- The text to display for "view" links. cfg['view-link-display'] = 'view' -- cfg['edit-link-display'] -- The text to display for "edit" links. cfg['edit-link-display'] = 'edit' -- cfg['history-link-display'] -- The text to display for "history" links. cfg['history-link-display'] = 'history' -- cfg['purge-link-display'] -- The text to display for "purge" links. cfg['purge-link-display'] = 'purge' -- cfg['create-link-display'] -- The text to display for "create" links. cfg['create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Link box (end box) configuration ---------------------------------------------------------------------------------------------------- -- cfg['transcluded-from-blurb'] -- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page. cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.' --[[ -- cfg['create-module-doc-blurb'] -- Notice displayed in the module namespace when the documentation subpage does not exist. -- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the -- display cfg['create-link-display']. --]] cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' ---------------------------------------------------------------------------------------------------- -- Experiment blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['experiment-blurb-template'] -- cfg['experiment-blurb-module'] -- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages. -- It is only shown in the template and module namespaces. With the default English settings, it -- might look like this: -- -- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages. -- -- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links. -- -- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending -- on what namespace we are in. -- -- Parameters: -- -- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display']) -- -- If the sandbox doesn't exist, it is in the format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display']) -- -- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload'] -- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display'] -- loads a default edit summary of cfg['mirror-edit-summary']. -- -- $2 is a link to the test cases page. If the test cases page exists, it is in the following format: -- -- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display']) -- -- If the test cases page doesn't exist, it is in the format: -- -- cfg['testcases-link-display'] (cfg['testcases-create-link-display']) -- -- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the -- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current -- namespace. --]] cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages." cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages." ---------------------------------------------------------------------------------------------------- -- Sandbox link configuration ---------------------------------------------------------------------------------------------------- -- cfg['sandbox-subpage'] -- The name of the template subpage typically used for sandboxes. cfg['sandbox-subpage'] = 'sandbox' -- cfg['template-sandbox-preload'] -- Preload file for template sandbox pages. cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox' -- cfg['module-sandbox-preload'] -- Preload file for Lua module sandbox pages. cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox' -- cfg['sandbox-link-display'] -- The text to display for "sandbox" links. cfg['sandbox-link-display'] = 'sandbox' -- cfg['sandbox-edit-link-display'] -- The text to display for sandbox "edit" links. cfg['sandbox-edit-link-display'] = 'edit' -- cfg['sandbox-create-link-display'] -- The text to display for sandbox "create" links. cfg['sandbox-create-link-display'] = 'create' -- cfg['compare-link-display'] -- The text to display for "compare" links. cfg['compare-link-display'] = 'diff' -- cfg['mirror-edit-summary'] -- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the -- template page. cfg['mirror-edit-summary'] = 'Create sandbox version of $1' -- cfg['mirror-link-display'] -- The text to display for "mirror" links. cfg['mirror-link-display'] = 'mirror' -- cfg['mirror-link-preload'] -- The page to preload when a user clicks the "mirror" link. cfg['mirror-link-preload'] = 'Template:Documentation/mirror' ---------------------------------------------------------------------------------------------------- -- Test cases link configuration ---------------------------------------------------------------------------------------------------- -- cfg['testcases-subpage'] -- The name of the template subpage typically used for test cases. cfg['testcases-subpage'] = 'testcases' -- cfg['template-testcases-preload'] -- Preload file for template test cases pages. cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases' -- cfg['module-testcases-preload'] -- Preload file for Lua module test cases pages. cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases' -- cfg['testcases-link-display'] -- The text to display for "testcases" links. cfg['testcases-link-display'] = 'testcases' -- cfg['testcases-edit-link-display'] -- The text to display for test cases "edit" links. cfg['testcases-edit-link-display'] = 'edit' -- cfg['testcases-run-link-display'] -- The text to display for test cases "run" links. cfg['testcases-run-link-display'] = 'run' -- cfg['testcases-create-link-display'] -- The text to display for test cases "create" links. cfg['testcases-create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Add categories blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['add-categories-blurb'] -- Text to direct users to add categories to the /doc subpage. Not used if the "content" or -- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a -- link to the /doc subpage with a display value of cfg['doc-link-display']. --]] cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.' -- cfg['doc-link-display'] -- The text to display when linking to the /doc subpage. cfg['doc-link-display'] = '/doc' ---------------------------------------------------------------------------------------------------- -- Subpages link configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['subpages-blurb'] -- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a -- display value of cfg['subpages-link-display']. In the English version this blurb is simply -- the link followed by a period, and the link display provides the actual text. --]] cfg['subpages-blurb'] = '$1.' --[[ -- cfg['subpages-link-display'] -- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'], -- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in -- the template namespace, the module namespace, or another namespace. --]] cfg['subpages-link-display'] = 'Subpages of this $1' -- cfg['template-pagetype'] -- The pagetype to display for template pages. cfg['template-pagetype'] = 'template' -- cfg['module-pagetype'] -- The pagetype to display for Lua module pages. cfg['module-pagetype'] = 'module' -- cfg['default-pagetype'] -- The pagetype to display for pages other than templates or Lua modules. cfg['default-pagetype'] = 'page' ---------------------------------------------------------------------------------------------------- -- Doc link configuration ---------------------------------------------------------------------------------------------------- -- cfg['doc-subpage'] -- The name of the subpage typically used for documentation pages. cfg['doc-subpage'] = 'doc' -- cfg['docpage-preload'] -- Preload file for template documentation pages in all namespaces. cfg['docpage-preload'] = 'Template:Documentation/preload' -- cfg['module-preload'] -- Preload file for Lua module documentation pages. cfg['module-preload'] = 'Template:Documentation/preload-module-doc' ---------------------------------------------------------------------------------------------------- -- HTML and CSS configuration ---------------------------------------------------------------------------------------------------- -- cfg['templatestyles'] -- The name of the TemplateStyles page where CSS is kept. -- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed. cfg['templatestyles'] = 'Module:Documentation/styles.css' -- cfg['container'] -- Class which can be used to set flex or grid CSS on the -- two child divs documentation and documentation-metadata cfg['container'] = 'documentation-container' -- cfg['main-div-classes'] -- Classes added to the main HTML "div" tag. cfg['main-div-classes'] = 'documentation' -- cfg['main-div-heading-class'] -- Class for the main heading for templates and modules and assoc. talk spaces cfg['main-div-heading-class'] = 'documentation-heading' -- cfg['start-box-class'] -- Class for the start box cfg['start-box-class'] = 'documentation-startbox' -- cfg['start-box-link-classes'] -- Classes used for the [view][edit][history] or [create] links in the start box. -- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]] cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks' -- cfg['end-box-class'] -- Class for the end box. cfg['end-box-class'] = 'documentation-metadata' -- cfg['end-box-plainlinks'] -- Plainlinks cfg['end-box-plainlinks'] = 'plainlinks' -- cfg['toolbar-class'] -- Class added for toolbar links. cfg['toolbar-class'] = 'documentation-toolbar' -- cfg['clear'] -- Just used to clear things. cfg['clear'] = 'documentation-clear' ---------------------------------------------------------------------------------------------------- -- Tracking category configuration ---------------------------------------------------------------------------------------------------- -- cfg['display-strange-usage-category'] -- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage -- or a /testcases subpage. This should be a boolean value (either true or false). cfg['display-strange-usage-category'] = true -- cfg['strange-usage-category'] -- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a -- /doc subpage or a /testcases subpage. cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage' --[[ ---------------------------------------------------------------------------------------------------- -- End configuration -- -- Don't edit anything below this line. ---------------------------------------------------------------------------------------------------- --]] return cfg 2z4v6f5nkabra0nulgb7sxch1cktfsn 151888 151887 2026-09-21T16:17:43Z 511KeV 8268 1 revision imported from [[:en:Module:Documentation/config]]: Needed Locally 151887 Scribunto text/plain ---------------------------------------------------------------------------------------------------- -- -- Configuration for Module:Documentation -- -- Here you can set the values of the parameters and messages used in Module:Documentation to -- localise it to your wiki and your language. Unless specified otherwise, values given here -- should be string values. ---------------------------------------------------------------------------------------------------- local cfg = {} -- Do not edit this line. ---------------------------------------------------------------------------------------------------- -- Protection template configuration ---------------------------------------------------------------------------------------------------- -- cfg['protection-reason-edit'] -- The protection reason for edit-protected templates to pass to -- [[Module:Protection banner]]. cfg['protection-reason-edit'] = 'template' --[[ ---------------------------------------------------------------------------------------------------- -- Sandbox notice configuration -- -- On sandbox pages the module can display a template notifying users that the current page is a -- sandbox, and the location of test cases pages, etc. The module decides whether the page is a -- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the -- messages that the notices contains. ---------------------------------------------------------------------------------------------------- --]] -- cfg['sandbox-notice-image'] -- The image displayed in the sandbox notice. cfg['sandbox-notice-image'] = '[[File:Edit In Sandbox Icon - Color.svg|50px|alt=|link=]]' --[[ -- cfg['sandbox-notice-pagetype-template'] -- cfg['sandbox-notice-pagetype-module'] -- cfg['sandbox-notice-pagetype-other'] -- The page type of the sandbox page. The message that is displayed depends on the current subject -- namespace. This message is used in either cfg['sandbox-notice-blurb'] or -- cfg['sandbox-notice-diff-blurb']. --]] cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page' cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page' cfg['sandbox-notice-pagetype-other'] = 'sandbox page' --[[ -- cfg['sandbox-notice-blurb'] -- cfg['sandbox-notice-diff-blurb'] -- cfg['sandbox-notice-diff-display'] -- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence -- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page -- type, which is either cfg['sandbox-notice-pagetype-template'], -- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what -- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between -- the sandbox and the main template. The display value of the diff link is set by -- cfg['sandbox-notice-compare-link-display']. --]] cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.' cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).' cfg['sandbox-notice-compare-link-display'] = 'diff' --[[ -- cfg['sandbox-notice-testcases-blurb'] -- cfg['sandbox-notice-testcases-link-display'] -- cfg['sandbox-notice-testcases-run-blurb'] -- cfg['sandbox-notice-testcases-run-link-display'] -- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit. $1 is a link to the test cases page. -- cfg['sandbox-notice-testcases-link-display'] is the display value for that link. -- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test -- cases page, and $2 is a link to the page to run it. -- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test -- cases. --]] cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.' cfg['sandbox-notice-testcases-link-display'] = 'test cases' cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).' cfg['sandbox-notice-testcases-run-link-display'] = 'run' -- cfg['sandbox-category'] - A category to add to all template sandboxes. -- cfg['module-sandbox-category'] - A category to add to all module sandboxes. -- cfg['module-sandbox-category'] - A category to add to all sandboxe not in templates or modules. cfg['sandbox-category'] = 'Template sandboxes' cfg['module-sandbox-category'] = 'Module sandboxes' cfg['other-sandbox-category'] = 'Sandboxes outside of template or module namespace' ---------------------------------------------------------------------------------------------------- -- Start box configuration ---------------------------------------------------------------------------------------------------- -- cfg['documentation-icon-wikitext'] -- The wikitext for the icon shown at the top of the template. cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- cfg['template-namespace-heading'] -- The heading shown in the template namespace. cfg['template-namespace-heading'] = 'Template documentation' -- cfg['module-namespace-heading'] -- The heading shown in the module namespace. cfg['module-namespace-heading'] = 'Module documentation' -- cfg['file-namespace-heading'] -- The heading shown in the file namespace. cfg['file-namespace-heading'] = 'Summary' -- cfg['other-namespaces-heading'] -- The heading shown in other namespaces. cfg['other-namespaces-heading'] = 'Documentation' -- cfg['view-link-display'] -- The text to display for "view" links. cfg['view-link-display'] = 'view' -- cfg['edit-link-display'] -- The text to display for "edit" links. cfg['edit-link-display'] = 'edit' -- cfg['history-link-display'] -- The text to display for "history" links. cfg['history-link-display'] = 'history' -- cfg['purge-link-display'] -- The text to display for "purge" links. cfg['purge-link-display'] = 'purge' -- cfg['create-link-display'] -- The text to display for "create" links. cfg['create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Link box (end box) configuration ---------------------------------------------------------------------------------------------------- -- cfg['transcluded-from-blurb'] -- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page. cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.' --[[ -- cfg['create-module-doc-blurb'] -- Notice displayed in the module namespace when the documentation subpage does not exist. -- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the -- display cfg['create-link-display']. --]] cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' ---------------------------------------------------------------------------------------------------- -- Experiment blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['experiment-blurb-template'] -- cfg['experiment-blurb-module'] -- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages. -- It is only shown in the template and module namespaces. With the default English settings, it -- might look like this: -- -- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages. -- -- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links. -- -- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending -- on what namespace we are in. -- -- Parameters: -- -- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display']) -- -- If the sandbox doesn't exist, it is in the format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display']) -- -- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload'] -- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display'] -- loads a default edit summary of cfg['mirror-edit-summary']. -- -- $2 is a link to the test cases page. If the test cases page exists, it is in the following format: -- -- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display']) -- -- If the test cases page doesn't exist, it is in the format: -- -- cfg['testcases-link-display'] (cfg['testcases-create-link-display']) -- -- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the -- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current -- namespace. --]] cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages." cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages." ---------------------------------------------------------------------------------------------------- -- Sandbox link configuration ---------------------------------------------------------------------------------------------------- -- cfg['sandbox-subpage'] -- The name of the template subpage typically used for sandboxes. cfg['sandbox-subpage'] = 'sandbox' -- cfg['template-sandbox-preload'] -- Preload file for template sandbox pages. cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox' -- cfg['module-sandbox-preload'] -- Preload file for Lua module sandbox pages. cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox' -- cfg['sandbox-link-display'] -- The text to display for "sandbox" links. cfg['sandbox-link-display'] = 'sandbox' -- cfg['sandbox-edit-link-display'] -- The text to display for sandbox "edit" links. cfg['sandbox-edit-link-display'] = 'edit' -- cfg['sandbox-create-link-display'] -- The text to display for sandbox "create" links. cfg['sandbox-create-link-display'] = 'create' -- cfg['compare-link-display'] -- The text to display for "compare" links. cfg['compare-link-display'] = 'diff' -- cfg['mirror-edit-summary'] -- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the -- template page. cfg['mirror-edit-summary'] = 'Create sandbox version of $1' -- cfg['mirror-link-display'] -- The text to display for "mirror" links. cfg['mirror-link-display'] = 'mirror' -- cfg['mirror-link-preload'] -- The page to preload when a user clicks the "mirror" link. cfg['mirror-link-preload'] = 'Template:Documentation/mirror' ---------------------------------------------------------------------------------------------------- -- Test cases link configuration ---------------------------------------------------------------------------------------------------- -- cfg['testcases-subpage'] -- The name of the template subpage typically used for test cases. cfg['testcases-subpage'] = 'testcases' -- cfg['template-testcases-preload'] -- Preload file for template test cases pages. cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases' -- cfg['module-testcases-preload'] -- Preload file for Lua module test cases pages. cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases' -- cfg['testcases-link-display'] -- The text to display for "testcases" links. cfg['testcases-link-display'] = 'testcases' -- cfg['testcases-edit-link-display'] -- The text to display for test cases "edit" links. cfg['testcases-edit-link-display'] = 'edit' -- cfg['testcases-run-link-display'] -- The text to display for test cases "run" links. cfg['testcases-run-link-display'] = 'run' -- cfg['testcases-create-link-display'] -- The text to display for test cases "create" links. cfg['testcases-create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Add categories blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['add-categories-blurb'] -- Text to direct users to add categories to the /doc subpage. Not used if the "content" or -- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a -- link to the /doc subpage with a display value of cfg['doc-link-display']. --]] cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.' -- cfg['doc-link-display'] -- The text to display when linking to the /doc subpage. cfg['doc-link-display'] = '/doc' ---------------------------------------------------------------------------------------------------- -- Subpages link configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['subpages-blurb'] -- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a -- display value of cfg['subpages-link-display']. In the English version this blurb is simply -- the link followed by a period, and the link display provides the actual text. --]] cfg['subpages-blurb'] = '$1.' --[[ -- cfg['subpages-link-display'] -- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'], -- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in -- the template namespace, the module namespace, or another namespace. --]] cfg['subpages-link-display'] = 'Subpages of this $1' -- cfg['template-pagetype'] -- The pagetype to display for template pages. cfg['template-pagetype'] = 'template' -- cfg['module-pagetype'] -- The pagetype to display for Lua module pages. cfg['module-pagetype'] = 'module' -- cfg['default-pagetype'] -- The pagetype to display for pages other than templates or Lua modules. cfg['default-pagetype'] = 'page' ---------------------------------------------------------------------------------------------------- -- Doc link configuration ---------------------------------------------------------------------------------------------------- -- cfg['doc-subpage'] -- The name of the subpage typically used for documentation pages. cfg['doc-subpage'] = 'doc' -- cfg['docpage-preload'] -- Preload file for template documentation pages in all namespaces. cfg['docpage-preload'] = 'Template:Documentation/preload' -- cfg['module-preload'] -- Preload file for Lua module documentation pages. cfg['module-preload'] = 'Template:Documentation/preload-module-doc' ---------------------------------------------------------------------------------------------------- -- HTML and CSS configuration ---------------------------------------------------------------------------------------------------- -- cfg['templatestyles'] -- The name of the TemplateStyles page where CSS is kept. -- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed. cfg['templatestyles'] = 'Module:Documentation/styles.css' -- cfg['container'] -- Class which can be used to set flex or grid CSS on the -- two child divs documentation and documentation-metadata cfg['container'] = 'documentation-container' -- cfg['main-div-classes'] -- Classes added to the main HTML "div" tag. cfg['main-div-classes'] = 'documentation' -- cfg['main-div-heading-class'] -- Class for the main heading for templates and modules and assoc. talk spaces cfg['main-div-heading-class'] = 'documentation-heading' -- cfg['start-box-class'] -- Class for the start box cfg['start-box-class'] = 'documentation-startbox' -- cfg['start-box-link-classes'] -- Classes used for the [view][edit][history] or [create] links in the start box. -- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]] cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks' -- cfg['end-box-class'] -- Class for the end box. cfg['end-box-class'] = 'documentation-metadata' -- cfg['end-box-plainlinks'] -- Plainlinks cfg['end-box-plainlinks'] = 'plainlinks' -- cfg['toolbar-class'] -- Class added for toolbar links. cfg['toolbar-class'] = 'documentation-toolbar' -- cfg['clear'] -- Just used to clear things. cfg['clear'] = 'documentation-clear' ---------------------------------------------------------------------------------------------------- -- Tracking category configuration ---------------------------------------------------------------------------------------------------- -- cfg['display-strange-usage-category'] -- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage -- or a /testcases subpage. This should be a boolean value (either true or false). cfg['display-strange-usage-category'] = true -- cfg['strange-usage-category'] -- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a -- /doc subpage or a /testcases subpage. cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage' --[[ ---------------------------------------------------------------------------------------------------- -- End configuration -- -- Don't edit anything below this line. ---------------------------------------------------------------------------------------------------- --]] return cfg 2z4v6f5nkabra0nulgb7sxch1cktfsn Module:Documentation/styles.css 828 6657 151889 38486 2026-06-19T03:19:17Z en>Izno 0 add margins 151889 sanitized-css text/css /* {{pp|small=yes}} */ .documentation, .documentation-metadata { border: 1px solid var( --border-color-base, #a2a9b1 ); background-color: #ecfcf4; color:inherit; clear: both; } .documentation { margin: 1em 0 0 0; padding: 1em; } .documentation-metadata { margin: 0.2em 0; /* same margin left-right as .documentation */ font-style: italic; padding: 0.4em 1em; /* same padding left-right as .documentation */ } .documentation-startbox { padding-bottom: 3px; border-bottom: 1px solid var( --border-color-base, #a2a9b1 ); margin-bottom: 1ex; } .documentation-heading { font-weight: bold; font-size: 125%; } body.skin-minerva .documentation-startbox .mw-editsection-like a, body.skin-timeless .documentation-startbox .mw-editsection-like a { display: inline-block; margin-left: 0.3em; margin-right: 0.3em; } .documentation-clear { /* Don't want things to stick out where they shouldn't. */ clear: both; } .documentation-toolbar { font-style: normal; font-size: 85%; } @media screen { html.skin-theme-clientpref-night .documentation, html.skin-theme-clientpref-night .documentation-metadata { background-color: #0b1e1c; } } @media screen and ( prefers-color-scheme: dark ) { html.skin-theme-clientpref-os .documentation, html.skin-theme-clientpref-os .documentation-metadata { background-color: #0b1e1c; } } ohekqp4ao232tow40gho8bknn5qdpvd 151890 151889 2026-09-21T16:17:43Z 511KeV 8268 1 revision imported from [[:en:Module:Documentation/styles.css]]: Needed Locally 151889 sanitized-css text/css /* {{pp|small=yes}} */ .documentation, .documentation-metadata { border: 1px solid var( --border-color-base, #a2a9b1 ); background-color: #ecfcf4; color:inherit; clear: both; } .documentation { margin: 1em 0 0 0; padding: 1em; } .documentation-metadata { margin: 0.2em 0; /* same margin left-right as .documentation */ font-style: italic; padding: 0.4em 1em; /* same padding left-right as .documentation */ } .documentation-startbox { padding-bottom: 3px; border-bottom: 1px solid var( --border-color-base, #a2a9b1 ); margin-bottom: 1ex; } .documentation-heading { font-weight: bold; font-size: 125%; } body.skin-minerva .documentation-startbox .mw-editsection-like a, body.skin-timeless .documentation-startbox .mw-editsection-like a { display: inline-block; margin-left: 0.3em; margin-right: 0.3em; } .documentation-clear { /* Don't want things to stick out where they shouldn't. */ clear: both; } .documentation-toolbar { font-style: normal; font-size: 85%; } @media screen { html.skin-theme-clientpref-night .documentation, html.skin-theme-clientpref-night .documentation-metadata { background-color: #0b1e1c; } } @media screen and ( prefers-color-scheme: dark ) { html.skin-theme-clientpref-os .documentation, html.skin-theme-clientpref-os .documentation-metadata { background-color: #0b1e1c; } } ohekqp4ao232tow40gho8bknn5qdpvd Module:Lua banner 828 6662 151909 77780 2024-04-05T02:45:24Z en>Uzume 0 protect against "mw.title.new()" returns "nil" 151909 Scribunto text/plain -- This module implements the {{lua}} template. local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local p = {} function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('^%s*(.-)%s*$') if v ~= '' then args[k] = v end end return p._main(args) end function p._main(args) local modules = mTableTools.compressSparseArray(args) local box = p.renderBox(modules) local trackingCategories = p.renderTrackingCategories(args, modules) return box .. trackingCategories end function p.renderBox(modules) local boxArgs = {} if #modules < 1 then boxArgs.text = '<strong class="error">Error: no modules specified</strong>' else local moduleLinks = {} for i, module in ipairs(modules) do moduleLinks[i] = string.format('[[:%s]]', module) local maybeSandbox = mw.title.new(module .. '/sandbox') if maybeSandbox and maybeSandbox.exists then moduleLinks[i] = moduleLinks[i] .. string.format(' ([[:%s|sandbox]])', maybeSandbox.fullText) end end local moduleList = mList.makeList('bulleted', moduleLinks) local title = mw.title.getCurrentTitle() if title.subpageText == "doc" then title = title.basePageTitle end if title.contentModel == "Scribunto" then boxArgs.text = 'This module depends on the following other modules:' .. moduleList else boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList end end boxArgs.type = 'notice' boxArgs.small = true boxArgs.image = '[[File:Lua-Logo.svg|30px|alt=|link=]]' return mMessageBox.main('mbox', boxArgs) end function p.renderTrackingCategories(args, modules, titleObj) if yesno(args.nocat) then return '' end local cats = {} -- Error category if #modules < 1 then cats[#cats + 1] = 'Lua templates with errors' end -- Lua templates category titleObj = titleObj or mw.title.getCurrentTitle() local subpageBlacklist = { doc = true, sandbox = true, sandbox2 = true, testcases = true } if not subpageBlacklist[titleObj.subpageText] then local protCatName if titleObj.namespace == 10 then local category = args.category if not category then local categories = { ['Module:String'] = 'Templates based on the String Lua module', ['Module:Math'] = 'Templates based on the Math Lua module', ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module', ['Module:Citation/CS1'] = 'Templates based on the Citation/CS1 Lua module' } category = modules[1] and categories[modules[1]] category = category or 'Lua-based templates' end cats[#cats + 1] = category protCatName = "Templates using under-protected Lua modules" elseif titleObj.namespace == 828 then protCatName = "Modules depending on under-protected modules" end if not args.noprotcat and protCatName then local protLevels = { autoconfirmed = 1, extendedconfirmed = 2, templateeditor = 3, sysop = 4 } local currentProt if titleObj.id ~= 0 then -- id is 0 (page does not exist) if am previewing before creating a template. currentProt = titleObj.protectionLevels["edit"][1] end if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end for i, module in ipairs(modules) do if module ~= "WP:libraryUtil" then local moduleTitle = mw.title.new(module) local moduleProt = moduleTitle and moduleTitle.protectionLevels["edit"][1] if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end if moduleProt < currentProt then cats[#cats + 1] = protCatName break end end end end end for i, cat in ipairs(cats) do cats[i] = string.format('[[Category:%s]]', cat) end return table.concat(cats) end return p dq7qzq2ns8wqfpy25uvhp3np9z9bde7 151910 151909 2026-09-21T16:34:12Z 511KeV 8268 1 revision imported from [[:en:Module:Lua_banner]] 151909 Scribunto text/plain -- This module implements the {{lua}} template. local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local p = {} function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('^%s*(.-)%s*$') if v ~= '' then args[k] = v end end return p._main(args) end function p._main(args) local modules = mTableTools.compressSparseArray(args) local box = p.renderBox(modules) local trackingCategories = p.renderTrackingCategories(args, modules) return box .. trackingCategories end function p.renderBox(modules) local boxArgs = {} if #modules < 1 then boxArgs.text = '<strong class="error">Error: no modules specified</strong>' else local moduleLinks = {} for i, module in ipairs(modules) do moduleLinks[i] = string.format('[[:%s]]', module) local maybeSandbox = mw.title.new(module .. '/sandbox') if maybeSandbox and maybeSandbox.exists then moduleLinks[i] = moduleLinks[i] .. string.format(' ([[:%s|sandbox]])', maybeSandbox.fullText) end end local moduleList = mList.makeList('bulleted', moduleLinks) local title = mw.title.getCurrentTitle() if title.subpageText == "doc" then title = title.basePageTitle end if title.contentModel == "Scribunto" then boxArgs.text = 'This module depends on the following other modules:' .. moduleList else boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList end end boxArgs.type = 'notice' boxArgs.small = true boxArgs.image = '[[File:Lua-Logo.svg|30px|alt=|link=]]' return mMessageBox.main('mbox', boxArgs) end function p.renderTrackingCategories(args, modules, titleObj) if yesno(args.nocat) then return '' end local cats = {} -- Error category if #modules < 1 then cats[#cats + 1] = 'Lua templates with errors' end -- Lua templates category titleObj = titleObj or mw.title.getCurrentTitle() local subpageBlacklist = { doc = true, sandbox = true, sandbox2 = true, testcases = true } if not subpageBlacklist[titleObj.subpageText] then local protCatName if titleObj.namespace == 10 then local category = args.category if not category then local categories = { ['Module:String'] = 'Templates based on the String Lua module', ['Module:Math'] = 'Templates based on the Math Lua module', ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module', ['Module:Citation/CS1'] = 'Templates based on the Citation/CS1 Lua module' } category = modules[1] and categories[modules[1]] category = category or 'Lua-based templates' end cats[#cats + 1] = category protCatName = "Templates using under-protected Lua modules" elseif titleObj.namespace == 828 then protCatName = "Modules depending on under-protected modules" end if not args.noprotcat and protCatName then local protLevels = { autoconfirmed = 1, extendedconfirmed = 2, templateeditor = 3, sysop = 4 } local currentProt if titleObj.id ~= 0 then -- id is 0 (page does not exist) if am previewing before creating a template. currentProt = titleObj.protectionLevels["edit"][1] end if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end for i, module in ipairs(modules) do if module ~= "WP:libraryUtil" then local moduleTitle = mw.title.new(module) local moduleProt = moduleTitle and moduleTitle.protectionLevels["edit"][1] if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end if moduleProt < currentProt then cats[#cats + 1] = protCatName break end end end end end for i, cat in ipairs(cats) do cats[i] = string.format('[[Category:%s]]', cat) end return table.concat(cats) end return p dq7qzq2ns8wqfpy25uvhp3np9z9bde7 میٖڈیاوِکی:Gadgets-definition 8 7971 151870 151819 2026-09-21T14:26:29Z 511KeV 8268 Added 151870 wikitext text/x-wiki * HotCat[rights=edit]|HotCat.js * XTools-ArticleInfo|XTools-ArticleInfo.js * watchlist-notice[default|rights=viewmywatchlist]|watchlist-notice.js * watchlist-notice-core[dependencies=mediawiki.storage|hidden]|watchlist-notice-core.js * Navigation_popups[dependencies=mediawiki.user,mediawiki.util,user.options|type=general]|popups.js|navpop.css *ReferenceTooltips[skins=vector,vector-2022,monobook,timeless,modern,cologneblue|type=general]|ReferenceTooltips.js|ReferenceTooltips.css * dark-mode-toggle[targets=desktop,mobile|dependencies=mediawiki.util,mediawiki.api,mediawiki.Uri,mediawiki.storage|peers=dark-mode-toggle-pagestyles]|dark-mode-toggle.js * dark-mode-toggle-pagestyles[hidden|skins=vector,monobook]|dark-mode-toggle-pagestyles.css *dark-mode [targets = desktop, mobile] | dark-mode.css *Shortdesc-helper[dependencies=mediawiki.api,oojs-ui-core,oojs-ui-widgets|skins=vector,monobook,modern,timeless|peers=Shortdesc-helper-pagestyles-vector]|Shortdesc-helper.js|Shortdesc-helper.css * defaultsummaries[dependencies=oojs-ui-core]|defaultsummaries.js *afchelper[dependencies=mediawiki.api,mediawiki.util,mediawiki.user,jquery.chosen,jquery.spinner,jquery.ui]|afchelper.js|afchelper.css * owidslider [default|categories=Pages using gadget owidslider]|owidslider.js|owidslider.css * owidslidertest [default|categories=Pages using gadget owidslider(test)]|owidslider(test).js|owidslider(test).css *ImageStackPopup [ ResourceLoader | default | categories = Pages using gadget ImageStackPopup ] | ImageStackPopup.js | ImageStackPopup.css 7kuu8ppsddmdi5v208txo8bdx64n91n 151874 151870 2026-09-21T15:11:05Z 511KeV 8268 /* */ Add 151874 wikitext text/x-wiki * HotCat[rights=edit]|HotCat.js * XTools-ArticleInfo|XTools-ArticleInfo.js * watchlist-notice[default|rights=viewmywatchlist]|watchlist-notice.js * watchlist-notice-core[dependencies=mediawiki.storage|hidden]|watchlist-notice-core.js * Navigation_popups[dependencies=mediawiki.user,mediawiki.util,user.options|type=general]|popups.js|navpop.css *ReferenceTooltips[skins=vector,vector-2022,monobook,timeless,modern,cologneblue|type=general]|ReferenceTooltips.js|ReferenceTooltips.css * dark-mode-toggle[targets=desktop,mobile|dependencies=mediawiki.util,mediawiki.api,mediawiki.Uri,mediawiki.storage|peers=dark-mode-toggle-pagestyles]|dark-mode-toggle.js * dark-mode-toggle-pagestyles[hidden|skins=vector,monobook]|dark-mode-toggle-pagestyles.css *dark-mode [targets = desktop, mobile] | dark-mode.css *Shortdesc-helper[dependencies=mediawiki.api,oojs-ui-core,oojs-ui-widgets|skins=vector,monobook,modern,timeless|peers=Shortdesc-helper-pagestyles-vector]|Shortdesc-helper.js|Shortdesc-helper.css * defaultsummaries[dependencies=oojs-ui-core]|defaultsummaries.js *afchelper[dependencies=mediawiki.api,mediawiki.util,mediawiki.user,jquery.chosen,jquery.spinner,jquery.ui]|afchelper.js|afchelper.css * owidslider [default|categories=Pages using gadget owidslider]|owidslider.js|owidslider.css * owidslidertest [default|categories=Pages using gadget owidslider(test)]|owidslider(test).js|owidslider(test).css * ImageStackPopup [ default | categories = Pages using gadget ImageStackPopup ] | ImageStackPopup.js | ImageStackPopup.css mtcc32jaufxt1bpqbqn0luhtew97g46 151876 151874 2026-09-21T15:48:44Z 511KeV 8268 فیز 151876 wikitext text/x-wiki * HotCat[rights=edit]|HotCat.js * XTools-ArticleInfo|XTools-ArticleInfo.js * watchlist-notice[default|rights=viewmywatchlist]|watchlist-notice.js * watchlist-notice-core[dependencies=mediawiki.storage|hidden]|watchlist-notice-core.js * Navigation_popups[dependencies=mediawiki.user,mediawiki.util,user.options|type=general]|popups.js|navpop.css *ReferenceTooltips[skins=vector,vector-2022,monobook,timeless,modern,cologneblue|type=general]|ReferenceTooltips.js|ReferenceTooltips.css * dark-mode-toggle[targets=desktop,mobile|dependencies=mediawiki.util,mediawiki.api,mediawiki.Uri,mediawiki.storage|peers=dark-mode-toggle-pagestyles]|dark-mode-toggle.js * dark-mode-toggle-pagestyles[hidden|skins=vector,monobook]|dark-mode-toggle-pagestyles.css *dark-mode [targets = desktop, mobile] | dark-mode.css *Shortdesc-helper[dependencies=mediawiki.api,oojs-ui-core,oojs-ui-widgets|skins=vector,monobook,modern,timeless|peers=Shortdesc-helper-pagestyles-vector]|Shortdesc-helper.js|Shortdesc-helper.css * defaultsummaries[dependencies=oojs-ui-core]|defaultsummaries.js *afchelper[dependencies=mediawiki.api,mediawiki.util,mediawiki.user,jquery.chosen,jquery.spinner,jquery.ui]|afchelper.js|afchelper.css * ImageStackPopup [ default | categories = Pages using gadget ImageStackPopup ] | ImageStackPopup.js | ImageStackPopup.css * owidslider [default|categories=Pages using gadget owidslider]|owidslider.js|owidslider.css hn9vjh5gdraj4rmrtzfvsjl8rg3bh5p وِکیٖپیٖڈیا:یَتھ تٲریٖخَس پؠٹھ/سَتَمبَر 4 10852 151925 151305 2026-09-22T02:24:32Z 511KeV 8268 /* 22 */ اق 151925 wikitext text/x-wiki {{یَتھ تٲریٖخَس پؠٹھ سرنامہ}} ===1=== ===2=== ===3=== ===4=== ===5=== ===6=== ===7=== *1936 – [[آسٹریلیا]] کِس ہوبارٹ چڑیا گھرس منٛز موٗد ٲخری تھائیلاسین قٲد منٛز۔ *1986 – ڈیسمنڈ ٹوٹو بنیو جنوبی افریقہس منٛز اینگلیکن چرچُک گۄڈنیُک سیاہ فام رہنما۔ ===8=== ===9=== ===10=== ===11=== ===12=== ===13=== ===14=== ===15=== ===16=== ===17=== ===18=== ===19=== ===20=== ===21=== ===22=== '''[[سَتَمبَر 22]]''' {{main page image/OTD|File:Nordhordalandsbrua towards north.jpg|نورڈہو دالہنڈ کدل}} * 1979 – أکؠ [[امریکی]] ویلا سیٹلائٹن وُچھ بحر ہند منٛز پرنس ایڈورڈ جزیرس نزدیٖکھ گاشُک اکھ نامعلوم چمک، یُس جوہری ہتھیارن ہُند تجربہٕ اوس ماننہٕ یوان۔ * 1994 - نورڈورڈ لینڈ برج (تصویر منٛز)، یُس ویسٹ لینڈس منٛز کلاوانیسیٹ تہٕ فلیٹس درمیان سالہوسفجورڈن پیٹھ پھہلتھ چُھ، تہٕ ناروے ہنٛد دیم سارِوٕے کھوتہٕ زیوٹھ کدٕل، آو باضٲبطہٕ طور پٲٹھؠ عوامس خٲطرٕ ییلہ تراونہٕ۔ ===23=== ===24=== *1939 سِندہی لوٗکہٕ گُلوکار [[زِبُون نِسّا]] زاے. ===25=== ===26=== ===27=== ===28=== ===29=== ===30=== ===31=== ttxdfztgq2c4n49lyf46d6w6ztgcusd 151942 151925 2026-09-22T07:22:04Z آیات محراج 11062 /* 24 */ 151942 wikitext text/x-wiki {{یَتھ تٲریٖخَس پؠٹھ سرنامہ}} ===1=== ===2=== ===3=== ===4=== ===5=== ===6=== ===7=== *1936 – [[آسٹریلیا]] کِس ہوبارٹ چڑیا گھرس منٛز موٗد ٲخری تھائیلاسین قٲد منٛز۔ *1986 – ڈیسمنڈ ٹوٹو بنیو جنوبی افریقہس منٛز اینگلیکن چرچُک گۄڈنیُک سیاہ فام رہنما۔ ===8=== ===9=== ===10=== ===11=== ===12=== ===13=== ===14=== ===15=== ===16=== ===17=== ===18=== ===19=== ===20=== ===21=== ===22=== '''[[سَتَمبَر 22]]''' {{main page image/OTD|File:Nordhordalandsbrua towards north.jpg|نورڈہو دالہنڈ کدل}} * 1979 – أکؠ [[امریکی]] ویلا سیٹلائٹن وُچھ بحر ہند منٛز پرنس ایڈورڈ جزیرس نزدیٖکھ گاشُک اکھ نامعلوم چمک، یُس جوہری ہتھیارن ہُند تجربہٕ اوس ماننہٕ یوان۔ * 1994 - نورڈورڈ لینڈ برج (تصویر منٛز)، یُس ویسٹ لینڈس منٛز کلاوانیسیٹ تہٕ فلیٹس درمیان سالہوسفجورڈن پیٹھ پھہلتھ چُھ، تہٕ ناروے ہنٛد دیم سارِوٕے کھوتہٕ زیوٹھ کدٕل، آو باضٲبطہٕ طور پٲٹھؠ عوامس خٲطرٕ ییلہ تراونہٕ۔ ===23=== ===24=== *1939 سِندہی لوٗکہٕ گُلوکار [[زیبُن نِسا]] زاے. ===25=== ===26=== ===27=== ===28=== ===29=== ===30=== ===31=== qniqqr033hsun97a5afmmne8iwa60ff Module:Message box/ombox.css 828 12865 151913 62183 2026-09-13T20:36:59Z en>Izno 0 border colors per tper 151913 sanitized-css text/css /* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid var(--border-color-base, #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-width: 2px; /* 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 */ } } smmnp6ybvr30s6idatyj2wvfmnypvlu 151914 151913 2026-09-21T16:34:12Z 511KeV 8268 1 revision imported from [[:en:Module:Message_box/ombox.css]] 151913 sanitized-css text/css /* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid var(--border-color-base, #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-width: 2px; /* 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 */ } } smmnp6ybvr30s6idatyj2wvfmnypvlu وِکیٖپیٖڈیا:رُکُن فِہرِست اؠڈِٹ تَعداد مُطٲبِق 4 14505 151924 151835 2026-09-21T18:01:01Z Nadeemulhaqmir-bot 9480 Updated List of Wikipedians 151924 wikitext text/x-wiki == List of Wikipedians by number of edits == <div style="direction:ltr"> {| class="wikitable" |- style="white-space:nowrap;" ! No. ! User ! Edit count |- | 1 | [[User: آیات محراج | آیات محراج]] | [[Special:Contributions/آیات محراج|37362]] |- | 2 | <small><sub><span style="color:grey;"> </span></sub></small>[[User:511KeV|<span style="font-family:sans-serif; color:#FF1100; text-shadow:.2em .2em .4em #AfAfB1;">'''511KeV'''</span>]] [[User_talk:511KeV|<sup> '' (کتھ باتھ)''</sup>]] | [[Special:Contributions/511KeV|21575]] |- | 3 | [[User:Nadeemulhaqmir-bot|<span style="font-weight: 700; font-family: cursive;color: #41bf14;text-shadow: -1px 1px 0px #030318;">Mir-Bot</span>🍁]][[User_talk:Nadeemulhaqmir-bot|<sup>Talk</sup>]] | [[Special:Contributions/Nadeemulhaqmir-bot|14593]] |- | 4 | [[User: Uhaas bot | Uhaas bot]] | [[Special:Contributions/Uhaas bot|11723]] |- | 5 | [[User: SakuraBot | SakuraBot]] | [[Special:Contributions/SakuraBot|3589]] |- | 6 | [[User: SieBot | SieBot]] | [[Special:Contributions/SieBot|2432]] |- | 7 | [[User: Xqbot | Xqbot]] | [[Special:Contributions/Xqbot|2374]] |- | 8 | [[User: Humzah Rouf Phumboo | Humzah Rouf Phumboo]] | [[Special:Contributions/Humzah Rouf Phumboo|2268]] |- | 9 | [[User: Koshur | Koshur]] | [[Special:Contributions/Koshur|2227]] |- | 10 | —[[User:InternetArchiveBot|'''<span style="color:darkgrey;font-family:Courier New">InternetArchiveBot</span>''']] <span style="color:green;font-family:Rockwell">([[:en:User talk:InternetArchiveBot|Report bug]])</span> | [[Special:Contributions/InternetArchiveBot|1869]] |- |} </div> 6ptu4i7wlwu4xwiel6cdwasmhx8zp7h گُلاب بایی 0 14977 151944 76081 2026-09-22T07:32:32Z آیات محراج 11062 [[گُلاب بائی]] صَفہٕ آو پَکناونہٕ [[گُلاب بایی]] جاے، پَکناوَن وول صٲرف آیات محراج : ئ isn't used in kashmiri orthography 76081 wikitext text/x-wiki {{مولوٗماتھ}} '''گُلاب بائی''' زأے 19260منز تہِ سپد فوت 1996منز۔ یہٕ أس گُلاب جان کہِ ناو سیت مَشہوٗر.أس ناؤتنکی <ref>http://www.oxfordreference.com/view/10.1093/acref/9780195644463.001.0001/acref-9780195644463-e-0203</ref>ہٕنٛدس ایکہِ ہِندوستٲنؠ سٹیج پرفارمر.کوڈنچ خاتوٗن ٹردیشنل اپٹاک دراما.<ref>{{ویب حَوالہٕ|date=2012-05-10|title=Dying Drama by Deepti Priya Mehrotra|url=http://www.boloji.com/index.cfm?md=Content&sd=Articles&ArticleID=6264|access-date=2023-02-09|website=web.archive.org|archive-date=2012-05-10|archive-url=https://web.archive.org/web/20120510211854/http://www.boloji.com/index.cfm?md=Content&sd=Articles&ArticleID=6264|url-status=bot: unknown}}</ref> <ref>https://www.amazon.in/dp/0143100432</ref>ام ترو گلاب تھرپی کومپنی.<ref>{{کِتاب حَوالہٕ|last=Mehrotra|first=Deepti Priya|url=https://books.google.com/books?id=tjyemJStPpUC&q=the+Great+Gulab+Theatre+Company&pg=PA179|title=Gulab Bai: The Queen of Nautanki Theatre|date=2006|publisher=Penguin Books India|isbn=978-0-14-310043-0|language=en}}</ref> امس آو حکومتہ کہ ترفہ پدماشری تہ دانہ 1990 مَنٛز.<ref>{{ویب حَوالہٕ |url=http://mha.nic.in/sites/upload_files/mha/files/LST-PDAWD-2013.pdf |title=Archived copy |access-date=2023-02-09 |archive-date=2015-10-15 |archive-url=https://web.archive.org/web/20151015193758/http://mha.nic.in/sites/upload_files/mha/files/LST-PDAWD-2013.pdf |url-status=dead }}</ref> ==سیرت== گُلاب بائی زأے 1926 بلپوروا، فرخ آباد ہندوستانس مَنٛز۔ اکس پیتھکھورہ الاکس بیڈیا زٕژ مَنٛز.<ref>http://www.oxfordreference.com/view/10.1093/acref/9780195644463.001.0001/acref-9780195644463-e-0203</ref> <ref>http://www.penguinbooksindia.com/en/content/gulab-bai%3Frate=vj-3_Ysjn8fztsCuUwS58mO9GKm6pQF6ryBeBtgAo-M.html</ref>تم کرٕ ابتداہی موٗسیٖقی ہُنٛد تٲلیٖم وۄستاد ترموہن لال کانپور گرانہ تہ وۄستاد محمد خان ہرٹھیس گرانہ نش حٲصِل۔ 1931 لوگ امہٕ عوٲمی طورس پؠٹھ پنن ہنر ہاون تہ کورن ترموہن لالس نوتنکی ٹولہ مَنٛز شمولیت اَمہِ ساتہ أوس امسنز وانس 13، تہ بنی گوڈنچ زنان ہنرباز.اَمہِ کور موٗسیٖقی ہُنٛد انڈجویل سٹاہل پادہ تہ اَمہِ سیت میلوس گلاب جان ناو. حکومتِ ہندن دیوت امس پدما شری انعام 1990 مَنٛز.<ref>{{ویب حَوالہٕ |url=http://mha.nic.in/sites/upload_files/mha/files/LST-PDAWD-2013.pdf |title=Archived copy |access-date=2023-02-09 |archive-date=2015-10-15 |archive-url=https://web.archive.org/web/20151015193758/http://mha.nic.in/sites/upload_files/mha/files/LST-PDAWD-2013.pdf |url-status=dead }}</ref> امہٕ پتہ 6 وہر سپد گُلاب بائی فوت، 70 وہورشی مَنٛز۔ امسنز زندگی پؠٹھ بنوکھ اَکھ سٹیج 2014 مَنٛز.<ref>http://www.oxfordreference.com/view/10.1093/acref/9780195644463.001.0001/acref-9780195644463-e-0203</ref> ==مٔزیٖد وُچھِو== *[[ماسوق سلطان]] *[[ڈولی گلیریا]] *[[ڈاکٹر باسنتی بِشت]] ==حَوالہٕ== {{حَوالہٕ}} [[زٲژ:ہِندوستٲنؠ لوٗکہٕ گُلوکار]] [[زٲژ:ہِندوستٲنؠ زَنان لوٗکہٕ گُلوکار]] [[زٲژ:1996 وَفات]] [[زٲژ:20 صٔدی ہِندوستان زَنان گُلوکار]] bmnw24miyq8xse19wfsu9fcq1m416zu 151948 151944 2026-09-22T07:33:47Z آیات محراج 11062 /* */ 151948 wikitext text/x-wiki {{مولوٗماتھ}} '''گُلاب بایی''' زاے 19260منز تہِ سپد فوت 1996منز۔ یہٕ أس گُلاب جان کہِ ناو سیت مَشہوٗر.أس نوٹنکی <ref>http://www.oxfordreference.com/view/10.1093/acref/9780195644463.001.0001/acref-9780195644463-e-0203</ref>ہٕنٛدس ایکہِ ہِندوستٲنؠ سٹیج پرفارمر.کوڈنچ خاتوٗن ٹردیشنل اپٹاک دراما.<ref>{{ویب حَوالہٕ|date=2012-05-10|title=Dying Drama by Deepti Priya Mehrotra|url=http://www.boloji.com/index.cfm?md=Content&sd=Articles&ArticleID=6264|access-date=2023-02-09|website=web.archive.org|archive-date=2012-05-10|archive-url=https://web.archive.org/web/20120510211854/http://www.boloji.com/index.cfm?md=Content&sd=Articles&ArticleID=6264|url-status=bot: unknown}}</ref> <ref>https://www.amazon.in/dp/0143100432</ref>ام ترو گلاب تھرپی کومپنی.<ref>{{کِتاب حَوالہٕ|last=Mehrotra|first=Deepti Priya|url=https://books.google.com/books?id=tjyemJStPpUC&q=the+Great+Gulab+Theatre+Company&pg=PA179|title=Gulab Bai: The Queen of Nautanki Theatre|date=2006|publisher=Penguin Books India|isbn=978-0-14-310043-0|language=en}}</ref> امس آو حکومتہ کہ ترفہ پدماشری تہ دانہ 1990 مَنٛز.<ref>{{ویب حَوالہٕ |url=http://mha.nic.in/sites/upload_files/mha/files/LST-PDAWD-2013.pdf |title=Archived copy |access-date=2023-02-09 |archive-date=2015-10-15 |archive-url=https://web.archive.org/web/20151015193758/http://mha.nic.in/sites/upload_files/mha/files/LST-PDAWD-2013.pdf |url-status=dead }}</ref> ==سیرت== گُلاب بائی زأے 1926 بلپوروا، فرخ آباد ہندوستانس مَنٛز۔ اکس پیتھکھورہ الاکس بیڈیا زٕژ مَنٛز.<ref>http://www.oxfordreference.com/view/10.1093/acref/9780195644463.001.0001/acref-9780195644463-e-0203</ref> <ref>http://www.penguinbooksindia.com/en/content/gulab-bai%3Frate=vj-3_Ysjn8fztsCuUwS58mO9GKm6pQF6ryBeBtgAo-M.html</ref>تم کرٕ ابتداہی موٗسیٖقی ہُنٛد تٲلیٖم وۄستاد ترموہن لال کانپور گرانہ تہ وۄستاد محمد خان ہرٹھیس گرانہ نش حٲصِل۔ 1931 لوگ امہٕ عوٲمی طورس پؠٹھ پنن ہنر ہاون تہ کورن ترموہن لالس نوتنکی ٹولہ مَنٛز شمولیت اَمہِ ساتہ أوس امسنز وانس 13، تہ بنی گوڈنچ زنان ہنرباز.اَمہِ کور موٗسیٖقی ہُنٛد انڈجویل سٹاہل پادہ تہ اَمہِ سیت میلوس گلاب جان ناو. حکومتِ ہندن دیوت امس پدما شری انعام 1990 مَنٛز.<ref>{{ویب حَوالہٕ |url=http://mha.nic.in/sites/upload_files/mha/files/LST-PDAWD-2013.pdf |title=Archived copy |access-date=2023-02-09 |archive-date=2015-10-15 |archive-url=https://web.archive.org/web/20151015193758/http://mha.nic.in/sites/upload_files/mha/files/LST-PDAWD-2013.pdf |url-status=dead }}</ref> امہٕ پتہ 6 وہر سپد گُلاب بائی فوت، 70 وہورشی مَنٛز۔ امسنز زندگی پؠٹھ بنوکھ اَکھ سٹیج 2014 مَنٛز.<ref>http://www.oxfordreference.com/view/10.1093/acref/9780195644463.001.0001/acref-9780195644463-e-0203</ref> ==مٔزیٖد وُچھِو== *[[ماسوق سلطان]] *[[ڈولی گلیریا]] *[[ڈاکٹر باسنتی بِشت]] ==حَوالہٕ== {{حَوالہٕ}} [[زٲژ:ہِندوستٲنؠ لوٗکہٕ گُلوکار]] [[زٲژ:ہِندوستٲنؠ زَنان لوٗکہٕ گُلوکار]] [[زٲژ:1996 وَفات]] [[زٲژ:20 صٔدی ہِندوستان زَنان گُلوکار]] b3jyvpmup82rannfl1xt1g06ppgo9ye کَتھ:گُلاب بایی 1 14978 151946 71672 2026-09-22T07:32:33Z آیات محراج 11062 [[کَتھ:گُلاب بائی]] صَفہٕ آو پَکناونہٕ [[کَتھ:گُلاب بایی]] جاے، پَکناوَن وول صٲرف آیات محراج : ئ isn't used in kashmiri orthography 71672 wikitext text/x-wiki {{زَنانہٕ تہٕ لُکہٕ اَدب اؠڈِٹ مُقابلہٕ 2023 کَتھ صَفہٕ فرما}} 50m5plx8o9rbdqxbcaeno3y0vjnvh0s زیبُن نِسا 0 14982 151938 83935 2026-09-22T07:21:03Z آیات محراج 11062 [[زِبُون نِسّا]] صَفہٕ آو پَکناونہٕ [[زیبُن نِسا]] جاے، پَکناوَن وول صٲرف آیات محراج : Wrong spelling 83935 wikitext text/x-wiki {{مولوٗماتھ}} زِبُون نِسّا زأے 24 سَتَمبَر 1939 مَنٛز تہ سپد فوت 19 دَسَمبَر 2019 مَنٛز.<ref>سنڌ جی لوڪ فنڪاره زیب النساءِ ڪافی عرصو بیمار رهڻ بعد نوابشاهه ۾ ۸۰ سالن جی ڄمار ۾ لاڏاڻو ڪری وئی, Daily Panhinji Akhbar, 19 December 2019</ref> زِبُون نِسّا أس اَکھ سندی لوک گلوکارہٕ۔ سہٕ أس اَکھ مَشہوٗر زنان گلوکارہٕ 1960 پؠٹھ 1990 مَنٛز۔ امہِ گیے واریا سوفی موٗسیٖقی تہ ریڈو پاکستان کرٕ تم رکاڈ.<ref>لوڪ گیتن جی راڻی زیب النساءِ لاڏاڻو ڪری وئی، روزانی سنڌیار، 20 ڊسمبر 2019, Daily </ref> ==ابتداہی زندگی== زِبُون نِسّا زأے نوابشاہ سند بیچو شاہک مَنٛز۔ امس اوس اسلی ناو کایم حاتون.<ref>Zub-un-Nissa (in Sindhi), Sindhi Wikipedia</ref> امسندس خاندانس مَنٛز اوس نہ کانہ موٗسیٖقی سعت تہ نہ اوس یہندس گرس مَنٛز کانہ گلوکار، مگر امسند موج أس أم خاندرن مَنٛز گیوان.<ref>لوڪ گیتن جی راڻی زیب النساءِ لاڏاڻو ڪری وئی، روزانی سنڌیار، 20 ڊسمبر 2019,</ref> ==موٗسیٖقی ہُنٛد کریر== زِبُون نِسّاہن کور موٗسیٖقی ہُنٛد کریر 1958 مَنٛز ریڈیو پاکستانس ہیدرآبادس مَنٛز شرو۔ ام کور موٗسیٖقی ہُنٛد تٲلیٖم اکس سندی گلوکارس محمد جیمانس نش حٲصِل۔ امس أس رٕژ آواز.<ref>زیب النساءِ گمنامیءَ ۾ گذاری ویل سھرا لاڏا ڳائیندڙ ھڪ لوڪ گائڪا, Daily Kawish, Hyderabad, 21 December 2019.</ref> ریڈیو پاکستانن کرٕ واریاہ موٗسیٖقی امسند زبانِ مَنٛز رکگاڈ۔ الہ پلہ آی 50 گیتہٕ امسند زبانِ مَنٛز رکگاڈ کَرنہٕ.<ref>ٰمصطفیٰ ملاح: خوبصورت آواز جی مالڪ گائڪا زیب النساء اسان کان وڇڙی وئی، روزانی ڪاوش، 21 ڊسمبر 2019, Daily Kawish, Hyderabad</ref> امسند زٕ مَشہوٗر لوکہ گیتہٕ چھِ `سحرا` یا `لاڈا` یم زٕ مَشہوٗر بأتھ چھِ سندی مَنٛز گیمیت. ==وفات== زِبُون نِسّا سپدِ فوت 19 دَسَمبَر 2019 نوابشاہس مَنٛز.<ref>لوڪ گیتن جی راڻی زیب النساءِ لاڏاڻو ڪری وئی، روزانی سنڌیار، 20 ڊسمبر 2019, Daily Sindhyar</ref> امسندو 5 کورو تہ 2 نیچیوں مَنٛز أس سیمینہ کنول یوتہٕ گلوکارہٕ.<ref>سنڌ جی لوڪ فنڪاره زیب النساءِ ڪافی عرصو بیمار رهڻ بعد نوابشاهه ۾ ۸۰ سالن جی ڄمار ۾ لاڏاڻو ڪری وئی, Daily Panhinji Akhbar, 19 December 2019. </ref> ==مٔزیٖد وُچھِو== *[[میینا رانا]] *[[گُلاب بائی]] *[[سُریندر کور]] *[[امار پال]] *[[ڈولی گلیریا]] ==حَوالہٕ== {{حَوالہٕ}} [[زٲژ:1939 پٲدٲیِش]] [[زٲژ:2019 وَفات]] [[زٲژ:پٲکِستٲنؠ لوٗکہٕ گُلوکار]] 57r39nowopqkk11pkhazmg9tesrdjrf 151943 151938 2026-09-22T07:26:34Z آیات محراج 11062 /* */ fixed typos 151943 wikitext text/x-wiki {{مولوٗماتھ}} زیبُن نِسا زاے 24 سَتَمبَر 1939 مَنٛز تہٕ سپُد فوت 19 دَسَمبَر 2019 مَنٛز.<ref>سنڌ جی لوڪ فنڪاره زیب النساءِ ڪافی عرصو بیمار رهڻ بعد نوابشاهه ۾ ۸۰ سالن جی ڄمار ۾ لاڏاڻو ڪری وئی, Daily Panhinji Akhbar, 19 December 2019</ref> زیبُن نِسا أس اَکھ سندی لوک گلوکارہ۔ سۄ أس اَکھ مَشہوٗر زنان گلوکار 1960 پؠٹھ 1990 مَنٛز۔ امہِ گیہِ واریا صوٗفی موٗسیٖقی تہٕ ریڈو پاکستان کرٕ تم رکاڈ.<ref>لوڪ گیتن جی راڻی زیب النساءِ لاڏاڻو ڪری وئی، روزانی سنڌیار، 20 ڊسمبر 2019, Daily </ref> ==اِبتدٲیی زِنٛدگی == زیبُن نِسا زاے نوابشاہ سند بیچو شاہک مَنٛز۔ امس اوس اسلی ناو کایم حاتون.<ref>Zub-un-Nissa (in Sindhi), Sindhi Wikipedia</ref> امسندس خاندانس مَنٛز اوس نہ کانہ موٗسیٖقی سعت تہٕ نہ اوس یہندس گرس مَنٛز کانہ گلوکار، مگر امسند موج أس أم خاندرن مَنٛز گؠوان.<ref>لوڪ گیتن جی راڻی زیب النساءِ لاڏاڻو ڪری وئی، روزانی سنڌیار، 20 ڊسمبر 2019,</ref> ==موٗسیٖقی ہُنٛد کریر== زِبُون نِسّاہن کور موٗسیٖقی ہُنٛد کریر 1958 مَنٛز ریڈیو پاکستانس ہیدرآبادس مَنٛز شرو۔ ام کور موٗسیٖقی ہُنٛد تٲلیٖم اکس سندی گلوکارس محمد جیمانس نش حٲصِل۔ امس أس رٕژ آواز.<ref>زیب النساءِ گمنامیءَ ۾ گذاری ویل سھرا لاڏا ڳائیندڙ ھڪ لوڪ گائڪا, Daily Kawish, Hyderabad, 21 December 2019.</ref> ریڈیو پاکستانن کرٕ واریاہ موٗسیٖقی امسند زبانِ مَنٛز رکگاڈ۔ الہ پلہ آی 50 گیتہٕ امسند زبانِ مَنٛز رکگاڈ کَرنہٕ.<ref>ٰمصطفیٰ ملاح: خوبصورت آواز جی مالڪ گائڪا زیب النساء اسان کان وڇڙی وئی، روزانی ڪاوش، 21 ڊسمبر 2019, Daily Kawish, Hyderabad</ref> امسند زٕ مَشہوٗر لوکہ گیتہٕ چھِ `سحرا` یا `لاڈا` یم زٕ مَشہوٗر بأتھ چھِ سندی مَنٛز گیمیت. ==وفات== زیبُن نِسا گُزرے 19 دَسَمبَر 2019 نوابشاہس مَنٛز.<ref>لوڪ گیتن جی راڻی زیب النساءِ لاڏاڻو ڪری وئی، روزانی سنڌیار، 20 ڊسمبر 2019, Daily Sindhyar</ref> امسِنٛدیو 5 کوریٛو تہٕ 2 نیچیوؠن مَنٛز أس سیمینہ کنول یوتہٕ گلوکار.<ref>سنڌ جی لوڪ فنڪاره زیب النساءِ ڪافی عرصو بیمار رهڻ بعد نوابشاهه ۾ ۸۰ سالن جی ڄمار ۾ لاڏاڻو ڪری وئی, Daily Panhinji Akhbar, 19 December 2019. </ref> ==مٔزیٖد وُچھِو== *[[میینا رانا]] *[[گُلاب بائی]] *[[سُریندر کور]] *[[امار پال]] *[[ڈولی گلیریا]] ==حَوالہٕ== {{حَوالہٕ}} [[زٲژ:1939 پٲدٲیِش]] [[زٲژ:2019 وَفات]] [[زٲژ:پٲکِستٲنؠ لوٗکہٕ گُلوکار]] 6vw5gnqf5wqpvbsvvyat0ty9tglxs04 151949 151943 2026-09-22T07:36:55Z آیات محراج 11062 /* مٔزیٖد وُچھِو */ 151949 wikitext text/x-wiki {{مولوٗماتھ}} زیبُن نِسا زاے 24 سَتَمبَر 1939 مَنٛز تہٕ سپُد فوت 19 دَسَمبَر 2019 مَنٛز.<ref>سنڌ جی لوڪ فنڪاره زیب النساءِ ڪافی عرصو بیمار رهڻ بعد نوابشاهه ۾ ۸۰ سالن جی ڄمار ۾ لاڏاڻو ڪری وئی, Daily Panhinji Akhbar, 19 December 2019</ref> زیبُن نِسا أس اَکھ سندی لوک گلوکارہ۔ سۄ أس اَکھ مَشہوٗر زنان گلوکار 1960 پؠٹھ 1990 مَنٛز۔ امہِ گیہِ واریا صوٗفی موٗسیٖقی تہٕ ریڈو پاکستان کرٕ تم رکاڈ.<ref>لوڪ گیتن جی راڻی زیب النساءِ لاڏاڻو ڪری وئی، روزانی سنڌیار، 20 ڊسمبر 2019, Daily </ref> ==اِبتدٲیی زِنٛدگی == زیبُن نِسا زاے نوابشاہ سند بیچو شاہک مَنٛز۔ امس اوس اسلی ناو کایم حاتون.<ref>Zub-un-Nissa (in Sindhi), Sindhi Wikipedia</ref> امسندس خاندانس مَنٛز اوس نہ کانہ موٗسیٖقی سعت تہٕ نہ اوس یہندس گرس مَنٛز کانہ گلوکار، مگر امسند موج أس أم خاندرن مَنٛز گؠوان.<ref>لوڪ گیتن جی راڻی زیب النساءِ لاڏاڻو ڪری وئی، روزانی سنڌیار، 20 ڊسمبر 2019,</ref> ==موٗسیٖقی ہُنٛد کریر== زِبُون نِسّاہن کور موٗسیٖقی ہُنٛد کریر 1958 مَنٛز ریڈیو پاکستانس ہیدرآبادس مَنٛز شرو۔ ام کور موٗسیٖقی ہُنٛد تٲلیٖم اکس سندی گلوکارس محمد جیمانس نش حٲصِل۔ امس أس رٕژ آواز.<ref>زیب النساءِ گمنامیءَ ۾ گذاری ویل سھرا لاڏا ڳائیندڙ ھڪ لوڪ گائڪا, Daily Kawish, Hyderabad, 21 December 2019.</ref> ریڈیو پاکستانن کرٕ واریاہ موٗسیٖقی امسند زبانِ مَنٛز رکگاڈ۔ الہ پلہ آی 50 گیتہٕ امسند زبانِ مَنٛز رکگاڈ کَرنہٕ.<ref>ٰمصطفیٰ ملاح: خوبصورت آواز جی مالڪ گائڪا زیب النساء اسان کان وڇڙی وئی، روزانی ڪاوش، 21 ڊسمبر 2019, Daily Kawish, Hyderabad</ref> امسند زٕ مَشہوٗر لوکہ گیتہٕ چھِ `سحرا` یا `لاڈا` یم زٕ مَشہوٗر بأتھ چھِ سندی مَنٛز گیمیت. ==وفات== زیبُن نِسا گُزرے 19 دَسَمبَر 2019 نوابشاہس مَنٛز.<ref>لوڪ گیتن جی راڻی زیب النساءِ لاڏاڻو ڪری وئی، روزانی سنڌیار، 20 ڊسمبر 2019, Daily Sindhyar</ref> امسِنٛدیو 5 کوریٛو تہٕ 2 نیچیوؠن مَنٛز أس سیمینہ کنول یوتہٕ گلوکار.<ref>سنڌ جی لوڪ فنڪاره زیب النساءِ ڪافی عرصو بیمار رهڻ بعد نوابشاهه ۾ ۸۰ سالن جی ڄمار ۾ لاڏاڻو ڪری وئی, Daily Panhinji Akhbar, 19 December 2019. </ref> ==مٔزیٖد وُچھِو== *[[میینا رانا]] *[[گُلاب بایی]] *[[سُریندر کور]] *[[امار پال]] *[[ڈولی گلیریا]] ==حَوالہٕ== {{حَوالہٕ}} [[زٲژ:1939 پٲدٲیِش]] [[زٲژ:2019 وَفات]] [[زٲژ:پٲکِستٲنؠ لوٗکہٕ گُلوکار]] pl66numhc3yvhb93xzc5w6zre0361ie کَتھ:زیبُن نِسا 1 15001 151940 71883 2026-09-22T07:21:03Z آیات محراج 11062 [[کَتھ:زِبُون نِسّا]] صَفہٕ آو پَکناونہٕ [[کَتھ:زیبُن نِسا]] جاے، پَکناوَن وول صٲرف آیات محراج : Wrong spelling 71883 wikitext text/x-wiki {{زَنانہٕ تہٕ لُکہٕ اَدب اؠڈِٹ مُقابلہٕ 2023 کَتھ صَفہٕ فرما}} 50m5plx8o9rbdqxbcaeno3y0vjnvh0s یونٲنی زَبان 0 20905 151931 118008 2026-09-22T06:42:39Z آیات محراج 11062 151931 wikitext text/x-wiki {{infobox language/Wikidata| familycolor = Indo-European | fam2 = گراسیو پھریجین (?) | fam3 = [[ہیلینِک زَبانہٕ|ہیلینِک]] }} '''یونٲنی زَبان''' ({{Lang|el|Ελληνικά|엘레니카}} ) چھِ یُس از کل [[یونان|یونٲنی]] تہٕ قریٖبی علاقن مَنٛز اِستِمال گژھن واجیٚن زَبان چھِ، ہند- یورپی زَبانن ہنٛز اَکھ خۄدمۄختیار تقسیٖم۔ قدیٖم یونٲنی زَبان سٟتؠ مُختلف شکلن ہٕنٛدس طورس پیٚٹھ چھ یہٕ اَکھ طویل تاریخ تھاوان یُس 3,500 ؤری تام شٲمل چھ۔ ؤنؠ کینٕچ یونٲنی زَبان چھِ[[یونان]] مَنٛز تَقریٖبَن 15 ملین لوٗکھ بولان تہٕ قریبی قبرص بلغاریا [[البانیہَ|البانیا]] شمالی مقدونیہ [[اِٹَلی|اٹلی]] تہٕ [[تُرکی|ترکی]] کین کینٛہن علاقن مَنٛز ہنٛد اِستِمال کران۔ امہٕ علاوٕ چھُ یہٕ آسٹریلیا کہِ میلبورن کہِ یونٲنی امیگریشن کمیونٹی مَنٛز تہٕ دُنیاہس مَنٛز واریاہ یونٲنی امیگرینٹ جماعتن مَنٛز اِستِمال یوان کرنہٕ۔ [[یونٲنی اَدَب]] یُس یونٲنی زبانس سٟتؠ تہٕ ظٲہر گژھہٕ، چھُ 3000 ؤری کھۄتہٕ زیٛادٕ عرصس تام برقرار۔ ۔یونٲنی اَدَب چھُ گۆن تہٕ امیٖر ، یُس واریاہن ؤرین مَنٛز یِنہٕ والؠن [[لِکھٲرؠ|لِکھٲرین]] مُتٲثِر اوس کران، تہٕ از تہٕ چھُ یہٕ پسنٛد یوان کرنہٕ۔<ref>{{Cite book|title=A study of the preservation of the classical tradition in the education, language, and literature of the Byzantine Empire|last=Manuel|first=Germaine Catherine|year=1989|location=HVD ALEPH}}</ref> == حَوالہٕ == [[زٲژ:زَبان]] ibk9csfhti7yu9ctzh49io7uq1muaog وِکیٖپیٖڈیا:موجوٗد کالِک واقعات 4 23397 151863 141460 2026-09-21T13:25:04Z آیات محراج 11062 /* */ 151863 wikitext text/x-wiki {{وِکیٖپیٖڈیا:Current events/News Browser}} {{وِکیٖپیٖڈیا:Current events/Headlines}} {{Current events|day=06|year=2025|month=11|content=* ساینَس دان [[جیمٕز واٹسن]] موٗد}} {{Current events|day=1|year=2025|month=9|content=*[[2025 اَفغٲنستانُک بُنیُل]] آو}} {{Current events|day=19|year=2025|month=8|content=*[[2025 ہرات سڑک حٲدثہٕ]] آو بَس حٲدثہٕ پیش}} {{Current events|day=14|year=2025|month=8|content=*[[2025 کشتواڑ ضِلُک تیز سٔہلاب]] آو خطرناک سٔہلاب}} {{Current events|day=10|year=2025|month=8|content=*[[انس الشریٖف]] اوس فلسطیٖنی صحافی یُس اِسرائیلی فوجہٕ دٔسؠ قتٕل کرنہٕ ییٚمُیٛک مزمت بین الاقوامی اِنسٲنؠ حقوٗق تنظیٖم دٔسؠ تہٕ کرنہٕ آو}} {{Current events|day=05|year=2025|month=8|content=*[[2025 اُتراکھنٛڈ اَچانک سٔہلاب]] آو خطرناک سٔہلاب یتھ منٛز 4+ نفر موٗدؠ تہٕ 100+ زیادٕ لاپتا چھِ}} {{Current events|day=30|year=2025|month=7|content=*{{ا|2025 Kamchatka earthquake}} او شدیٖد ناکھ بُنیُل [[کمچَٹکا پرٛالانٛکھ]] کس منٛز}} {{Current events|day=28|year=2025|month=7|content=*'''بَشیٖر کوتُر''' کٲشُر ڈرامہ اداکار گُزریو آز بؠمار ہِنٛدؠ وجہ سٲتؠ}} {{Current events|day=25|year=2025|month=7|content=*[[پِپلودی سکوٗلٕچ چھت گٔیہ تباہ]] راجستھانس منٛز پیےٚ سکوٗلس چھت یتھ منٛز واریاہ ہلاک تہٕ زخمی گٔیہ یمن منٛز شُرؠ تہٕ شٲمِل چھِ}} {{Current events|day=24|year=2025|month=7|content=*[[انٛگارا اِیَر لاینز پرواز 2311 حٲدثہٕ]] انٛگارا ایئر لائنز پرواز 2311 ٲس اَکھ طے شُدٕ گھریلو پرواز یۄس انٛگارارا ایئر لائنز طرفہٕ اگناتیوو ایئرپورٹ پؠٹھٕ روٗس کِس ٹِنڈا ہوٲیی اڈَس تام چلاوان ٲس یۄس 24 جُلَے 2025 ٲخری واتناوَس دوران تباہ گٔیہِ۔}} {{Current events|day=22|year=2025|month=7|content=*[[2025 پٲکِستان سٔہلاب]] پٲکستانَس پؠٹھ آو واریاہَن علاقَن منٛز سٔہلاب}} {{Current events|day=21|year=2025|month=7|content=*[[2025 ڈھاکہ لڑاکوٗ جیٚٹ حٲدثہٕ]] [[ڈھاکہ]] کِس أکِس [[مایِل سٹون کالیج |کالیجس]] پؠٹھ گوٚو جیٹ پلان تباہ تہٕ واریٛاہَن لوٗکھ سپٕدؠ ہلاک۔}} {{Current events|day=15|year=2025|month=7|content=*[[شاہِد بڈگٲمی]] اکھ کٲشُر شٲیِر گُزریو آز}} [[زٲژ:واقعات]] 6g9salrh1wim7xvta0rcsrz133g0qqo 151864 151863 2026-09-21T13:25:46Z آیات محراج 11062 /* */ 151864 wikitext text/x-wiki {{وِکیٖپیٖڈیا:Current events/News Browser}} {{وِکیٖپیٖڈیا:Current events/Headlines}} {{Current events|day=06|year=2025|month=11|content=* ساینَس دان [[جیمٕز واٹسن]] موٗد}} {{Current events|day=1|year=2025|month=9|content=*[[2025 اَفغٲنستانُک بُنیُل]] آو}} {{Current events|day=19|year=2025|month=8|content=*[[2025 ہرات سڑک حٲدثہٕ]] آو بَس حٲدثہٕ پیش}} {{Current events|day=14|year=2025|month=8|content=*[[2025 کشتواڑ ضِلُک تیز سٔہلاب]] آو خطرناک سٔہلاب}} {{Current events|day=10|year=2025|month=8|content=*[[انس الشریٖف]] اوس فلسطیٖنی صحافی یُس اِسرائیلی فوجہٕ دٔسؠ قتٕل کرنہٕ ییٚمُیٛک مزمت بین الاقوامی اِنسٲنؠ حقوٗق تنظیٖم دٔسؠ تہٕ کرنہٕ آو}} {{Current events|day=05|year=2025|month=8|content=*[[2025 اُتراکھنٛڈ اَچانک سٔہلاب]] آو خطرناک سٔہلاب یتھ منٛز 4+ نفر موٗدؠ تہٕ 100+ زیادٕ لاپتا چھِ}} {{Current events|day=30|year=2025|month=7|content=*{{ا|2025 Kamchatka earthquake}} او شدیٖد ناکھ بُنیُل [[کمچَٹکا پرٛالانٛکھ]] کس منٛز}} {{Current events|day=28|year=2025|month=7|content=*'''بَشیٖر کوتُر''' کٲشُر ڈرامہ اداکار گُزریو آز بؠمار ہِنٛدؠ وجہ سٲتؠ}} {{Current events|day=25|year=2025|month=7|content=*[[پِپلودی سکوٗلٕچ چھت گٔیہ تباہ]] راجستھانس منٛز پیےٚ سکوٗلس چھت یتھ منٛز واریاہ ہلاک تہٕ زخمی گٔیہ یمن منٛز شُرؠ تہٕ شٲمِل چھِ}} {{Current events|day=24|year=2025|month=7|content=*[[انٛگارا اییَر لاینز پرواز 2311 حٲدثہٕ]] انٛگارا ایئر لائنز پرواز 2311 ٲس اَکھ طے شُدٕ گھریلو پرواز یۄس انٛگارارا ایئر لائنز طرفہٕ اگناتیوو ایئرپورٹ پؠٹھٕ روٗس کِس ٹِنڈا ہوٲیی اڈَس تام چلاوان ٲس یۄس 24 جُلَے 2025 ٲخری واتناوَس دوران تباہ گٔیہِ۔}} {{Current events|day=22|year=2025|month=7|content=*[[2025 پٲکِستان سٔہلاب]] پٲکستانَس پؠٹھ آو واریاہَن علاقَن منٛز سٔہلاب}} {{Current events|day=21|year=2025|month=7|content=*[[2025 ڈھاکہ لڑاکوٗ جیٚٹ حٲدثہٕ]] [[ڈھاکہ]] کِس أکِس [[مایِل سٹون کالیج |کالیجس]] پؠٹھ گوٚو جیٹ پلان تباہ تہٕ واریٛاہَن لوٗکھ سپٕدؠ ہلاک۔}} {{Current events|day=15|year=2025|month=7|content=*[[شاہِد بڈگٲمی]] اکھ کٲشُر شٲیِر گُزریو آز}} [[زٲژ:واقعات]] o11whso5ljc5tezptm8ugo1b4a0l4gy 151865 151864 2026-09-21T13:26:24Z آیات محراج 11062 /* */ 151865 wikitext text/x-wiki {{وِکیٖپیٖڈیا:Current events/News Browser}} {{وِکیٖپیٖڈیا:Current events/Headlines}} {{Current events|day=06|year=2025|month=11|content=* ساینَس دان [[جیمٕز واٹسن]] موٗد}} {{Current events|day=1|year=2025|month=9|content=*[[2025 اَفغٲنستانُک بُنیُل]] آو}} {{Current events|day=19|year=2025|month=8|content=*[[2025 ہرات سڑک حٲدثہٕ]] آو بَس حٲدثہٕ پیش}} {{Current events|day=14|year=2025|month=8|content=*[[2025 کشتواڑ ضِلُک تیز سٔہلاب]] آو خطرناک سٔہلاب}} {{Current events|day=10|year=2025|month=8|content=*[[انس الشریٖف]] اوس فلسطیٖنی صحافی یُس اِسرائیلی فوجہٕ دٔسؠ قتٕل کرنہٕ ییٚمُیٛک مزمت بین الاقوامی اِنسٲنؠ حقوٗق تنظیٖم دٔسؠ تہٕ کرنہٕ آو}} {{Current events|day=05|year=2025|month=8|content=*[[2025 اُتراکھنٛڈ اَچانک سٔہلاب]] آو خطرناک سٔہلاب یتھ منٛز 4+ نفر موٗدؠ تہٕ 100+ زیادٕ لاپتا چھِ}} {{Current events|day=30|year=2025|month=7|content=*{{ا|2025 Kamchatka earthquake}} او شدیٖد ناکھ بُنیُل [[کمچَٹکا پرٛالانٛکھ]] کس منٛز}} {{Current events|day=28|year=2025|month=7|content=*'''بَشیٖر کوتُر''' کٲشُر ڈرامہ اداکار گُزریو آز بؠمار ہِنٛدؠ وجہ سٲتؠ}} {{Current events|day=25|year=2025|month=7|content=*[[پِپلودی سکوٗلٕچ چھت گٔیہ تباہ]] راجستھانس منٛز پیےٚ سکوٗلس چھت یتھ منٛز واریاہ ہلاک تہٕ زخمی گٔیہ یمن منٛز شُرؠ تہٕ شٲمِل چھِ}} {{Current events|day=24|year=2025|month=7|content=*[[انٛگارا اییَر لاینٛز پرواز 2311 حٲدثہٕ]] انٛگارا ایئر لائنز پرواز 2311 ٲس اَکھ طے شُدٕ گھریلو پرواز یۄس انٛگارارا ایئر لائنز طرفہٕ اگناتیوو ایئرپورٹ پؠٹھٕ روٗس کِس ٹِنڈا ہوٲیی اڈَس تام چلاوان ٲس یۄس 24 جُلَے 2025 ٲخری واتناوَس دوران تباہ گٔیہِ۔}} {{Current events|day=22|year=2025|month=7|content=*[[2025 پٲکِستان سٔہلاب]] پٲکستانَس پؠٹھ آو واریاہَن علاقَن منٛز سٔہلاب}} {{Current events|day=21|year=2025|month=7|content=*[[2025 ڈھاکہ لڑاکوٗ جیٚٹ حٲدثہٕ]] [[ڈھاکہ]] کِس أکِس [[مایِل سٹون کالیج |کالیجس]] پؠٹھ گوٚو جیٹ پلان تباہ تہٕ واریٛاہَن لوٗکھ سپٕدؠ ہلاک۔}} {{Current events|day=15|year=2025|month=7|content=*[[شاہِد بڈگٲمی]] اکھ کٲشُر شٲیِر گُزریو آز}} [[زٲژ:واقعات]] 2umt1crh0b2mczr35jjksxyb3dlrnjb ہنا آئن بینڈر 0 24205 151926 148676 2026-09-22T06:16:24Z SakuraBot 9889 [[وپ:باٹ|باٹ]] چھُ صَفَس زٲژ پؠٹھ کٲم کَران. 151926 wikitext text/x-wiki {{مولوٗماتھ}} ہننا آئن بینڈر (پٲدٲیِش 21 مئی 1995) چھےٚ اَکھ امریکی اداکٲر تہٕ سٹینڈ اپ کامیڈین۔<ref>{{ویب حَوالہٕ|last=Rosemberg|first=Jasmin|date=2024-05-31|title='Hacks' Star Hannah Einbinder Doesn't Want to Be Categorized|url=https://lamag.com/tv/hannah-einbinder-hacks-max-pride|access-date=2024-12-02|website=LAmag - Culture, Food, Fashion, News & Los Angeles|language=en}}</ref> سۄ چھ ایچ بی او ''ہیک۔'' ڈرامائی سیریز ہیکسس مَنٛز جدوجہد کرن واجنہ کامیڈی رائٹر ایوا ڈینیئلز سٕنٛد کردارٕ خٲطرٕ مشہوٗر، ییٚمہ خٲطرٕ أمس پرائم ٹائم ایمی ایوارڈ تہٕ کریٹکس چوائس ٹیلی وِجَن ایوارڈ تہٕ ترٛیٚن گولڈن گلوب ایوارڈ ہٕنٛز نامزدگی تہٕ مِلے۔ == اِبتدٲیی زندگی تہٕ اِبتدٲیی تٲلیٖم == آئن بینڈر چھےٚ اصلی سیٹرڈے نائٹ لائیو کاسٹ ممبر لارین نیومین تہٕ مصنف ڈائریکٹر چاڈ آئن بینڈر سٕنٛز کوٗر۔<ref>{{ویب حَوالہٕ|last=Rosemberg|first=Jasmin|date=2024-05-31|title='Hacks' Star Hannah Einbinder Doesn't Want to Be Categorized|url=https://lamag.com/tv/hannah-einbinder-hacks-max-pride|access-date=2025-02-09|website=LAmag - Culture, Food, Fashion, News & Los Angeles|language=en}}</ref> تٔمؠ سُنٛد عیال چھُ [[یہوٗدیت|یُہوٗد]] تہٕ سۄ بڑیو [[لاس ایٚنٛجلِس|لاس اینجلسس]] مَنٛز۔<ref>{{Cite news|last=Zinoman|first=Jason|date=May 12, 2021|title=Hannah Einbinder: Portrait of a Young Comic on the Cusp|language=en-US|location=New York|work=The New York Times|url=https://www.nytimes.com/2021/05/12/arts/television/hannah-einbinder-hacks.html|access-date=May 16, 2021|issn=0362-4331}}</ref> == ذٲتی زِندگی == آئن بینڈر چَھ [[لاس ایٚنٛجلِس]]، کیلیفورنیاہس مَنٛز روزان۔ آئن بینڈر چَھ [[دُجِنسی پسنٛد|دُجِنسی پَسنٛد]]۔ أمِس چھُ [[توجہ خسار ہایپر ایکٹیوٹی ڈس آرڈر|اے ڈی ایچ ڈی]]۔ سۄ چھےٚ [[:en:Philadelphia Eagles|فلاڈیلفیا ایگلٕچ]] واریاہ کالہٕ حٲمی۔ == سیٲسی نظریات == مارٕچ 2025 ہس مَنٛز کٔر آئن بینڈرن آب و ہوا چہ تبدیلی متعلق کتھ تہٕ "انسانیتکؠ وارہ وارہ ناپید گژھنک معمار" تہٕ کرُکھ محمود خلیل سنزِ گرفتاری، [[غزہ جنٛگ|غزہ کس جنگس]] مَنٛز اسرائیلی حکومتکؠ اقدامات، تہ اسرائیلس خٲطرٕ امریکی حکومتچ حمایتچ مذمت۔ تمہ ریتہٕ کِس ٲخرس مَنٛز 77 مِس پرائم ٹائم ایمی ایوارڈن مَنٛز، زیوٗن تٔمؠ کامیڈی سیریزس مَنٛز شاندار معاون اداکارہ خٲطرٕ پرائم ٹائم ایمی ایوارڈ تہٕ پنٕنؠ تقریر '''"گو [[:en:Philadelphia Eagles|برڈز]]، فک [[:en:United States Immigration and Customs Enforcement|آئس]]، تہٕ فِری فلسطین"''' سٟتؠ ختم۔ ==حَوالہٕ == [[زٲژ:اَمریٖکی لوٗکھ]] [[زٲژ:زِنٛدٕ لوٗکھ]] [[زٲژ:1995 پٲدٲیِش]] 908gl6ogju7xwhrxzoexfkeeruxz6yv میٖڈیاوِکی:Gadget-owidslider.js 8 30850 151877 142086 2026-09-21T15:55:35Z 511KeV 8268 rep 151877 javascript text/javascript /* This imports the latest version of owidslider (Our World in Data) from Commons. Full documentation can be found at https://mdwiki.org/wiki/WikiProjectMed:OWID */ mw.loader.load( '//commons.wikimedia.org/w/index.php?title=MediaWiki:Gadget-owidslider.js&action=raw&ctype=text/javascript' ); mw.loader.load('//commons.wikimedia.org/w/index.php?title=MediaWiki:Gadget-owidslider.css&action=raw&ctype=text/css', 'text/css'); agj9m828ukhyi195uaon99goceqetl1 میٖڈیاوِکی:Gadget-owidslider.css 8 30851 151878 142087 2026-09-21T15:56:55Z 511KeV 8268 add 151878 css text/css /* 2026-07-04 copied from https://mdwiki.org/wiki/MediaWiki:Gadget-owidslider.css (Creative Commons Attribution-ShareAlike 3.0 and 4.0 International Public License) */ @media print { html .OWIDSlider-play, #OWIDSliderLoading { display: none } } .OWIDSlider-viewer { text-align: center; } .OWIDSlider-caption { margin-top: 0.2em; } .OWIDSliderSVGContainer { height: 100%; /* js sets an aspect-ratio which makes this work */ max-width: 100%; } .OWIDSlider-viewer #details-popup { text-align: start; z-index: 3; } .OWIDSlider-play { background: transparent; font-size: 300%; cursor: pointer; text-align: center; user-select: none; position: absolute; top: 20px; right: 20px; width: 70px; height: 70px; display: inline-block; line-height: 1.5; border: 0; padding: 0; } .OWIDSlider-play .circle { fill: rgba(128, 128, 128, 0.9) } .OWIDSlider-play .triangle { fill: white } .OWIDSlider-play:hover .circle { fill: rgba(169, 169, 169, 0.9); } .OWIDSlider-play:hover .triangle { fill: black; } .OWIDSlider-play:active .triangle { fill: red; } .OWIDSlider-loading { cursor: wait; } .OWIDSliderCredit { text-align: center; font-size: small; margin: auto; box-sizing: border-box; } .OWIDSliderSliderContainer { text-align: center; width: 100%; } .OWIDSliderSlider { position: relative; display: inline-block; vertical-align: sub; width: calc(75% - 8em); margin-left: 1em; margin-right: 1em; } .OWIDSliderSlider input { width: 100%; } .OWIDSliderSliderYearPopup { position: absolute; top: -2.2em; background-color: black; color: white; padding: 5px; border-radius: 5px; opacity: 0.8; } @media (max-width: 600px) { .OWIDSliderSlider { width: calc(100% - 8em); margin-left: 0.5em; margin-right: 0.5em; } .OWIDSliderSVGContainer { position: relative; z-index: 2; } .owid-header .owid-select-container { flex: 100%; margin-bottom: 0; } } .OWIDSliderImgContainer { text-align: center; margin: auto; display: flex; justify-content: center; align-items: center; flex-direction: column; } #OWIDSliderLoading { position: fixed; padding-top: 0.25em; padding-bottom: 0.25em; padding-left: 1em; padding-right: 1em; bottom: 1em; right: 1em; background-color: #fda; color: black; border: thin black solid; z-index: 10000; } .OWIDSliderDialog .oo-ui-messageDialog-text { box-sizing: border-box; height: 100%; } #OWIDSliderViewSelector { /* position: absolute; */ /* right: 5%; */ font-size: 1.25em; height: 50px; } .OWIDSlider-country-back { background: #36c; border-color: #36c; color: white; padding: 5px 10px; font-size: 16px; border-radius: 4px; cursor: pointer; } .OWIDSlider-country-back:hover { background-color: #447ff5; outline: 1px solid transparent; } .owid-select-container { position: relative; display: inline-block; margin-top: 20px; margin-bottom: 20px; flex: 8; } .owid-select { width: 100%; padding: 12px 16px; font-size: 16px; border: 1px solid #c4c4c4; border-radius: 4px; box-sizing: border-box; outline: none; transition: border-color 0.2s, box-shadow 0.2s; cursor: pointer; background-color: var(--background-color-interactive, white); color: var(--color-base, black); appearance: none; -webkit-appearance: none; -moz-appearance: none; } .owid-select:focus { border-color: #1976d2; box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.2); } .owid-select:hover { border-color: rgba(0, 0, 0, 0.87); } .owid-select-label { position: absolute; left: 8px; top: 16px; color: #1976d2; padding: 0 4px; font-size: 16px; line-height: 1; pointer-events: none; transition: 0.2s ease all; background-color: var(--background-color-interactive, white); } .owid-select:focus~.owid-select-label, .owid-select:not([value=""]):valid~.owid-select-label { top: -8px; font-size: 12px; color: #1976d2; } .owid-select-arrow { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); pointer-events: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid rgba(0, 0, 0, 0.54); } .owid-select:focus~.owid-select-arrow { border-top: 5px solid #1976d2; } .owid-helper-text { margin-top: 4px; font-size: 12px; color: rgba(0, 0, 0, 0.6); } .OWIDSliderDialog .oo-ui-messageDialog-message, .OWIDSliderDialog .oo-ui-messageDialog-message .OWIDSlider-viewer, .OWIDSliderDialog .oo-ui-messageDialog-message .OWIDSlider-viewer .OWIDSliderImgContainer { height: 100%; } .OWIDSliderDialog .owid-header { flex-direction: row-reverse; flex-wrap: wrap; display: flex; align-items: center; justify-content: space-between; width: 100%; } .OWIDSliderDialog .owid-region-chart-container { margin-right: 10px; flex: 2; height: 50px; margin-top: 20px; margin-bottom: 20px; display: flex; align-items: center; justify-content: center; gap: 20%; border: 1px solid #c4c4c4; border-radius: 4px; } .OWIDSliderDialog .owid-region-chart-container button { height: 50px; } .OWIDSliderDialog .owid-region-chart-container label { display: flex; align-items: center; } .OWIDSliderDialog .owid-region-chart-container input { display: inline-block; margin-right: 10px; width: 20px; height: 200px; } 6pm43d9e3pur0gcw5a5uu06pd6htt5u فرما:ImageStackPopup 10 30855 151893 142097 2026-07-31T22:37:22Z en>Rhododendrites 0 151893 wikitext text/x-wiki <includeonly>{{#invoke:ImageStackPopup|image}}[[Category:Pages using gadget ImageStackPopup]]</includeonly><noinclude> {{doc}} </noinclude> gs5ietzdbfkagu0vxw6n4vhauubxz4m 151894 151893 2026-09-21T16:34:11Z 511KeV 8268 1 revision imported from [[:en:Template:ImageStackPopup]] 151893 wikitext text/x-wiki <includeonly>{{#invoke:ImageStackPopup|image}}[[Category:Pages using gadget ImageStackPopup]]</includeonly><noinclude> {{doc}} </noinclude> gs5ietzdbfkagu0vxw6n4vhauubxz4m Module:ImageStackPopup 828 30856 151881 2024-05-31T15:37:42Z en>Doc James 0 Copied from MDWiki https://mdwiki.org/w/index.php?title=Module:ImageStackPopup&action=edit 151881 Scribunto text/plain local p = {} function p.image( frame ) math.randomseed(tonumber(mw.getContentLanguage():formatDate( "U" ))*10000 + os.clock()*10000) local args = frame:getParent().args local popupConfig = {} local caption = '' popupConfig.loop = args.loop == "yes" if tonumber( args.start ) then popupConfig.start = tonumber( args.start ) else popupConfig.start = 1 end if tonumber( args.width ) then popupConfig.width = tonumber( args.width ) end if tonumber( args.height ) then popupConfig.height = tonumber( args.height ) end popupConfig.list = args.list if args['noregisterimages'] == nil then -- Register this as a dependency so that this page shows up as using all the images on the list page frame:expandTemplate{ title = ':' .. args.list } end -- If we don't want to transclude for performance, maybe we could at least link -- however links need to actually be output on the page to register them. if args.caption then popupConfig.caption = "imagestackpopup-caption-" .. math.random() caption = tostring( mw.html.create( 'div' ) :attr( 'id', popupConfig.caption ) :attr( 'style', 'display: none' ) :wikitext( args.caption ) :done() ) end if args.title then popupConfig.title = args.title end return tostring( mw.html.create( 'div' ) :attr( 'class', 'ImageStackPopup' ) :attr( 'data-imagestackpopup-config', mw.text.jsonEncode( { popupConfig } ) ) :wikitext( args.file ) ) .. caption end function p.gallery( frame ) -- Seems like math.random is always seeded with 0 :( math.randomseed(tonumber(mw.getContentLanguage():formatDate( "U" ))*10000 + os.clock()*10000) local args = frame:getParent().args local reuseImageCaption = args.reuse_image_caption ~= nil local title = args["popup-title"] local captionId = nil local captionText = '' local galleryContents = '' local optionsArray = {} local galleryArgs = {} local galleryAttr = { "mode", "widths", "heights", "perrow", "caption", "showfilename", "showthumbnail", "id", "title", "class", "lang", "dir" } for i, j in ipairs( galleryAttr ) do galleryArgs[j] = args[j] end if args['popup-caption'] then captionId = 'imagestackpopup-caption-' .. math.random() captionText = tostring( mw.html.create( 'div' ) :attr( 'style', 'display:none' ) :attr( 'id', captionId ) :wikitext( args['popup-caption'] ) ) end for row in mw.text.gsplit( args.gallery, "\n", true ) do local galleryRow = '' local popupOptions = { title = title, caption = captionId } for part in mw.text.gsplit( row, "!", true ) do equalSplit = mw.text.split( part, '=', true ) if #equalSplit <= 1 then -- be sure this really is a caption. if galleryRow ~= '' and reuseImageCaption and #part > 8 and string.find( part, " ", 1, true ) then local captionId = 'imagestackpopup-caption-' .. math.random() local wrappedPart = tostring( mw.html.create( 'span' ) :attr( 'id', captionId ) :wikitext( part ) ) popupOptions.caption = captionId galleryRow = galleryRow .. wrappedPart .. '|' else galleryRow = galleryRow .. part .. '|' end else if equalSplit[1] == 'popup-width' then popupOptions.width = tonumber(equalSplit[2]) elseif equalSplit[1] == 'popup-height' then popupOptions.height = tonumber(equalSplit[2]) elseif equalSplit[1] == 'popup-loop' then popupOptions.loop = equalSplit[2] ~= '' elseif equalSplit[1] == 'popup-start' then popupOptions.start = tonumber(equalSplit[2]) elseif equalSplit[1] == 'popup-caption' then local captionIdForImg = 'imagestackpopup-caption-' .. math.random() captionText = captionText .. tostring( mw.html.create( 'div' ) :attr( 'id', captionIdForImg ) :css( 'display', 'none' ) :wikitext( table.concat( equalSplit, '=', 2 ) ) ) popupOptions.caption = captionIdForImg elseif equalSplit[1] == 'popup-title' then popupOptions.title = table.concat( equalSplit, '=', 2 ) elseif equalSplit[1] == 'popup-list' then popupOptions.list = table.concat( equalSplit, '=', 2 ) if args['noregisterimages'] == nil then -- Register this as a dependency so that this page shows up as using all the images on the list page frame:expandTemplate{ title = ':' .. table.concat( equalSplit, '=', 2 ) } end else galleryRow = galleryRow .. part .. '|' end end end if string.sub( galleryRow, -1 ) == '|' then galleryRow = string.sub( galleryRow, 1, -2 ) end galleryContents = galleryContents .. galleryRow .. "\n" optionsArray[#optionsArray+1] = popupOptions end return tostring( mw.html.create( 'div' ) :attr( 'class', 'ImageStackPopup' ) :attr( 'data-imagestackpopup-config', mw.text.jsonEncode( optionsArray ) ) :wikitext( frame:extensionTag( 'gallery', galleryContents, galleryArgs ) ) ) .. captionText end return p 31o6gjgql2d1zo4t8bxpevs10tgtcj7 151882 142098 2026-09-21T16:17:42Z 511KeV 8268 1 revision imported from [[:en:Module:ImageStackPopup]]: Needed Locally 142098 Scribunto text/plain local p = {} function p.image( frame ) math.randomseed(tonumber(mw.getContentLanguage():formatDate( "U" ))*10000 + os.clock()*10000) local args = frame:getParent().args local popupConfig = {} local caption = '' popupConfig.loop = args.loop == "yes" if tonumber( args.start ) then popupConfig.start = tonumber( args.start ) else popupConfig.start = 1 end if tonumber( args.width ) then popupConfig.width = tonumber( args.width ) end if tonumber( args.height ) then popupConfig.height = tonumber( args.height ) end popupConfig.list = args.list if args['noregisterimages'] == nil then -- Register this as a dependency so that this page shows up as using all the images on the list page frame:expandTemplate{ title = ':' .. args.list } end -- If we don't want to transclude for performance, maybe we could at least link -- however links need to actually be output on the page to register them. if args.caption then popupConfig.caption = "imagestackpopup-caption-" .. math.random() caption = tostring( mw.html.create( 'div' ) :attr( 'id', popupConfig.caption ) :attr( 'style', 'display: none' ) :wikitext( args.caption ) :done() ) end if args.title then popupConfig.title = args.title end return tostring( mw.html.create( 'div' ) :attr( 'class', 'ImageStackPopup' ) :attr( 'data-imagestackpopup-config', mw.text.jsonEncode( { popupConfig } ) ) :wikitext( args.file ) ) .. caption end function p.gallery( frame ) -- Seems like math.random is always seeded with 0 :( math.randomseed(tonumber(mw.getContentLanguage():formatDate( "U" ))*10000 + os.clock()*10000) local args = frame:getParent().args local reuseImageCaption = args.reuse_image_caption ~= nil local title = args["popup-title"] local captionId = nil local captionText = '' local galleryContents = '' local optionsArray = {} local galleryArgs = {} local galleryAttr = { "mode", "widths", "heights", "perrow", "caption", "showfilename", "showthumbnail", "id", "title", "class", "lang", "dir" } for i, j in ipairs( galleryAttr ) do galleryArgs[j] = args[j] end if args['popup-caption'] then captionId = 'imagestackpopup-caption-' .. math.random() captionText = tostring( mw.html.create( 'div' ) :attr( 'style', 'display:none' ) :attr( 'id', captionId ) :wikitext( args['popup-caption'] ) ) end for row in mw.text.gsplit( args.gallery, "\n", true ) do local galleryRow = '' local popupOptions = { title = title, caption = captionId } for part in mw.text.gsplit( row, "!", true ) do equalSplit = mw.text.split( part, '=', true ) if #equalSplit <= 1 then -- be sure this really is a caption. if galleryRow ~= '' and reuseImageCaption and #part > 8 and string.find( part, " ", 1, true ) then local captionId = 'imagestackpopup-caption-' .. math.random() local wrappedPart = tostring( mw.html.create( 'span' ) :attr( 'id', captionId ) :wikitext( part ) ) popupOptions.caption = captionId galleryRow = galleryRow .. wrappedPart .. '|' else galleryRow = galleryRow .. part .. '|' end else if equalSplit[1] == 'popup-width' then popupOptions.width = tonumber(equalSplit[2]) elseif equalSplit[1] == 'popup-height' then popupOptions.height = tonumber(equalSplit[2]) elseif equalSplit[1] == 'popup-loop' then popupOptions.loop = equalSplit[2] ~= '' elseif equalSplit[1] == 'popup-start' then popupOptions.start = tonumber(equalSplit[2]) elseif equalSplit[1] == 'popup-caption' then local captionIdForImg = 'imagestackpopup-caption-' .. math.random() captionText = captionText .. tostring( mw.html.create( 'div' ) :attr( 'id', captionIdForImg ) :css( 'display', 'none' ) :wikitext( table.concat( equalSplit, '=', 2 ) ) ) popupOptions.caption = captionIdForImg elseif equalSplit[1] == 'popup-title' then popupOptions.title = table.concat( equalSplit, '=', 2 ) elseif equalSplit[1] == 'popup-list' then popupOptions.list = table.concat( equalSplit, '=', 2 ) if args['noregisterimages'] == nil then -- Register this as a dependency so that this page shows up as using all the images on the list page frame:expandTemplate{ title = ':' .. table.concat( equalSplit, '=', 2 ) } end else galleryRow = galleryRow .. part .. '|' end end end if string.sub( galleryRow, -1 ) == '|' then galleryRow = string.sub( galleryRow, 1, -2 ) end galleryContents = galleryContents .. galleryRow .. "\n" optionsArray[#optionsArray+1] = popupOptions end return tostring( mw.html.create( 'div' ) :attr( 'class', 'ImageStackPopup' ) :attr( 'data-imagestackpopup-config', mw.text.jsonEncode( optionsArray ) ) :wikitext( frame:extensionTag( 'gallery', galleryContents, galleryArgs ) ) ) .. captionText end return p 31o6gjgql2d1zo4t8bxpevs10tgtcj7 فرما:ImageStackPopup/list 10 30857 151880 142099 2026-09-21T16:08:09Z 511KeV 8268 151880 wikitext text/x-wiki <gallery id="medical" widths=640 heights=640> File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 248).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 247).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 246).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 245).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 244).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 243).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 242).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 241).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 240).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 239).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 238).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 237).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 236).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 235).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 234).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 233).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 232).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 231).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 230).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 229).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 228).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 227).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 226).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 225).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 224).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 223).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 222).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 221).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 220).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 219).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 218).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 217).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 216).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 215).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 214).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 213).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 212).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 211).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 210).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 209).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 208).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 207).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 206).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 205).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 204).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 203).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 202).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 201).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 200).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 199).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 198).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 197).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 196).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 195).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 194).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 193).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 192).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 191).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 190).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 189).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 188).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 187).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 186).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 185).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 184).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 183).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 182).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 181).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 180).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 179).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 178).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 177).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 176).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 175).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 174).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 173).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 172).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 171).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 170).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 169).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 168).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 167).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 166).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 165).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 164).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 163).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 162).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 161).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 160).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 159).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 158).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 157).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 156).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 155).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 154).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 153).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 152).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 151).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 150).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 149).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 148).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 147).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 146).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 145).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 144).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 143).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 141).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 139).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 137).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 135).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 133).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 131).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 129).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 127).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 125).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 123).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 121).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 119).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 117).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 115).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 113).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 111).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 109).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 107).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 105).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 103).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 101).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 99).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 97).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 95).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 93).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 91).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 89).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 87).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 85).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 83).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 81).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 79).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 77).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 75).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 73).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 71).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 69).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 67).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 65).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 63).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 61).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 59).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 57).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 55).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 53).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 51).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 49).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 47).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 45).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 43).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 41).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 39).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 37).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 35).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 33).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 31).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 29).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 27).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 25).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 23).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 21).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 19).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 17).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 15).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 13).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 11).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 9).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 7).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 5).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 3).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 1).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 2).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 4).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 6).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 8).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 10).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 12).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 14).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 16).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 18).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 20).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 22).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 24).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 26).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 28).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 30).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 32).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 34).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 36).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 38).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 40).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 42).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 44).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 46).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 48).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 50).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 52).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 54).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 56).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 58).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 60).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 62).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 64).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 66).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 68).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 70).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 72).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 74).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 76).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 78).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 80).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 82).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 84).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 86).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 88).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 90).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 92).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 94).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 96).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 98).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 100).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 102).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 104).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 106).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 108).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 110).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 112).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 114).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 116).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 118).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 120).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 122).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 124).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 126).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 128).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 130).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 132).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 134).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 136).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 138).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 140).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 142).jpg </gallery> csc7ge4pc4h8roxsfywaaxw0sgu0f2s 151915 2024-05-31T15:51:02Z en>Doc James 0 [[WP:AES|←]]Created page with '<gallery id="medical" widths=640 heights=640> File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 248).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 247).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 246).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 245).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 244).jpg File:Appendicitis (CT angiogram) (Radiop...' 151915 wikitext text/x-wiki <gallery id="medical" widths=640 heights=640> File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 248).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 247).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 246).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 245).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 244).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 243).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 242).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 241).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 240).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 239).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 238).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 237).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 236).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 235).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 234).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 233).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 232).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 231).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 230).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 229).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 228).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 227).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 226).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 225).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 224).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 223).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 222).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 221).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 220).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 219).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 218).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 217).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 216).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 215).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 214).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 213).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 212).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 211).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 210).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 209).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 208).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 207).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 206).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 205).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 204).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 203).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 202).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 201).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 200).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 199).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 198).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 197).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 196).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 195).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 194).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 193).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 192).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 191).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 190).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 189).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 188).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 187).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 186).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 185).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 184).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 183).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 182).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 181).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 180).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 179).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 178).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 177).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 176).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 175).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 174).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 173).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 172).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 171).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 170).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 169).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 168).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 167).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 166).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 165).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 164).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 163).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 162).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 161).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 160).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 159).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 158).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 157).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 156).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 155).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 154).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 153).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 152).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 151).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 150).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 149).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 148).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 147).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 146).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 145).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 144).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 143).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 141).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 139).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 137).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 135).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 133).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 131).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 129).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 127).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 125).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 123).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 121).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 119).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 117).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 115).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 113).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 111).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 109).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 107).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 105).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 103).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 101).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 99).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 97).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 95).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 93).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 91).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 89).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 87).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 85).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 83).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 81).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 79).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 77).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 75).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 73).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 71).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 69).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 67).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 65).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 63).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 61).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 59).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 57).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 55).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 53).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 51).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 49).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 47).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 45).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 43).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 41).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 39).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 37).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 35).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 33).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 31).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 29).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 27).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 25).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 23).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 21).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 19).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 17).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 15).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 13).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 11).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 9).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 7).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 5).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 3).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 1).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 2).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 4).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 6).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 8).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 10).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 12).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 14).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 16).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 18).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 20).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 22).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 24).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 26).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 28).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 30).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 32).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 34).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 36).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 38).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 40).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 42).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 44).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 46).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 48).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 50).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 52).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 54).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 56).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 58).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 60).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 62).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 64).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 66).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 68).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 70).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 72).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 74).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 76).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 78).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 80).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 82).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 84).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 86).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 88).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 90).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 92).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 94).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 96).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 98).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 100).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 102).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 104).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 106).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 108).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 110).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 112).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 114).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 116).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 118).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 120).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 122).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 124).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 126).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 128).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 130).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 132).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 134).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 136).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 138).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 140).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 142).jpg </gallery> csc7ge4pc4h8roxsfywaaxw0sgu0f2s 151916 151880 2026-09-21T16:34:12Z 511KeV 8268 1 revision imported from [[:en:Template:ImageStackPopup/list]] 151880 wikitext text/x-wiki <gallery id="medical" widths=640 heights=640> File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 248).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 247).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 246).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 245).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 244).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 243).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 242).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 241).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 240).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 239).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 238).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 237).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 236).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 235).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 234).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 233).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 232).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 231).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 230).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 229).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 228).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 227).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 226).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 225).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 224).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 223).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 222).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 221).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 220).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 219).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 218).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 217).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 216).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 215).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 214).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 213).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 212).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 211).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 210).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 209).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 208).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 207).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 206).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 205).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 204).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 203).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 202).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 201).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 200).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 199).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 198).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 197).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 196).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 195).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 194).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 193).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 192).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 191).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 190).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 189).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 188).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 187).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 186).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 185).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 184).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 183).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 182).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 181).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 180).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 179).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 178).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 177).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 176).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 175).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 174).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 173).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 172).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 171).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 170).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 169).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 168).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 167).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 166).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 165).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 164).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 163).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 162).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 161).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 160).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 159).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 158).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 157).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 156).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 155).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 154).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 153).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 152).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 151).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 150).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 149).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 148).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 147).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 146).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 145).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 144).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 143).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 141).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 139).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 137).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 135).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 133).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 131).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 129).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 127).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 125).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 123).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 121).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 119).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 117).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 115).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 113).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 111).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 109).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 107).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 105).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 103).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 101).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 99).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 97).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 95).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 93).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 91).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 89).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 87).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 85).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 83).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 81).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 79).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 77).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 75).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 73).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 71).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 69).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 67).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 65).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 63).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 61).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 59).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 57).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 55).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 53).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 51).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 49).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 47).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 45).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 43).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 41).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 39).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 37).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 35).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 33).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 31).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 29).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 27).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 25).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 23).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 21).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 19).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 17).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 15).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 13).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 11).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 9).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 7).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 5).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 3).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 1).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 2).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 4).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 6).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 8).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 10).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 12).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 14).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 16).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 18).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 20).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 22).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 24).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 26).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 28).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 30).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 32).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 34).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 36).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 38).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 40).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 42).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 44).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 46).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 48).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 50).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 52).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 54).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 56).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 58).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 60).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 62).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 64).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 66).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 68).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 70).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 72).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 74).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 76).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 78).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 80).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 82).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 84).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 86).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 88).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 90).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 92).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 94).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 96).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 98).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 100).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 102).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 104).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 106).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 108).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 110).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 112).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 114).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 116).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 118).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 120).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 122).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 124).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 126).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 128).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 130).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 132).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 134).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 136).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 138).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 140).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 142).jpg </gallery> csc7ge4pc4h8roxsfywaaxw0sgu0f2s رُکُن:Nadeemulhaqmir-bot/log/2026/9 2 32582 151923 151834 2026-09-21T18:00:56Z Nadeemulhaqmir-bot 9480 باٹ چھُ اَز دۄہُک لاگ مَحفوٗظ کَران. 151923 wikitext text/x-wiki ==1-9-2026== ==== [[روب سٕٹارک]] - ([[Special:Diff/150963|فَرَق]]) ==== # <nowiki> اَی </nowiki><b> -> </b><nowiki>آے</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki> # <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki> # <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki> # <nowiki> قتل </nowiki><b> -> </b><nowiki>قَتٕل</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[1996 ہِندوستٲنؠ عام چُناو جۆم تہٕ کٔشیٖر مَنٛز]] - ([[Special:Diff/150964|فَرَق]]) ==== # <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki> # <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> # <nowiki> يٖ </nowiki><b> -> </b><nowiki>یٖ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[ہیڈن پینٹیٖیَر]] - ([[Special:Diff/150965|فَرَق]]) ==== # <nowiki> اَی </nowiki><b> -> </b><nowiki>آے</nowiki> ==== [[بؠمٲرؠ X]] - ([[Special:Diff/150966|فَرَق]]) ==== # <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[بَرِصَغیٖر ہِنٛد]] - ([[Special:Diff/150967|فَرَق]]) ==== # <nowiki> محیط </nowiki><b> -> </b><nowiki>پھٔہلِتھ</nowiki> ==== [[یمنی خانہٕ جنٛگی (2014-ازکال)]] - ([[Special:Diff/150968|فَرَق]]) ==== # <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہک</nowiki> # <nowiki> ؠ مٕتؠ </nowiki><b> -> </b><nowiki>ؠ‌مٕتؠ</nowiki> ==== [[سوڈان خانہٕ جنٛگی (2023-ازکال)]] - ([[Special:Diff/150969|فَرَق]]) ==== # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[2011 توہوکُہ بُنیُل تہٕ سُنامی]] - ([[Special:Diff/150970|فَرَق]]) ==== # <nowiki> اً </nowiki><b> -> </b><nowiki>ن</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> ==2-9-2026== ==== [[بَگٕز بَنی]] - ([[Special:Diff/151047|فَرَق]]) ==== # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> دنیاہٕک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہٕک</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[جوری]] - ([[Special:Diff/151048|فَرَق]]) ==== # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki> # <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki> ==== [[جاٹیٚژ]] - ([[Special:Diff/151049|فَرَق]]) ==== # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[جیلیٛوٗ جیلیو]] - ([[Special:Diff/151050|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> ==== [[ڈیجون]] - ([[Special:Diff/151051|فَرَق]]) ==== # <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پأنٹھ </nowiki><b> -> </b><nowiki>پٲٹھؠ</nowiki> # <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki> # <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[روم]] - ([[Special:Diff/151052|فَرَق]]) ==== # <nowiki> دنیاہُک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہُک</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> ==== [[اِٹلی ہِنٛدؠ بٲے]] - ([[Special:Diff/151053|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> ==== [[2022 اِٹلی ہُنٛد عام چُناو]] - ([[Special:Diff/151054|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[نینسی گرٛیس رومن سِپیس دوٗربیٖن]] - ([[Special:Diff/151055|فَرَق]]) ==== # <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> چَھ </nowiki><b> -> </b><nowiki>چھَ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[ہِنٛد یوٗرَپی زَبانہٕ]] - ([[Special:Diff/151056|فَرَق]]) ==== # <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki> ==== [[رازٕ آرتھر]] - ([[Special:Diff/151057|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جنگن </nowiki><b> -> </b><nowiki>جَنٛگن</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==3-9-2026== ==== [[جانار دُگالووا]] - ([[Special:Diff/151082|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki> # <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> ==== [[جالکہ حُسین]] - ([[Special:Diff/151083|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> م. </nowiki><b> -> </b><nowiki>م۔</nowiki> ==== [[زینون گیس ایم آر اَے]] - ([[Special:Diff/151084|فَرَق]]) ==== # <nowiki> آی </nowiki><b> -> </b><nowiki>اَے</nowiki> ==4-9-2026== ==== [[ورِٛنٛداوَن]] - ([[Special:Diff/151130|فَرَق]]) ==== # <nowiki> اً </nowiki><b> -> </b><nowiki>ن</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> وقت </nowiki><b> -> </b><nowiki>وَقٕت</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[نیٖم کَرولی بابا]] - ([[Special:Diff/151131|فَرَق]]) ==== # <nowiki> اً </nowiki><b> -> </b><nowiki>ن</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[زاتُک]] - ([[Special:Diff/151132|فَرَق]]) ==== # <nowiki> دعویٰ </nowiki><b> -> </b><nowiki>دعوا</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[تانَن ہُنٛد تَگ]] - ([[Special:Diff/151133|فَرَق]]) ==== # <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki> ==== [[ماحوٗل]] - ([[Special:Diff/151134|فَرَق]]) ==== # <nowiki> انسان </nowiki><b> -> </b><nowiki>اِنسان</nowiki> # <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki> ==== [[زُو]] - ([[Special:Diff/151135|فَرَق]]) ==== # <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki> ==== [[مِشیٖن]] - ([[Special:Diff/151136|فَرَق]]) ==== # <nowiki> کِہ </nowiki><b> -> </b><nowiki>کہِ</nowiki> # [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران ==== [[چانٛگ ژٕیی]] - ([[Special:Diff/151137|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠ‌یاہس</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki> # <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[چونٛگشان]] - ([[Special:Diff/151138|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[گلورِیا سٹاینَم]] - ([[Special:Diff/151139|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki> # <nowiki> دارالحکومت </nowiki><b> -> </b><nowiki>رازدٲنؠ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[Manraj]] - ([[Special:Diff/151140|فَرَق]]) ==== # <nowiki> تعاون </nowiki><b> -> </b><nowiki>سہکٲری</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> سرکاری </nowiki><b> -> </b><nowiki> سرکاری</nowiki> # <nowiki> موسیقی </nowiki><b> -> </b><nowiki>موٗسیٖقی</nowiki> # <nowiki> ہندوستانی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> جِہ </nowiki><b> -> </b><nowiki>جہِ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران ==5-9-2026== ==== [[1963 حضرت بل شرایِن ژوٗر]] - ([[Special:Diff/151185|فَرَق]]) ==== # <nowiki> جھنڈٕ </nowiki><b> -> </b><nowiki>جَنٛڈٕ</nowiki> # <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki> # <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki> # <nowiki> ھ. </nowiki><b> -> </b><nowiki>ھ۔</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ۭ </nowiki><b> -> </b><nowiki>ٟ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[جۆم تہٕ کٔشیٖر ہُنٛد بین الاقوٲمی فِلِم تہوار]] - ([[Special:Diff/151186|فَرَق]]) ==== # <nowiki> آئی </nowiki><b> -> </b><nowiki>اَے</nowiki> # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> بھارت </nowiki><b> -> </b><nowiki>ہِندوستان</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki> # <nowiki> گۄڈٕنیُک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ہندوستٲنۍ </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[حضرت شاہجلال بین الاقوٲمی ہَوٲیی اڈٕ]] - ([[Special:Diff/151187|فَرَق]]) ==== # <nowiki> آئی </nowiki><b> -> </b><nowiki>اَے</nowiki> # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> دارالحکومت </nowiki><b> -> </b><nowiki>رازدٲنؠ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> میل </nowiki><b> -> </b><nowiki>میٖل</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[چونٛگشان]] - ([[Special:Diff/151188|فَرَق]]) ==== # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> ==6-9-2026== ==== [[غزہ جنٛگ]] - ([[Special:Diff/151283|فَرَق]]) ==== # <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki> # <nowiki> دُنیاہَس </nowiki><b> -> </b><nowiki>دُنؠ‌یاہَس</nowiki> # <nowiki> ٹِھ </nowiki><b> -> </b><nowiki>ٹھِ</nowiki> # <nowiki> ئیل </nowiki><b> -> </b><nowiki>ئیل</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[2025 کمبوڈیا-تھایلینٛڈ سرحدی تنازٕ]] - ([[Special:Diff/151284|فَرَق]]) ==== # <nowiki> آئی </nowiki><b> -> </b><nowiki>اَے</nowiki> # <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[وینٛڈی بی لارینٛس]] - ([[Special:Diff/151285|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[1962 ویلس سٔہلاب]] - ([[Special:Diff/151286|فَرَق]]) ==== # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> ==== [[2017 کاتالانُک عَلاقٲیی چُناو]] - ([[Special:Diff/151287|فَرَق]]) ==== # <nowiki> آزادی </nowiki><b> -> </b><nowiki> آزادی</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki> # <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مقبول </nowiki><b> -> </b><nowiki>مَقبوٗل</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> ==== [[مایلی سایرس]] - ([[Special:Diff/151288|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki> # <nowiki> کرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> موسیقی </nowiki><b> -> </b><nowiki>موٗسیٖقی</nowiki> # <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[7 اکتوٗبر حملہٕ]] - ([[Special:Diff/151289|فَرَق]]) ==== # <nowiki> ئیل </nowiki><b> -> </b><nowiki>ئیل</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[اسرٲیل تہٕ حِزب اللہ (۲۰۳۲-آزتہٕ)]] - ([[Special:Diff/151290|فَرَق]]) ==== # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> ئیل </nowiki><b> -> </b><nowiki>ئیل</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[گرٛینٛڈ تھیٚفٹ آٹو VI]] - ([[Special:Diff/151291|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki> # <nowiki> دنیاہَس </nowiki><b> -> </b><nowiki>دُنؠ‌یاہَس</nowiki> # <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مجموعی </nowiki><b> -> </b><nowiki>سۆمبرُنی</nowiki> # <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[Manraj]] - ([[Special:Diff/151292|فَرَق]]) ==== # [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران ==== [[آپریشن گرٛینٛڈ سلیم]] - ([[Special:Diff/151293|فَرَق]]) ==== # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki> # <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki> # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki> # <nowiki> وقت </nowiki><b> -> </b><nowiki>وَقٕت</nowiki> # <nowiki> ہندوستٲنۍ </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki> # <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ٘ </nowiki><b> -> </b><nowiki>ٚ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[بَچاو دۄہ]] - ([[Special:Diff/151294|فَرَق]]) ==== # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[بویِنٛگ 737]] - ([[Special:Diff/151295|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> دُنیاہُک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہُک</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ؤرۍ یہِ </nowiki><b> -> </b><nowiki>ؤرؠ‌یہِ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[سوکارنو-ہتا بین الاقوٲمی ہَوٲیی اڈٕ]] - ([[Special:Diff/151296|فَرَق]]) ==== # <nowiki> اً </nowiki><b> -> </b><nowiki>ن</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> جنوب </nowiki><b> -> </b><nowiki>جۆنوٗب</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> دُنیاہُک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہُک</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> ضلعس </nowiki><b> -> </b><nowiki>ضِلس</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> نائب صدر </nowiki><b> -> </b><nowiki>نٲیِب صٔدٕر</nowiki> # <nowiki> ؤرۍ یہِ </nowiki><b> -> </b><nowiki>ؤرؠ‌یہِ</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ؠ مٕتؠ </nowiki><b> -> </b><nowiki>ؠ‌مٕتؠ</nowiki> ==== [[مَساے رَسٕل]] - ([[Special:Diff/151297|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki> # <nowiki> وقت </nowiki><b> -> </b><nowiki>وَقٕت</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[تاے چی]] - ([[Special:Diff/151298|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki> # <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[2023 کَرناٹَک قونوٗن ساز ایٚسمبلی چُناو]] - ([[Special:Diff/151299|فَرَق]]) ==== # <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki> ==== [[میٚونٛد]] - ([[Special:Diff/151300|فَرَق]]) ==== # <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki> ==== [[راج ترنگنی]] - ([[Special:Diff/151301|فَرَق]]) ==== # <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki> ==7-9-2026== ==== [[دوٚیِم عٔظیٖم جَنٛگ]] - ([[Special:Diff/151362|فَرَق]]) ==== # <nowiki> آزادی </nowiki><b> -> </b><nowiki> آزادی</nowiki> # <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہک</nowiki> # <nowiki> سنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki> # <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[روٗسی خانہٕ جَنٛگی]] - ([[Special:Diff/151363|فَرَق]]) ==== # <nowiki> آزادی </nowiki><b> -> </b><nowiki> آزادی</nowiki> # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki> # <nowiki> جنوب </nowiki><b> -> </b><nowiki>جۆنوٗب</nowiki> # <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki> # <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki> # <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> # <nowiki> مخالف </nowiki><b> -> </b><nowiki>مُخٲلِف</nowiki> # <nowiki> مخٲلف </nowiki><b> -> </b><nowiki>مُخٲلِف</nowiki> # <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki> # <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[جوسف سٕٹالن]] - ([[Special:Diff/151364|فَرَق]]) ==== # <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki> # <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki> # <nowiki> سرکاری </nowiki><b> -> </b><nowiki> سرکاری</nowiki> # <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki> # <nowiki> سٕند </nowiki><b> -> </b><nowiki>سٟنٛد</nowiki> # <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> گۄڈنیُٛک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> مخالف </nowiki><b> -> </b><nowiki>مُخٲلِف</nowiki> # <nowiki> مجموعس </nowiki><b> -> </b><nowiki>سۆمبرُنس</nowiki> # <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki> # <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[سووِیَت یکجوت]] - ([[Special:Diff/151365|فَرَق]]) ==== # [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران ==== [[جُنٛگ سُنٛگ-ریٛونٛگ]] - ([[Special:Diff/151366|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki> # <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[میٖر سید علی ہمدانی]] - ([[Special:Diff/151367|فَرَق]]) ==== # <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki> ==== [[کٔشیٖر مَنٛز فارسی زَبان]] - ([[Special:Diff/151368|فَرَق]]) ==== # <nowiki> اً </nowiki><b> -> </b><nowiki>ن</nowiki> # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki> # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شاعر </nowiki><b> -> </b><nowiki>شٲیِر</nowiki> # <nowiki> شامل </nowiki><b> -> </b><nowiki>شٲمِل</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> ضروری </nowiki><b> -> </b><nowiki>ضۆروٗری</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki> # <nowiki> ۅ </nowiki><b> -> </b><nowiki>ۄ</nowiki> # <nowiki> ہنز </nowiki><b> -> </b><nowiki>ہِنٛز</nowiki> # <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[وینٛڈی بی لارینٛس]] - ([[Special:Diff/151369|فَرَق]]) ==== # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> ==8-9-2026== ==== [[تھنہِ ٹنٛگ]] - ([[Special:Diff/151414|فَرَق]]) ==== # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> انسان </nowiki><b> -> </b><nowiki>اِنسان</nowiki> # <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki> # <nowiki> ==حوالہٕ== </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> د. </nowiki><b> -> </b><nowiki>د۔</nowiki> ==== [[کارمین ڈیلورِفیچے]] - ([[Special:Diff/151415|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہک</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[جۆم تہٕ کٔشیٖر عَوٲمی رٲچھ ایکٹ، 1978]] - ([[Special:Diff/151416|فَرَق]]) ==== # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اِستعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> تنقید </nowiki><b> -> </b><nowiki>تَنقیٖد</nowiki> # <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki> # <nowiki> حکوٗمت </nowiki><b> -> </b><nowiki>حوٚکوٗمَتھ</nowiki> # <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki> # <nowiki> ڈویژنل </nowiki><b> -> </b><nowiki>ڈِویجنَل</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> کٔرۍمٕتۍ </nowiki><b> -> </b><nowiki>کٔرؠ‌مٕتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ؤرۍ یَن </nowiki><b> -> </b><nowiki>ؤرؠ‌یَن</nowiki> # <nowiki> يٖ </nowiki><b> -> </b><nowiki>یٖ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> مِہ </nowiki><b> -> </b><nowiki>مہِ</nowiki> # <nowiki> ٘ </nowiki><b> -> </b><nowiki>ٚ</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==9-9-2026== ==== [[سؠکہٕ بُبؠ]] - ([[Special:Diff/151447|فَرَق]]) ==== # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠ‌یاہس</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ز. </nowiki><b> -> </b><nowiki>ز۔</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[آصِف سُلطان]] - ([[Special:Diff/151448|فَرَق]]) ==== # <nowiki> فوراً </nowiki><b> -> </b><nowiki>فورَن</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[تُجہِ]] - ([[Special:Diff/151449|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> ==== [[نَدٕرؠ مۄنٛجہٕ]] - ([[Special:Diff/151450|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki> ==== [[مَسالہٕ ژۆٹ]] - ([[Special:Diff/151451|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[ژۄچہٕ وور]] - ([[Special:Diff/151452|فَرَق]]) ==== # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ٹ. </nowiki><b> -> </b><nowiki>ٹ۔</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==10-9-2026== ==== [[بیٚن شیٚلٹَن]] - ([[Special:Diff/151463|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==11-9-2026== ==== [[ڈیوڈِنَم]] - ([[Special:Diff/151473|فَرَق]]) ==== # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> گۄڈنیُٛک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> ٕ. </nowiki><b> -> </b><nowiki>ٕ۔</nowiki> ==13-9-2026== ==== [[ٹوفوٗ]] - ([[Special:Diff/151514|فَرَق]]) ==== # <nowiki> اِستعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[القاعدہ]] - ([[Special:Diff/151515|فَرَق]]) ==== # <nowiki> دُنیاہَس </nowiki><b> -> </b><nowiki>دُنؠ‌یاہَس</nowiki> ==== [[مُحمد عطا]] - ([[Special:Diff/151516|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[آسام]] - ([[Special:Diff/151517|فَرَق]]) ==== # <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki> # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> حکوٗمت </nowiki><b> -> </b><nowiki>حوٚکوٗمَتھ</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سٲتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki> # <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> ضِلعہٕ </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> میل </nowiki><b> -> </b><nowiki>میٖل</nowiki> # <nowiki> مربع </nowiki><b> -> </b><nowiki>چَکور</nowiki> # <nowiki> معاون </nowiki><b> -> </b><nowiki>سہارٕ</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> کِہ </nowiki><b> -> </b><nowiki>کہِ</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[ہایپوگلیسیمیا]] - ([[Special:Diff/151518|فَرَق]]) ==== # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> بییہ </nowiki><b> -> </b><nowiki>بیٚیہِ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> دوا </nowiki><b> -> </b><nowiki>دَوا</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki> # <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئید </nowiki><b> -> </b><nowiki>ئید</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[اکیوٹ ریڈیشن سنڈروم]] - ([[Special:Diff/151519|فَرَق]]) ==== # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> علاجس </nowiki><b> -> </b><nowiki>یَلاجس</nowiki> # <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki> # <nowiki> کرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> گھر </nowiki><b> -> </b><nowiki>گرٕ</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مجموعہٕ </nowiki><b> -> </b><nowiki>سۆمبرُن</nowiki> # <nowiki> معاون </nowiki><b> -> </b><nowiki>سہارٕ</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==14-9-2026== ==== [[چونٛگنانہاے]] - ([[Special:Diff/151543|فَرَق]]) ==== # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> ==== [[مُحمد دیٖن جواک]] - ([[Special:Diff/151544|فَرَق]]) ==== # <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> ==== [[ہایپوگلیسیمیا]] - ([[Special:Diff/151545|فَرَق]]) ==== # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> ==15-9-2026== ==== [[قَتلَم]] - ([[Special:Diff/151574|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ِ. </nowiki><b> -> </b><nowiki>ِ۔</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[تاے پو]] - ([[Special:Diff/151575|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ضلع </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[کے ژے]] - ([[Special:Diff/151576|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> # <nowiki> موسیقی </nowiki><b> -> </b><nowiki>موٗسیٖقی</nowiki> ==== [[میڈیسن بیٖر]] - ([[Special:Diff/151577|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> ٹیلی ویژن </nowiki><b> -> </b><nowiki>ٹیلی وِجَن</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> ==== [[اَیرِش لوٗکھ]] - ([[Special:Diff/151578|فَرَق]]) ==== # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[اَویناش مِشرا]] - ([[Special:Diff/151579|فَرَق]]) ==== # <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ۭ </nowiki><b> -> </b><nowiki>ٟ</nowiki> ==16-9-2026== ==== [[بھارتُک ٲییٖن]] - ([[Special:Diff/151650|فَرَق]]) ==== # <nowiki> آئی </nowiki><b> -> </b><nowiki>اَے</nowiki> # <nowiki> دُنیاہُک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہُک</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[ہِنٛدُستانٕچ آبٲدی زان]] - ([[Special:Diff/151651|فَرَق]]) ==== # <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki> # <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki> # <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> دُنیاہُک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہُک</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[پَنٛجٲبؠ زَبان]] - ([[Special:Diff/151652|فَرَق]]) ==== # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> ==== [[ہِنٛد آریٲیی لوٗکھ]] - ([[Special:Diff/151653|فَرَق]]) ==== # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> ==== [[ہِنٛدُستانُک بُگول]] - ([[Special:Diff/151654|فَرَق]]) ==== # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki> # <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki> # <nowiki> جنوب </nowiki><b> -> </b><nowiki>جۆنوٗب</nowiki> # <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠ‌یاہک</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki> # <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki> # <nowiki> میل </nowiki><b> -> </b><nowiki>میٖل</nowiki> # <nowiki> مربع </nowiki><b> -> </b><nowiki>چَکور</nowiki> # <nowiki> ہندوستٲنۍ </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[ہِنٛدُستانٕکؠ ناو]] - ([[Special:Diff/151655|فَرَق]]) ==== # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اِستعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> دنیاہَس </nowiki><b> -> </b><nowiki>دُنؠ‌یاہَس</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مسلمان </nowiki><b> -> </b><nowiki>مُسلمان</nowiki> # <nowiki> یِہ </nowiki><b> -> </b><nowiki>یہِ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==17-9-2026== ==== [[واسلیٖن]] - ([[Special:Diff/151693|فَرَق]]) ==== # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> دوا </nowiki><b> -> </b><nowiki>دَوا</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> کانہہ </nowiki><b> -> </b><nowiki>کانٛہہ</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[راجدیپ سنگھ چوہان]] - ([[Special:Diff/151694|فَرَق]]) ==== # <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki> # <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[کساندرا لِنکلیٹر]] - ([[Special:Diff/151695|فَرَق]]) ==== # <nowiki> پیدائش </nowiki><b> -> </b><nowiki>پٲدٲیِش</nowiki> # <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki> # <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki> # <nowiki> وِژول </nowiki><b> -> </b><nowiki>وِجوَل</nowiki> # <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[وَلَبھ بھایی پَٹیل]] - ([[Special:Diff/151696|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> جنگس </nowiki><b> -> </b><nowiki>جَنٛگس</nowiki> # <nowiki> گۄڈنیُٛک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[پٲکِستان]] - ([[Special:Diff/151697|فَرَق]]) ==== # <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==18-9-2026== ==== [[چُنٛگ ہو-یونٛگ]] - ([[Special:Diff/151754|فَرَق]]) ==== # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki> # <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki> # <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki> # <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki> # <nowiki> ؤرۍ یَن </nowiki><b> -> </b><nowiki>ؤرؠ‌یَن</nowiki> # <nowiki> ؤرۍ یہِ </nowiki><b> -> </b><nowiki>ؤرؠ‌یہِ</nowiki> # <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[2021 موروکو ہُک عام چُناو]] - ([[Special:Diff/151755|فَرَق]]) ==== # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مجموعی </nowiki><b> -> </b><nowiki>سۆمبرُنی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[ہَنُمان اَنٛش]] - ([[Special:Diff/151756|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> دُنیاہَس </nowiki><b> -> </b><nowiki>دُنؠ‌یاہَس</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ہندوستٲنی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[ہاشِم تھاچی]] - ([[Special:Diff/151757|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> اندروٗنی </nowiki><b> -> </b><nowiki>اۆنٛدروٗنی</nowiki> # <nowiki> اندرونی </nowiki><b> -> </b><nowiki>اۆنٛدروٗنی</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki> # <nowiki> جولائی </nowiki><b> -> </b><nowiki>جُلَے</nowiki> # <nowiki> جنگس </nowiki><b> -> </b><nowiki>جَنٛگس</nowiki> # <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki> # <nowiki> سیاستدان </nowiki><b> -> </b><nowiki>سِیاسَتھ دان</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> قتل </nowiki><b> -> </b><nowiki>قَتٕل</nowiki> # <nowiki> گۄڈٕنیُک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki> # <nowiki> محفوظ </nowiki><b> -> </b><nowiki>مۄحفوٗظ</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> # <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki> # <nowiki> وقت </nowiki><b> -> </b><nowiki>وَقٕت</nowiki> # <nowiki> ؤرۍ یَن </nowiki><b> -> </b><nowiki>ؤرؠ‌یَن</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[اسلان کَرَژیو]] - ([[Special:Diff/151758|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==19-9-2026== ==== [[یُوراج سِنٛگھ]] - ([[Special:Diff/151799|فَرَق]]) ==== # <nowiki> آئی </nowiki><b> -> </b><nowiki>اَے</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki> # <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ہندوستٲنۍ </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ۭ </nowiki><b> -> </b><nowiki>ٟ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==== [[2017 فرٛانٛسی صٔدرٲتی چُناو]] - ([[Special:Diff/151800|فَرَق]]) ==== # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki> # <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki> # <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شائع </nowiki><b> -> </b><nowiki>شایَع</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> # <nowiki> مجموعی </nowiki><b> -> </b><nowiki>سۆمبرُنی</nowiki> # <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki> # <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[2025 جۆنوٗبی کوریٲیی صٔدرٲتی چُناو]] - ([[Special:Diff/151801|فَرَق]]) ==== # <nowiki> اندروٗنی </nowiki><b> -> </b><nowiki>اۆنٛدروٗنی</nowiki> # <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki> # <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[ٹِلکایو]] - ([[Special:Diff/151802|فَرَق]]) ==== # <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki> # <nowiki> انواع </nowiki><b> -> </b><nowiki>زٲژ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ؤرۍ یہِ </nowiki><b> -> </b><nowiki>ؤرؠ‌یہِ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> ==20-9-2026== ==== [[کیپلر-22بی]] - ([[Special:Diff/151830|فَرَق]]) ==== # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki> # <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki> # <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki> # <nowiki> دُنیا </nowiki><b> -> </b><nowiki>دُنؠ‌یا</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki> ==== [[موجگان عظیمی]] - ([[Special:Diff/151831|فَرَق]]) ==== # <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki> # <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> شائع </nowiki><b> -> </b><nowiki>شایَع</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[فرٛینٛک کیپریو]] - ([[Special:Diff/151832|فَرَق]]) ==== # <nowiki> آئی </nowiki><b> -> </b><nowiki>اَے</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> ==== [[ویتنام جَنٛگ]] - ([[Special:Diff/151833|فَرَق]]) ==== # <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki> # <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki> # <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki> # <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki> # <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> قتل </nowiki><b> -> </b><nowiki>قَتٕل</nowiki> # <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki> # <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> مخالف </nowiki><b> -> </b><nowiki>مُخٲلِف</nowiki> # <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki> # <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> # <nowiki> ئین </nowiki><b> -> </b><nowiki>ئین</nowiki> # <nowiki> ئیس </nowiki><b> -> </b><nowiki>ئیس</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران ==21-9-2026== ==== [[اِنٛڈیا'ز گوٹ لیٹیٚنٛٹ]] - ([[Special:Diff/151922|فَرَق]]) ==== # <nowiki> آئی </nowiki><b> -> </b><nowiki>اَے</nowiki> # <nowiki> آزادی </nowiki><b> -> </b><nowiki>آزٲدی</nowiki> # <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki> # <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki> # <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki> # <nowiki> تنقید </nowiki><b> -> </b><nowiki>تَنقیٖد</nowiki> # <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki> # <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki> # <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki> # <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki> # <nowiki> گۄڈٕنیُک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki> # <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki> # <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki> # <nowiki> ہندوستٲنۍ </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki> # <nowiki> ر. </nowiki><b> -> </b><nowiki>ر۔</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki> # <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki> # <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki> # <nowiki> ئے </nowiki><b> -> </b><nowiki>ئے</nowiki> # <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki> # <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki> # <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki> 248y437ivl13olaz49x8lff49p68xst ٹِلکایو 0 32748 151920 151802 2026-09-21T16:36:39Z Huntster 14870 /* دٔریافت */ Removing images as they were of a Margay, not a tilcayo. 151920 wikitext text/x-wiki {{Infobox species/Wikidata|conservative status=نامولوٗم}} '''ٹِلکایو''' چھُ [[بولیویا]] ہٕچ مقٲمی لیوپرڈس نسلس مَنٛز لۄکچہِ جنگلی بیٛارِ ہٕنٛز اَکھ [[زٲژ]]۔ سٕہہ بیٛارؠن ہٕنٛدِ 2026 ہٕکؠ جینیاتی مطالعہٕ ذٔریعہٕ پہچان کرنہٕ آمٕژ، ٹِلکایو چھےٚ 1923 پتہٕ باضٲبطہٕ طور بیان کرنہٕ آمٕژ بیٛارِ ہٕنٛز گۄڑنٕچ زٲژ۔ ٹِلکایو ٲسؠ گۄڈَے مقٲمی برادری زانان۔<ref name="Bittel">{{Cite web|last=Bittel|first=Jason|date=September 17, 2026|title=Meet the First New Cat Species Discovered in 100 Years|url=https://www.nationalgeographic.com/animals/article/meet-the-first-new-cat-species-discovered-in-100-years|url-access=registration|archive-url=https://web.archive.org/web/20260917152844/https://www.nationalgeographic.com/animals/article/meet-the-first-new-cat-species-discovered-in-100-years|archive-date=September 17, 2026|access-date=September 17, 2026|website=[[National Geographic]]|language=en}}</ref> تاہم، امچ بصری شکل چھےٚ باقٕے سٕہہ بیٛارؠن ہٕنٛزن زٲژن سٟتؠ سیٚٹھاہ رلان تہٕ ٹِلکایو اوس نہٕ جینیٲتی طور الگ سمجھنہٕ آمُت یوٚتام نہٕ امہِ مُطالعہٕ پتہٕ یہِ ظٲہِر گوٚو۔ == دٔریافت == ٹِلکایو چھُ 1923 مَنٛز پامپاس کیٹ ایل فاسیٹسٕچ شناخت پتہٕ باضٲبطہٕ طور شناخت کرنہٕ آمُت گۄڈنُیٛک نیو فیلڈ کس طورس پؠٹھ بیان کرنہٕ آمُت۔ ٹِلکایو اوس گوڑنیتھی مقٲمی کمیونٹیز خٲطرٕ زاننہٕ یوان مگر ساینسی طور پٲنٹھ ٲس نہٕ امچ شناخت جینیاتی طور پٲنٹھ باقی ٹایگر بیٛارٕ ہنٛز زٲژ نش الگ کرنہٕ آمژ۔ مٲہرِ حیاتیات تہٕ نیشنل جیوگرافک ایکسپلورر پاؤلا نوگیلس-اسکاررنز مُقابلہٕ گۄڈنِچہِ لٹہِ 2016 مَنٛز امہِ زٲژ ہُنٛد سامنہٕ، ییٚلہِ بولیوِیاہَس مَنٛز سینڈا ورڈے وایلڈ لایف سینکچری تٔمِس أکِس بیٛارِ مُتعلِق رٲبطہٕ کٔر یۄس اننہٕ ٲس آمٕژ۔ تَقریٖبَن اَکہِ ؤرؠ‌یہِ برٛونٛہہ ٲس بیٛٲر لا پازَس مَنٛز أکِس نفرَس سٟتؠ روزان ییٚمؠ یہِ بیٛارِ ہٕنٛدِ بچہٕ پٲٹھؠ لبنہٕ اوس آمُت تہٕ گۄڈٕ اوس یہِ سمجھان زِ أمِس چھِ جنگلی حیاتن ہٕنٛز پناہ گاہِ ہٕنٛز دیکھ بال کرنٕچ ضرورت۔ تَمہِ وقتَس دوران ٲس أمؠ أمِس "نوٗڈلز، توٚمُل تہٕ ٹھوٗل" کھیٚنٕچ کوٗشش کٔرمٕژ۔ نوگیلز-اسکارونز گوٚو بیٛارِ سٟتؠ دلچسپی تہٕ تُلُن أمِس فوٹو، پتہٕ یہِ مانُن زِ یہِ چھُ مُتعلقہٕ زٲژ لیوپرڈس ٹایگرینسُک اَکھ الگ تھلگ نظر یِنہٕ وول رُکُن۔ 2019 مَنٛز، بولیوین بیٛارِ ہٕنٛز زٲژن ہُنٛد اَکھ کتابچہ تیار کران، نوگیلز-اسکارنزن کوٚر احساس زِ جنگلی حیاتن ہٕنٛز پناہ گاہُک فرد چھُ L. tigrinus نِش الگ باسان۔ 2026 مَنٛز، آو ٹِلکایو جینومک تجزیہٕ اِستِمال کٔرِتھ أکس الگ زٲژ کس طورس پیٚٹھ شناخت کرنہٕ۔ "امِچ جَتھ چھِ ہلکہٕ کاژرِ رنٛگ ... امکس جسمس مَنٛز بے قاعدٕ شکلہٕ ہٕنٛدؠ گلاب چھ"، تٔمؠ کوٚر اَمہِ پتہٕ جلدی بیان۔ == حَوالہٕ == [[زٲژ:جانوَر]] sjd7aakmp7owibndya7gmg1cokd0vlw اِنٛڈیا'ز گوٹ لیٹیٚنٛٹ 0 32757 151922 151857 2026-09-21T18:00:47Z Nadeemulhaqmir-bot 9480 باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]] 151922 wikitext text/x-wiki {{ٹیلی وِجَن معلوٗمات ڈَبہٕ|num_seasons=2|num_episodes=19 (+10 بونس قٕسطہٕ)|network=[[یوٗٹیٛوٗب]] </br> [[نیٹ فلکس]] | first_aired = {{Start date|df=y|2024|06|14}} | last_aired = ازکال}} اِنٛڈیا'ز گوٹ لیٹیٚنٛٹ چھُ اَکھ ہِندوستٲنؠ کامیڈی ٹیلیٚنٛٹ شو ییٚمیُک میزبٲنی [[سمے رینا]] چھِ 2024 پؠٹھٕ یوٗٹیٛوٗبَس پؠٹھ کٔرمٕژ۔ بین الاقوٲمی گوٹ ٹیلنٹ فرنچایزِز تہٕ کِل ٹونی سٟتؠ مُتٲثِر گژھِتھ چھِ اَتھ مَنٛز گؠوُن، نژُن، [[جود]] تہٕ کامیڈی شٲمِل چھِ واریاہ قٕسمٕچ کٲم شٲمِل۔<ref>{{Cite AV media|url=https://trakt.tv/shows/india-s-got-latent-2024|title=India's Got Latent|access-date=10 November 2024|via=trakt.tv}}</ref> 12 فَرؤری 2025 کوٚر ریناہَن گۄڈٕنِکِس سیٖزنَس دوران شو بنٛد تہٕ پوڈ کاسٹر رنویر الہبادیہ سٕنٛدِ لؠکل تبصرٕ سٟتؠ پٲدٕ گژھن وٲلِس تنازعہٕ پتہٕ بنٲوٕنؠ تمام قٕسط یوٗٹیٛوٗبَس پؠٹھ ذٲتی «private» ۔ یہِ شو آو جوٗن 2026 ہَس مَنٛز یوٗٹیٛوٗب تہٕ نیٹ فِلکسَس پؠٹھ پنِنہِ دٔیمِس سیزنَس مَنٛز واپس۔ == تَوٲریٖخ == اِنٛڈیا'ز گوٹ لیٹیٚنٛٹ اوس 14 جوٗن 2024 سمے ریناہَن پننِس یوٗٹیٛوٗب چینلہِ پؠٹھ لانچ کوٚرمُت۔ ریناہَن کوٚر [[اَے او ایس]] تہٕ اینڈرایڈَس پؠٹھ اَکھ اِنٛڈیا'ز گوٹ لیٹیٚنٛٹ ایپ تہِ شۆروٗع۔ [[رنویر اللہ بادیا]] سٕنٛدِ طرفہٕ مبینہٕ {{مانے|مان رۆستُے|derogatory}} تبصرَن پؠٹھ تناضہٕ پٲدٕ گژھنہٕ پتہٕ آو شو تہٕ امِکؠ تمام قٕسط 12 فَرؤری 2025 یوٗٹیٛوٗبَس پؠٹھ ذٲتی بنٲوؠ۔ نَوَمبَر 2025 ہَس مَنٛز کوٚر ریناہَن ظٲہِر زِ سُہ اوس شو دوٚیمہِ سیٖزنہٕ خٲطرٕ تجدید کرنُک منصوبہٕ بناوان، تَقریٖبَن ژورِ رؠتہٕ پتہٕ یِمَن قٕسطہٕن ہٕنٛدؠ کِلِپ یوٗٹیٛوٗبَس پؠٹھ أکِس مُختٔلِف چینلہِ ذٔریعہٕ دُبارٕ ظٲہِر گٔیہِ۔ اپریل 2026 مَنٛز، کوٚر تٔمؠ یوٗٹیٛوٗبَس پؠٹھ اَکھ سٹینڈ اپ سپیشل جٲری، ییٚمیُک ناو سٹیل الایِو، یَتھ مَنٛز تٔمؠ تبصرٕ کوٚرمُت زِ "تٔمؠ سُنٛد شوُک گۄڈنیُک سیٖزن ہیٚکہِ نہٕ تھدِ نوٹس پؠٹھ ختم گژھِتھ" تہٕ کوٚرُن ظٲہر زِ شوُک دوٚیُم سیٖزن اوس کٲم کران۔ جوٗن 2026 ہَس مَنٛز گٔیہِ اِنٛڈیاہُک دٔیِم سیزنُک ریلیز گژھنَس مُتعلِق قیاس ییٚلہِ نیٹ فِلکس انڈیاہَن رینا سُنٛد مُحافظ شٲمِل اَکھ پروموشنل پوسٹ شییَر کوٚر۔ امہِ پتہٕ کیٚنٛہہ کال کوٚر ریناہَن اعلان زِ یہِ شو یِیہِ نیٹ فِلکسَس سٟتؠ سٟتؠ یوٗٹیٛوٗبَس پؠٹھ تہِ سٹریمنگ کرنہٕ، یَتھ مَنٛز گۄڈنُیٛک قٕسطہٕ 20 جوٗن 2026 ریلیز گژھن وول چھُ۔ دٔیمِس سیزنُک گۄڈنیُک قٕسطہٕ آو 20 جوٗن 2026 یوٹیوبَس تہٕ نیٹ فِلکسَس پؠٹھ اَکی وِزِ جٲری کرنہٕ، یَتھ مَنٛز عالیہ بھٹ تہٕ شٔروری بطور مہمان جج شٲمِل ٲسؠ‌۔ مِنٹَس مُطٲبِق گٔیہِ پریمییَر ایپیسوڈ ریلیز گژھنہٕ پتہٕ کینٛہہ گھنٹَن انٛدر پنٛدہ ملین وِیو۔ دۄشوٕنی پلیٹ فارمَن پؠٹھ آیہِ پرٛؠتھ دۄن ہفتَن مَنٛز نٔوؠ قٕسطہٕ جٲری کرنُک اعلان کرنہٕ۔ == فارمیٹ == اِنٛڈیا'ز گوٹ لیٹیٚنٛٹُک فارمیٹ چھُ گاٹ ٹیلنٹ فرنچایزِک باقٕے شووَن تہٕ کِل ٹونی سٕنٛدِ یِتھی ڈھانچٕچ پیروی کران۔ مُقابلہٕ کَرن وٲلؠ چھِ ججَن ہٕنٛدِس پینلَس برٛونٛہہ کَنؠ پرفارم کران، یِم پننہِ عملَن ہُنٛد جٲیزٕ نِوان چھِ۔ ===آڈیشن=== شو چھُ پوٗرٕ مُلکَس مَنٛز آڈِشنٕچ عملہِ سٟتؠ شۆروٗع گژھان، ییٚتہِ مُختٔلِف شہرَو تہٕ قصبَو پؠٹھ مُقابلہٕ کَرن وٲلؠ پنُن کلپ آن لاین اپ لوڈ کران چھِ تہٕ سٹیج پرفارمنس خٲطرٕ شوَس مَنٛز بُلاونہٕ برٛونٛہہ چھِ سلیکشن کمیٹی یِمُک جٲیزٕ یِوان دِوان۔ ===زینُن نِظام=== اِنٛڈیاہُک گاٹ لیٹنٹُک خاص پہلو چھُ اَمیُک مُقابلہٕ کَرن والؠن ہِنٛز درجہٕ بندی ہُنٛد نِظام۔ پرٛؠتھ کارکردٕگی برٛونٛہہ چھُ مُقابلہٕ کرن والؠن پنُن درجہٕ بندی کرٕنؠ پؠوان۔ اگر کارکردٕگی پتہٕ جج پینل طرفہٕ دِنہٕ یِنہٕ واجنہِ اوسط درجہٕ بندی مُقابلہٕ کَرن وٲلہِ سٕنٛزِ سیلف ریٹنگ سٟتؠ میلان چھِ، تیٚلہِ چھُ مُقابلہٕ کَرن وول زینان۔ == مَشہوٗر مُقابلہٕ کرن وٲلؠ== * نمن اروڑہ * کیشو جھا * دیپک یادو (DDSRY) * شیرون ورما (سیٖزن 2 مَنٛز جج بنیٛو) * سنتوش پاترا * بھاویہ شاہ * اننت اُپادھیاے * پونیت سپر اسٹار * کشال بھانوشالی * بنتی بنرجی * جیسی نبام * سکروت * اویناش اگروال * جنی کامکی * ساکشی جھا * چیلو میمی == زینن وٲلؠ == {| class="wikitable" |+ |- !قٕسطہٕ !زینن وول |- ! colspan="2" |سیٖزن 1 |- |1 |جیوتی شرما، ویدانت مودی |- |2 |اننت اُپادھیاے، سوریانش پانڈے تہٕ ویر، تہٕ ایٚکانت ساونت (بونس قٕسطہٕ) |- |3 |دیپک یادو (DDSRY) |- |4 |ہارڈ شیوم، کارتکے تہٕ دیپ (بونس قٕسطہٕ) |- |5 |نمن اروڑا، تہٕ پوشاک دُوا (بونس قٕسطہٕ) |- |6 |سیواشری بورواہ، تہٕ کرن شاہ (بونس قٕسطہٕ) |- |7 |پرَٛنیٖت سِنٛگھ |- |8 |پرَویٖن بھیروا |- |9 |کُشال بھانُشالی |- |10 |بنٹی بینرجی، مِسٹیریَس کایڈن |- |11 |انمول شرما، کُشال بھانُشالی |- |12 |یُوراج گُپتا، خوشی سینی |- ! colspan="2" |سیٖزن 2 |- |1 |اَوِناش اگروال<ref>{{Cite web |last=Bhattacharya |first=Trisha |date=2026-06-20 |title=Samay Raina's India’s Got Latent Season 2 kicks off with Alia Bhatt, Sharvari — and a surprise Donald Trump win |url=https://www.livemint.com/entertainment/samay-rainas-india-s-got-latent-season-2-kicks-off-with-alia-bhatt-sharvari-and-a-surprise-donald-trump-winsamay-ra-11781967679121.html |access-date=2026-06-20 |website=mint |language=en}}</ref> |- |2 |کپل ڈنکر<ref>{{cite web |author=<!-- not stated --> |date=4 July 2026|title=Who is Kapil Dinkar? The UP cop who turned up in uniform on India's Got Latent, and walked away with ₹1 lakh prize |url=https://economictimes.indiatimes.com/news/new-updates/who-is-kapil-dinkar-the-up-cop-who-turned-up-in-uniform-on-indias-got-latent-and-walked-away-with-1-lakh-prize/articleshow/132175728.cms |website=economictimes.indiatimes.com |location=India |publisher=Economic Times|access-date=5 July 2026}}</ref> |- |3 |وِشال پاٹھک |- |4 |گورَو مدان |- |5 |فدھلی ایلی پازی (بونس قٕسطہٕ) |- |6 |چیلو میٖم<ref>{{cite news|title=Who Is Chello Meme? Influencer From Arunachal Pradesh Who Won Rs 1 Lakh On India's Got Latent|url=https://www.ndtv.com/entertainment/meet-chello-meme-the-arunachal-pradesh-influencer-who-won-rs-1-lakh-on-india-s-got-latent-11974689/amp/1|date=29 August 2026|access-date=11 September 2026|work=NDTV|language=en}}</ref><ref>{{cite web|title=Who Is Chello Meme? The Arunachal Influencer Who Turned The Tables On Samay Raina|url=https://www.brut.media/in/articles/culture-lifestyle/tv-shows/who-is-chello-meme-the-arunachal-influencer-who-turned-the-tables-on-samay-raina|date=1 September 2026|access-date=11 September 2026|work=Brut|language=en}}</ref> |- |7 |وِجے پوریا ([[نیٹ فلکس|نیٹ فِلِکس]]-صِرف قٕسطہٕ) |- |8 |پرَٛتیٖک بھاردواج |} == اِستِقبال == اِنٛڈیا'ز گوٹ لیٹیٚنٛٹَن چھُ ہندوستان کؠن مُختٔلِف علاقَن پؠٹھ صلٲحیتَن ہُنٛد مُظٲہرٕ کرنَس مَنٛز پننہِ مُختلِف مُختلِف مُختٔلِف مَضموٗن ہِنٛدِ خٲطرٕ مقبولیت حٲصِل کٔرمٕژ۔ اَتھ شووَس چھُ خاص صلٲحِیت دریافت کرنٕچ صلٲحِیت خٲطرٕ تعریٖف کرنہٕ آمٕژ یِم نہٕ مرکٔزی دھارٕچ دِل بٔہلٲیی مَنٛز تسلیم کرنہٕ آسہِ آمٕتؠ تہٕ مُختٔلِف مشہوٗر شخصَن ہُنٛد ججَن ہُنٛد رلاونہٕ خٲطرٕ تہِ چھُ یِم اَسُن تہٕ مقبوٗلیت پٲدٕ کوٚر۔ اِنٛڈیا'ز گوٹ لیٹیٚنٛٹ آو 2024 مَنٛز یوٗٹیٛوٗبَس پؠٹھ ڈی این اے کِس ٹاپ 5 کریزی شووَن ہٕنٛدِس فہرستس مَنٛز شٲمِل کرنہٕ۔ == یوٗٹیٛوٗب پؠٹھ کمومُت == اِنٛڈیا'ز گوٹ لیٹیٚنٛٹَس چھُ یوٹیوبٕچ ممبرشِپ سٟتؠ فی ریٚتہٕ 1.5 کرور (159,000 ڈالر) کھۄتہٕ زیٛادٕ زیننُک تخمینہٕ لگاونہٕ آمُت، یَتھ مَنٛز پرؠتھ قٕستَس پؠٹھ اِن سٹریم اشتہارَو سٟتؠ علاوٕ آمدٕنی حٲصِل گٔیہِ۔ == تنازٕ == یہِ حوالہٕ چھُ ہِندوستٲنؠ کامیڈی/یوٹیوب شو اِنٛڈیا'ز گوٹ لیٹیٚنٛٹَس أنٛدؠ پٔکؠ تنازعَن ہُنٛد اَکھ سِلسِلہٕ بیان کوٚرمُت، یُس فَرؤری 2025 ہَس مَنٛز أکِس بٔڑِس قونوٗنی تہٕ سیٲسی تنازعَس پؠٹھ اختتام پذیر گوٚو۔ *گۄڈنِمِس تنازعہٕ: واریاہَن قٕستَن کٔر توہین آمیز یا بے حس مزاح باپتھ تَنقیٖد کٔرِتھ یَتھ مَنٛز معذوٗر لوٗکَن، زَنانَن، اروناچل پردیش تہٕ اَمہِ کؠن مقٲمی برادریَن مُتعلِق تبصرٕ، کیرالہٕچ خواندگی تہٕ دِپیکا پڈوکون سُنٛد ڈپریشن تہٕ ماجہِ مُتعلِق تبصرٕ شٲمِل چھُ۔ *راکھی ساوَنٛت واقعہٕ: ساونتن کٔر مزاحیہ اداکار مہیپ سِنٛگھَس سٟتؠ بَحژ ، اَکھ کُرسی لوٚگ، تہٕ کٔرٕن مان رۆستُے تبصرٕ۔ قٕسطہٕ ریلیز گژھنہٕ برٛونٛہہ آو یہِ منظر پتہٕ ہٹاونہٕ۔ *عُرفی جاوید واقعہٕ: مُقابلہٕ کَرن والؠو کٔر مہمان جج عرفی جاویدَس مُتعلِق توہین آمیز تہٕ شرمناک تبصرٕ، یَتھ مَنٛز مِیا خلیفہَس سٟتؠ موازنہٕ تہِ شٲمِل چھُ۔ جاویدَن ترٛوو شو۔ * بۆڈ فَرؤری 2025 تنازعہٕ: مہمان جج رنویر الہبادیاہَن پُرٛژھ أکِس مُقابلہٕ کَرن وٲلِس اَکھ واضح سوال یَتھ مَنٛز تِہنٛدِس مٲلِس ماجہِ سٟتؠ جنسی تعلق چھُ۔ اَمہِ کلپَس سٟتؠ گٔیہِ بٔڑِس پیمانَس پؠٹھ عوٲمی شرارت تہٕ پُلسہٕ شِکایتَن ہُنٛد شِکایت۔ *قونوٗنی/سیٲسی ردعمل:اللہ بادیا، سمے رینا، اپوروا مُکھیجا تہٕ باقین خٕلاف آیہ ایف اَے آر تہٕ شِکایت درٕج کرنہٕ۔ مہاراشٹرٛا کِس وزیر اعلیٰ دیویندر فڑنویس تہٕ آسامٕک وزیر اعلیٰ ہِمنتا بِسوا سرما ہؠتھ سیاست دانو کٔر اَتھ تناضس پؠٹھ تبصرٕ، خاص پٲٹھؠ اظہار راے تہٕ فحاشی ہٕنٛزِ آزٲدی مُتعلِق۔ *شو ہٹاونہٕ: الہ بادیاہن منٛجہِ معٲفی تہٕ ووٚن زِ متنازعہ مواد یِیہِ ہٹاونہٕ۔ ریناہَن کٔر پتہٕ پننہِ یوٹیوب چینلہٕ پؠٹھٕ اِنٛڈیا'ز گاٹ لیٹیٚنٛٹ ہٕکؠ تمام قٕسطہٕ حذف تہٕ ووٚنُن زِ سُہ کرِ حکامَن سٟتؠ [[سہکٲری]]۔ *دَمکی تہٕ ردعمل: مخیجاہن دِژ عصمت دری تہٕ مارنٕچ دھمکی دِنٕچ اطلاع، ییٚلہِ زن باقٕے شِرکت کَرن والؠن تہِ خطرَن ہُنٛد سامنہٕ کرُن۔ انتہاپسند گروپَو کٔر مبینہ طور الہبادیہَس خَلاف دھمکی تہٕ انعام تہِ جٲری۔ *زیٛوٗٹھ بحث: یہِ تنازعہ گوٚو آن لاین فحاشی، سنسرشپ، اظہارٕچ آزٲدی، سیٲسی منافقت، تہٕ ہندوستانَس مَنٛز پوڈ کاسٹ تہٕ ڈیجیٹل دِل بٔہلٲیی ضابطس پؠٹھ أکِس بٔڑِس بَحژ مَنٛز تیار۔ نقادو دِژ یہِ دلیل تہِ زِ یہِ تنازعہ چھُ باقی سیٲسی تہٕ سمٲجی مسلَن نِش توجہ ہٹاونہٕ خٲطرٕ بڑاونہٕ یِوان۔ *حکومت/ریگولیٹری مضمرات: أکؠ پارلِمنٹری کمیٹی کٔر پوڈ کاسٹ تہٕ او ٹی ٹی پلیٹ فارم ہِش ڈیجیٹل مواد ریگولیٹ کرنہٕ خٲطرٕ مضبوٗط قونوٗنَن ہٕنٛز کوٗشش۔ سپریم کورٹَن کٔر اظہارٕچ آزٲدی سٟتؠ وابستہٕ حدودن تہٕ ذمہٕ دٲری پؠٹھ تہِ توجہ دِنہٕ۔ *پَتہٕ ینہٕ واجنہِ قونوٗنی پیش رفت: سپریم کورٹَن دِیُت الہبادیہَس پنُن پوڈ کاسٹ دُبارٕ شۆروٗع کرنُک اجازت، ییٚلہِ زَن عدالتَن کٔر شرکَت کَرن والؠن خٕلاف مُختٔلِف مقدمَن ہُنٛد اِجازت۔ *پَتہٕ خُلاصہٕ: اپریل 2026 ہَس مَنٛز ووٚن رینا ہَن پننِس سٹینڈ اپ سپیشل '''سِٹِل الایِوَس''' مَنٛز زِ الہبادیاہَن اوس پانٛژن گھنٹَن ہِنٛدِس تقریٖبَس دوران کم از کم ٲٹھہِ لَٹہِ متنازعہ سوال پرُٛژھمُت، مگر ترمیم شُدٕ یوٗٹیٛوٗب قٕسطَس مَنٛز آو صرف اَکھ واقعہٕ وُچھنہٕ۔ ==حَوالہٕ== [[زٲژ:ٹیلی وِجَن سیریٖز]] 652316jja4q2y1rohupewbm0gv62zqj میٖڈیاوِکی:Gadget-ImageStackPopup.js 8 32763 151866 2024-10-28T10:55:22Z en>Xaosflux 0 sync from upstream, requested on talk, 151866 javascript text/javascript /******************************************************************************/ /**** THIS PAGE TRACKS [[mw:MediaWiki:Gadget-Global-ImageStackPopup.js]]. PLEASE AVOID EDITING DIRECTLY. /**** EDITS SHOULD BE PROPOSED DIRECTLY to [[mw:MediaWiki:Gadget-Global-ImageStackPopup.js]]. /**** A BOT WILL RAISE AN EDIT REQUEST IF IT BECOMES DIFFERENT FROM UPSTREAM. /******************************************************************************/ // Script written by Bawolff for WikiProject Med Foundation based on earlier ImageStack script by Hellerhoff. var ImageStackPopup = { messages: { en: { ImageStackPopupFrameBack: 'Back', ImageStackPopupFrameImageCredit: 'View media credits', ImageStackPopupNextImage: "Next image", ImageStackPopupPreviousImage: "Previous image", ImageStackPopupSliderLabel: "Select image", ImageStackPopupPlayLabel: "Show slideshow", ImageStackPopupLoading: "Loading... $1%" }, }, init: function () { ImageStackPopup.setMessages(); mw.hook( 'wikipage.content' ).add( ImageStackPopup.addPlayButton ); }, /** * Set the interface messages in the most appropriate language * * Favor the user language first, the page language second, the wiki language third, and lastly English */ setMessages: function () { var userLanguage = mw.config.get( 'wgUserLanguage' ); if ( userLanguage in ImageStackPopup.messages ) { mw.messages.set( ImageStackPopup.messages[ userLanguage ] ); return; } var pageLanguage = mw.config.get( 'wgPageContentLanguage' ); if ( pageLanguage in ImageStackPopup.messages ) { mw.messages.set( ImageStackPopup.messages[ pageLanguage ] ); return; } var contentLanguage = mw.config.get( 'wgContentLanguage' ); if ( contentLanguage in ImageStackPopup.messages ) { mw.messages.set( ImageStackPopup.messages[ contentLanguage ] ); return; } mw.messages.set( ImageStackPopup.messages.en ); }, /** * Append a play button ► to every ImageStackPopup div */ addPlayButton: function ( $content ) { $content.find( 'div.ImageStackPopup' ).each( function () { var $frame = $( this ); var viewerInfo = $frame.data( 'imagestackpopupConfig' ); if ( !( viewerInfo instanceof Array) ) { return; } // match both img and span for broken files in galleries $frame.find( '.mw-file-element, .lazy-image-placeholder' ).each( function ( i ) { if ( viewerInfo[i] instanceof Object && typeof viewerInfo[i].list === "string" ) { var $play = $( '<button></button>' ) .attr( { type: 'button', "class": 'ImageStackPopup-play', title: mw.msg( 'ImageStackPopupPlayLabel' ), "aria-label": mw.msg( 'ImageStackPopupPlayLabel' ) } ).text( '►' ); var data = viewerInfo[i]; $play.on( 'click', data, ImageStackPopup.showFrame ); var $this = $( this ); $this.parent().css( {display: 'inline-block', height: 'fit-content', position: 'relative' } ); $this.after( $play ); } } ); } ); }, showFrame: function ( event ) { event.preventDefault(); var data = event.data; var $loading = $( '#ImageStackPopupLoading' ); if ( !$loading.length ) { $loading = $( '<div></div>' ) .attr( { id: "ImageStackPopupLoading", role: "status" } ); $( document.body ).append( $loading ); } $loading.text( mw.msg( 'ImageStackPopupLoading', "0" ) ); // Load dependencies var state = mw.loader.getState( 'oojs-ui-windows' ); if ( state === 'registered' ) { mw.loader.using( 'oojs-ui-windows', function () { ImageStackPopup.showFrame( event ) } ); return; } var $viewer = ImageStackPopup.getViewer(); var config = { size: 'full', // This doesn't seem to work. classes: 'ImageStackPopupDialog', title: typeof data.title === 'string' ? data.title : false, actions: [ { action: 'accept', label: mw.msg( 'ImageStackPopupFrameBack' ), flags: [ 'primary', 'progressive' ] } ], message: $viewer }; var dialog = function ( config ) { dialog.super.call( this, config ); this.$element.addClass( 'ImageStackPopupDialog' ); } OO.inheritClass( dialog, OO.ui.MessageDialog ); dialog.static.name = 'ImageStack' OO.ui.getWindowManager().addWindows( [ new dialog() ] ); // copied from OO.ui.alert definition. OO.ui.getWindowManager().openWindow( 'ImageStack', config ) .closed.done( function () { // There has to be a better way to do this. if ( window.ImageStackPopupCancel ) { window.ImageStackPopupCancel(); } }); ImageStackPopup.loadImages( $viewer, data ); }, getViewer: function () { var $viewer = $( '<div></div>' ).attr( { class: 'ImageStackPopup-viewer ImageStackPopup-loading' } ); // From https://commons.wikimedia.org/wiki/File:Loading_spinner.svg $viewer.append( '<svg xmlns="http://www.w3.org/2000/svg" aria-label="Loading..." viewBox="0 0 100 100" width="25%" height="25%" style="display:block;margin:auto"><rect fill="#555" height="6" opacity=".083" rx="3" ry="3" transform="rotate(-60 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".167" rx="3" ry="3" transform="rotate(-30 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".25" rx="3" ry="3" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".333" rx="3" ry="3" transform="rotate(30 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".417" rx="3" ry="3" transform="rotate(60 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".5" rx="3" ry="3" transform="rotate(90 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".583" rx="3" ry="3" transform="rotate(120 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".667" rx="3" ry="3" transform="rotate(150 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".75" rx="3" ry="3" transform="rotate(180 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".833" rx="3" ry="3" transform="rotate(210 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".917" rx="3" ry="3" transform="rotate(240 50 50)" width="25" x="72" y="47"/></svg>' ); return $viewer; }, loadImages: function ( $viewer, data ) { var page = mw.Title.newFromText( data.list ); if ( !page ) { console.log( "Image stack error, invalid page " + data.list ); return; } fetch( page.getUrl() ) .then( function ( response ) { return response.text() } ) .then( function ( text ) { return ImageStackPopup.handlePage( $viewer, data, text ) } ); }, handlePage: function( $viewer, data, text ) { var parser = new DOMParser; var listDoc = parser.parseFromString( text, 'text/html' ); var idSelector = mw.Title.newFromText( data.list ).getFragment(); var listElm = listDoc.getElementById( idSelector ); if ( !listElm ) { console.log( "Error finding element in list document" ); return; } var imgs = listElm.querySelectorAll( 'img.mw-file-element' ); var width = imgs[0].width; var height = imgs[0].height; var context = new ImageStackPopup.Context( $viewer, data, imgs, width, height ); }, getSource: function ( imgElm, width, height ) { // desired dimensions var w = width * window.devicePixelRatio; var h = height * window.devicePixelRatio; // current candidate var imgW = parseInt(imgElm.width); var imgH = parseInt(imgElm.height); // img tag width/height. var originalW = imgW; var originalH = imgH; var src = imgElm.src; if ( imgW >= w && imgH >= h ) { return src; } var srcSets = imgElm.srcset.split( /\s*,\s*/ ); for ( var i = 0; i < srcSets.length; i++ ) { var parts = srcSets[i].match( /^(\S+)\s+([0-9.])x\s*$/ ); if ( parts && parts.length === 3 ) { var pixelRatio = parseFloat( parts[2] ); if ( ( imgW < w && originalW*pixelRatio > imgW ) || ( imgW > w && originalW*pixelRatio - w >= 0 && originalW*pixelRatio < imgW ) ) { imgW = originalW*pixelRatio; imgH = originalH*pixelRatio; src = parts[1]; } } } return src; }, doStats: function () { if ( window.imageStackPopupStatsAlreadyDone !== true ) { window.imageStackPopupStatsAlreadyDone = true; mw.track( 'counter.gadget_ImageStackPopup._all' ); mw.track( 'counter.gadget_ImageStackPopup.' + mw.config.get( 'wgDBname' ) + '_all' ); var statName = mw.config.get( 'wgDBname' ) + '_' + mw.config.get( 'wgPageName' ); statName = encodeURIComponent( statName ); // Symbols don't seem to work. statName = statName.replace( /[^a-zA-Z0-9_]/g, '_' ); mw.track( 'counter.gadget_ImageStackPopup.' + statName ); } }, Context: function ( $viewer, config, imgs, width, height ) { ImageStackPopup.doStats(); this.$viewer = $viewer; this.loop = !!config.loop; this.start = typeof config.start === 'number' ? config.start - 1 : 0; this.urls = null; this.infoUrls = null; this.imgs = imgs; this.captionId = typeof config.caption === 'string' ? config.caption : false; // Future TODO - make the size of image adaptive to screen size // Future TODO - handle images of different sizes and aspect ratios. this.width = config.width; this.height = config.height; if ( this.width && !this.height ) { this.height = this.width * (imgs[0].height)/(imgs[0].width); } if ( !this.width && this.height ) { this.width = this.height * (imgs[0].width)/(imgs[0].height); } this.imgWidth = width; this.imgHeight = height; this.currentImage = this.start; this.pendingFrame = false; this.$loading = $( '#ImageStackPopupLoading' ); this.urlsLoaded = 0; this.pendingTouches = {}; this.init(); } }; // This part is based on Hellerhoff's https://commons.wikimedia.org/wiki/MediaWiki:Gadget-ImageStack.js ImageStackPopup.Context.prototype = { init: function () { var that = this; // Chrome scrolls much faster than firefox const SCROLL_SLOWDOWN = navigator.userAgent.includes( "Chrome/" ) ? 25 : 2; this.pendingScrollDelta = 0; var containingWidth = this.$viewer[0].parentElement.parentElement.parentElement.clientWidth; var containingHeight = this.$viewer[0].parentElement.parentElement.parentElement.clientHeight; this.$viewer.empty(); $counter = $('<div class="ImageStackCounter">'); this.$leftLink = $('<a>', { href: '#', text: '← ', title: mw.msg( 'ImageStackPopupPreviousImage' ), "aria-label": mw.msg( 'ImageStackPopupPreviousImage' ), }).click(function() { that.currentImage--; that.repaint(); return false; }); this.$rightLink = $('<a>', { href: '#', text: ' →', title: mw.msg( 'ImageStackPopupNextImage' ), "aria-label": mw.msg( 'ImageStackPopupNextImage' ), }).click(function() { that.currentImage++; that.repaint(); return false; }); this.$slider = $( '<input>', { type: 'range', min: 0, max: that.imgs.length - 1, value: this.currentImage, "aria-label": mw.msg( 'ImageStackPopupSliderLabel' ), class: 'ImageStackPopupSlider' } ).on( 'input', function (e) { that.currentImage = parseInt( e.target.value ); that.repaint(); } ).on( 'keydown', function (e) { // Hacky fix. Not enough browsers support the direction: css // keyword, so we fix up events here. if ( e.key === 'ArrowUp' ) { e.preventDefault(); that.currentImage--; that.repaint(); } else if ( e.key === 'ArrowDown' ) { e.preventDefault(); that.currentImage++; that.repaint(); } } ); var handleTouchStart = this.handleTouchStart.bind(this); var handleTouchMove = this.handleTouchMove.bind(this); var handleTouchCancel = this.handleTouchCancel.bind(this); var handleTouchEnd = this.handleTouchEnd.bind(this); var touchElement = this.$viewer[0].parentElement.parentElement; var opt = { passive: true }; // For now it seems like we don't have to cancel events. Unclear if we should touchElement.addEventListener( 'touchstart', handleTouchStart, opt ); touchElement.addEventListener( 'touchmove', handleTouchMove, opt ); touchElement.addEventListener( 'touchend', handleTouchEnd, opt ); touchElement.addEventListener( 'touchcancel', handleTouchCancel, opt ); var keyeventhandler = this.handleArrow.bind(this); document.addEventListener( 'keydown', keyeventhandler ); // Hacky! window.ImageStackPopupCancel = function () { document.removeEventListener( 'keydown', keyeventhandler ); touchElement.removeEventListener( 'touchstart', handleTouchStart, opt ); touchElement.removeEventListener( 'touchmove', handleTouchMove, opt ); touchElement.removeEventListener( 'touchend', handleTouchEnd, opt ); touchElement.removeEventListener( 'touchcancel', handleTouchCancel, opt ); }; this.$currentCount = $('<span>', { 'class': 'ImageStackCounterCurrent', text: that.currentImage + 1 }); var left = $( '<span>', { class: "ImageStackPopupCounterHideMobile" } ).append( this.$leftLink, '(' ); var right = $( '<span>', { class: "ImageStackPopupCounterHideMobile" } ).append( ')', this.$rightLink ); $counter.append(left, this.$currentCount, '/', that.imgs.length, right); this.$leftLink.add(this.$rightLink).css({ fontSize: "110%", fontweight: "bold" }); this.img = new Image(); this.img.fetchPriority = 'high'; this.img.loading = 'eager'; this.img.decoding = 'sync'; this.img.className = 'ImageStackPopupImg'; // width/height set later. var $img = $( this.img ); $img.on('mousewheel', function(event, delta) { // Scroll is too fast (Esp. on chrome), so we buffer scroll events. that.pendingScrollDelta += delta; var realDelta = Math.floor(that.pendingScrollDelta/SCROLL_SLOWDOWN); if (delta !== 0) { // We reverse the direction of scroll. that.currentImage -= realDelta > 2 ? 2 : realDelta; that.pendingScrollDelta -= realDelta*SCROLL_SLOWDOWN; that.repaint(); } return false; }); $img.on('mousedown', function(event) { // prepare scroll by drag mouse_y = event.screenY; // remember mouse-position that.scrollobject = true; // set flag return false; }); $img.on('mousemove', function(event) { if (that.scrollobject && Math.abs(mouse_y - event.screenY) > 10) { var offset = (mouse_y < event.screenY) ? 1 : -1; mouse_y = event.screenY; // remember mouse-position for next event that.currentImage += offset; that.repaint(); } return false; }); this.img.addEventListener( 'load', this.urlLoaded.bind( this ), { once: true } ); this.img.addEventListener( 'error', this.urlLoaded.bind( this ), { once: true } ); var $container = $( '<div class="ImageStackPopupImgContainer"></div>' ) .append( $counter ) .append( this.$slider ) .append( $img ); this.$viewer.append( $container ); this.$credit = $( '<a></a>' ); this.$credit.text( mw.msg( 'ImageStackPopupFrameImageCredit' ) ); var $creditDiv = $( '<div class="ImageStackPopupCredit"></div>' ).append( this.$credit ); this.$viewer.append( $creditDiv ); var $wrapper = false; if ( this.captionId ) { var captionElm = document.getElementById( this.captionId ); if ( captionElm ) { var newCaption = $( captionElm ).clone(); newCaption.show(); $wrapper = $( '<div class="ImageStackPopup-caption"></div>' ).append( newCaption ); this.$viewer.append( $wrapper ); } } // Try to adjust image size to viewer window // but do not go so far that the image is blurry if ( !this.width ) { var controlHeight = $creditDiv[0].clientHeight; var paddingDivStyles = getComputedStyle( this.$viewer[0].parentElement.parentElement ); controlHeight += parseFloat( paddingDivStyles.getPropertyValue( 'padding-top' ) ) + parseFloat( paddingDivStyles.getPropertyValue( 'padding-bottom' ) ); containingWidth -= parseFloat( paddingDivStyles.getPropertyValue( 'padding-left' ) ) + parseFloat( paddingDivStyles.getPropertyValue( 'padding-right' ) ); if ( $wrapper ) { controlHeight += $wrapper[0].clientHeight; } controlHeight += 5; // fudge factor. if ( this.$viewer[0].parentElement.previousElementSibling ) { // OOUI window label. This is a bit hacky. controlHeight += this.$viewer[0].parentElement.previousElementSibling.clientHeight; } var maxImgDim = this.getMaxImgDim(); var aspect = maxImgDim[0]/maxImgDim[1]; containingHeight -= controlHeight; // 3 to account for slider and text controls. but not on narrow screens. if ( containingWidth >= 500 ) { containingWidth -= parseFloat( getComputedStyle( this.$slider[0] ).getPropertyValue( 'width' ) ) * 3; } if ( maxImgDim[0] > maxImgDim[1] ) { if ( maxImgDim[0] > containingWidth ) { // shrink to fit. maxImgDim[0] = containingWidth; maxImgDim[1] = Math.floor(containingWidth/aspect); } if ( maxImgDim[1] > containingHeight ) { maxImgDim[1] = containingHeight; maxImgDim[0] = Math.floor( containingHeight * aspect ); } } else { if ( maxImgDim[1] > containingHeight ) { maxImgDim[1] = containingHeight; maxImgDim[0] = Math.floor( containingHeight * aspect ); } if ( maxImgDim[0] > containingWidth ) { // shrink to fit. maxImgDim[0] = containingWidth; maxImgDim[1] = Math.floor(containingWidth/aspect); } } this.width = maxImgDim[0]; this.height = maxImgDim[1]; } this.img.width = this.width; this.img.height = this.height; // different font size in credit div, so don't use em. var sliderRoom; if ( containingWidth >= 500 ) { sliderRoom = parseFloat( getComputedStyle( this.$slider[0] ).getPropertyValue( 'width' ) ) * 3; } else { sliderRoom = 0; } $creditDiv.css( 'width', this.width + sliderRoom + 'px' ); $creditDiv.css( 'padding-right', sliderRoom + 'px' ); $container.css( 'width', 'calc( ' + this.width + 'px' + ' + 3em )' ); this.$slider.css( 'height', this.height + 'px' ); $counter.css( 'min-height', this.height + 'px' ); this.getUrls(); this.toggleImg(); this.preload(); }, getMaxImgDim: function () { // This assumes that even on high-DPI displays, enlarging to 96dpi is ok. var w = this.imgs[0].width; var h = this.imgs[0].height; if ( this.imgs[0].srcset.match( /\s2x\s*(,|$)/ ) ) { w *= 2; h *= 2; } else if ( this.imgs[0].srcset.match( /\s1.5x\s*(,|$)/ ) ) { w = Math.floor( 1.5*w ); h = Math.floor( 1.5*h ); } return [w,h]; }, repaint: function () { if ( this.pendingFrame ) { return; } requestAnimationFrame( this.toggleImg.bind( this ) ); }, toggleImg: function () { if ( this.loop ) { if ( this.currentImage < 0 ) { this.currentImage = this.urls.length - 1; } else if ( this.currentImage >= this.urls.length ) { this.currentImage = 0; } } else { this.$rightLink.css( 'visibility', 'visible' ); this.$leftLink.css( 'visibility', 'visible' ); if ( this.currentImage <= 0 ) { this.currentImage = 0; this.$leftLink.css( 'visibility', 'hidden' ); } else if ( this.currentImage >= this.urls.length - 1 ) { this.currentImage = this.urls.length - 1; this.$rightLink.css( 'visibility', 'hidden' ); } } this.$slider[0].value = this.currentImage; // Future todo might be to localize digits. this.$currentCount[0].textContent = this.currentImage + 1; this.img.src = this.urls[this.currentImage]; this.$credit[0].href = this.infoUrls[this.currentImage]; if ( this.infoUrls[this.currentImage] === false ) { this.$credit.css( 'visibility', 'hidden' ); } else { this.$credit.css( 'visibility', 'visible' ); } this.pendingFrame = false; }, preload: function () { for ( var i = 0; i < this.urls.length; i++ ) { if ( i === this.currentImage ) { // already fetched. continue; } var img = new Image(); if ( Math.abs( this.currentImage - i ) > 4 ) { img.fetchPriority = 'low'; } img.loading = 'eager'; img.decoding = 'sync'; img.addEventListener( 'load', this.urlLoaded.bind( this ), { once: true } ); img.addEventListener( 'error', this.urlLoaded.bind( this ), { once: true} ); img.src = this.urls[i]; } }, getUrls: function () { this.urls = []; this.infoUrls = []; for( var i = 0; i < this.imgs.length; i++ ) { this.urls[i] = ImageStackPopup.getSource( this.imgs[i], this.width, this.height ); if ( this.imgs[i].parentElement.href ) { this.infoUrls[i] = this.imgs[i].parentElement.href; } else { this.infoUrls[i] = false; } } }, urlLoaded: function () { // For now, this still increments for failed loads, so // as not to have the progress bar stuck. this.urlsLoaded++; var progress = Math.floor( ( this.urlsLoaded / this.urls.length ) * 100 ); if ( this.$loading.length ) { this.$loading.text( mw.msg( 'ImageStackPopupLoading', progress ) ); if ( this.urlsLoaded === this.urls.length ) { this.$viewer.removeClass( 'ImageStackPopup-loading' ); this.$loading.remove(); } } }, handleArrow: function (e) { // Not sure if we should prevent default here // possible accessibility issue if there is somehow something scrollable. // in theory, nothing here should be scrollable so it shouldn't matter. if ( ( e.key === 'ArrowUp' || e.key === 'ArrowDown' || e.key === 'ArrowRight' || e.key === 'ArrowLeft' ) && e.target.tagName !== 'INPUT' && this.$viewer.find(e) ) { if ( e.key === 'ArrowUp' || e.key === 'ArrowRight' ) { this.currentImage--; this.repaint(); } else if ( e.key === 'ArrowDown' || e.key === 'ArrowLeft' ) { this.currentImage++; this.repaint(); } } }, handleTouchStart: function (e) { for ( var i = 0; i < e.changedTouches.length; i++ ) { var t = e.changedTouches[i]; this.pendingTouches[t.identifier] = [t.clientX, t.clientY]; } }, handleTouchCancel: function (e) { for ( var i = 0; i < e.changedTouches.length; i++ ) { var t = e.changedTouches[i]; delete this.pendingTouches[t.identifier]; } }, handleTouchMove: function (e) { for ( var i = 0; i < e.changedTouches.length; i++ ) { var t = e.changedTouches[i]; if ( !this.pendingTouches[t.identifier] ) { continue; } var startX = this.pendingTouches[t.identifier][0]; var startY = this.pendingTouches[t.identifier][1]; var angle = Math.abs( Math.atan( ( startY - t.clientY ) / ( startX - t.clientX ) ) ); if ( angle > 1 ) { // vertical. > ~60 degrees if ( Math.abs( startY - t.clientY ) < 15 ) { // Not large enough continue; } // reset calculation so we move image if they move 15 more pixels this.pendingTouches[t.identifier] = [t.clientX, t.clientY]; if ( startY - t.clientY > 0 ) { // swipe up this.currentImage--; this.repaint(); } else { // swipe down this.currentImage++; this.repaint(); } } } }, handleTouchEnd: function (e) { for ( var i = 0; i < e.changedTouches.length; i++ ) { var t = e.changedTouches[i]; if ( !this.pendingTouches[t.identifier] ) { continue; } var startX = this.pendingTouches[t.identifier][0]; var startY = this.pendingTouches[t.identifier][1]; var angle = Math.abs( Math.atan( ( startY - t.clientY ) / ( startX - t.clientX ) ) ); if ( angle < 0.7 ) { // horizontal swipe. < 40 degrees if ( Math.abs( startX - t.clientX ) < 30 ) { // Not large enough continue; } if ( startX - t.clientX < 0 ) { // swipe right this.currentImage--; this.repaint(); } else { // swipe left this.currentImage++; this.repaint(); } } if ( angle > 1 ) { // vertical swipe. > ~60 degrees if ( Math.abs( startY - t.clientY ) < 30 ) { // Not large enough continue; } if ( startY - t.clientY > 0 ) { // swipe up this.currentImage--; this.repaint(); } else { // swipe down this.currentImage++; this.repaint(); } } delete this.pendingTouches[t.identifier]; } }, }; // Include jquery.mousewheel dependency. // -------- /*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh) * Licensed under the MIT License (LICENSE.txt). * * Version: 3.1.11 * * Requires: jQuery 1.2.2+ */ (function (factory) { if ( typeof define === 'function' && define.amd ) { // AMD. Register as an anonymous module. define(['jquery'], factory); } else if (typeof exports === 'object') { // Node/CommonJS style for Browserify module.exports = factory; } else { // Browser globals factory(jQuery); } }(function ($) { var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'], toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], slice = Array.prototype.slice, nullLowestDeltaTimeout, lowestDelta; if ( $.event.fixHooks ) { for ( var i = toFix.length; i; ) { $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; } } var special = $.event.special.mousewheel = { version: '3.1.11', setup: function() { if ( this.addEventListener ) { for ( var i = toBind.length; i; ) { this.addEventListener( toBind[--i], handler, false ); } } else { this.onmousewheel = handler; } // Store the line height and page height for this particular element $.data(this, 'mousewheel-line-height', special.getLineHeight(this)); $.data(this, 'mousewheel-page-height', special.getPageHeight(this)); }, teardown: function() { if ( this.removeEventListener ) { for ( var i = toBind.length; i; ) { this.removeEventListener( toBind[--i], handler, false ); } } else { this.onmousewheel = null; } // Clean up the data we added to the element $.removeData(this, 'mousewheel-line-height'); $.removeData(this, 'mousewheel-page-height'); }, getLineHeight: function(elem) { var $parent = $(elem)['offsetParent' in $.fn ? 'offsetParent' : 'parent'](); if (!$parent.length) { $parent = $('body'); } return parseInt($parent.css('fontSize'), 10); }, getPageHeight: function(elem) { return $(elem).height(); }, settings: { adjustOldDeltas: true, // see shouldAdjustOldDeltas() below normalizeOffset: true // calls getBoundingClientRect for each event } }; $.fn.extend({ mousewheel: function(fn) { return fn ? this.on('mousewheel', fn) : this.trigger('mousewheel'); }, unmousewheel: function(fn) { return this.off('mousewheel', fn); } }); function handler(event) { var orgEvent = event || window.event, args = slice.call(arguments, 1), delta = 0, deltaX = 0, deltaY = 0, absDelta = 0, offsetX = 0, offsetY = 0; event = $.event.fix(orgEvent); event.type = 'mousewheel'; // Old school scrollwheel delta if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; } if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; } if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; } if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; } // Firefox < 17 horizontal scrolling related to DOMMouseScroll event if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { deltaX = deltaY * -1; deltaY = 0; } // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy delta = deltaY === 0 ? deltaX : deltaY; // New school wheel delta (wheel event) if ( 'deltaY' in orgEvent ) { deltaY = orgEvent.deltaY * -1; delta = deltaY; } if ( 'deltaX' in orgEvent ) { deltaX = orgEvent.deltaX; if ( deltaY === 0 ) { delta = deltaX * -1; } } // No change actually happened, no reason to go any further if ( deltaY === 0 && deltaX === 0 ) { return; } // Need to convert lines and pages to pixels if we aren't already in pixels // There are three delta modes: // * deltaMode 0 is by pixels, nothing to do // * deltaMode 1 is by lines // * deltaMode 2 is by pages if ( orgEvent.deltaMode === 1 ) { var lineHeight = $.data(this, 'mousewheel-line-height'); delta *= lineHeight; deltaY *= lineHeight; deltaX *= lineHeight; } else if ( orgEvent.deltaMode === 2 ) { var pageHeight = $.data(this, 'mousewheel-page-height'); delta *= pageHeight; deltaY *= pageHeight; deltaX *= pageHeight; } // Store lowest absolute delta to normalize the delta values absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) ); if ( !lowestDelta || absDelta < lowestDelta ) { lowestDelta = absDelta; // Adjust older deltas if necessary if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { lowestDelta /= 40; } } // Adjust older deltas if necessary if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { // Divide all the things by 40! delta /= 40; deltaX /= 40; deltaY /= 40; } // Get a whole, normalized value for the deltas delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta); deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta); deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta); // Normalise offsetX and offsetY properties if ( special.settings.normalizeOffset && this.getBoundingClientRect ) { var boundingRect = this.getBoundingClientRect(); offsetX = event.clientX - boundingRect.left; offsetY = event.clientY - boundingRect.top; } // Add information to the event object event.deltaX = deltaX; event.deltaY = deltaY; event.deltaFactor = lowestDelta; event.offsetX = offsetX; event.offsetY = offsetY; // Go ahead and set deltaMode to 0 since we converted to pixels // Although this is a little odd since we overwrite the deltaX/Y // properties with normalized deltas. event.deltaMode = 0; // Add event and delta to the front of the arguments args.unshift(event, delta, deltaX, deltaY); // Clearout lowestDelta after sometime to better // handle multiple device types that give different // a different lowestDelta // Ex: trackpad = 3 and mouse wheel = 120 if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); } nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200); return ($.event.dispatch || $.event.handle).apply(this, args); } function nullLowestDelta() { lowestDelta = null; } function shouldAdjustOldDeltas(orgEvent, absDelta) { // If this is an older event and the delta is divisable by 120, // then we are assuming that the browser is treating this as an // older mouse wheel event and that we should divide the deltas // by 40 to try and get a more usable deltaFactor. // Side note, this actually impacts the reported scroll distance // in older browsers and can cause scrolling to be slower than native. // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false. return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0; } })); // --- Start image stack popup $( ImageStackPopup.init ); cikr21q0ghiymynrca96q2977wxgnaq 151867 151866 2026-09-21T14:23:05Z 511KeV 8268 1 revision imported from [[:en:MediaWiki:Gadget-ImageStackPopup.js]]: Need 151866 javascript text/javascript /******************************************************************************/ /**** THIS PAGE TRACKS [[mw:MediaWiki:Gadget-Global-ImageStackPopup.js]]. PLEASE AVOID EDITING DIRECTLY. /**** EDITS SHOULD BE PROPOSED DIRECTLY to [[mw:MediaWiki:Gadget-Global-ImageStackPopup.js]]. /**** A BOT WILL RAISE AN EDIT REQUEST IF IT BECOMES DIFFERENT FROM UPSTREAM. /******************************************************************************/ // Script written by Bawolff for WikiProject Med Foundation based on earlier ImageStack script by Hellerhoff. var ImageStackPopup = { messages: { en: { ImageStackPopupFrameBack: 'Back', ImageStackPopupFrameImageCredit: 'View media credits', ImageStackPopupNextImage: "Next image", ImageStackPopupPreviousImage: "Previous image", ImageStackPopupSliderLabel: "Select image", ImageStackPopupPlayLabel: "Show slideshow", ImageStackPopupLoading: "Loading... $1%" }, }, init: function () { ImageStackPopup.setMessages(); mw.hook( 'wikipage.content' ).add( ImageStackPopup.addPlayButton ); }, /** * Set the interface messages in the most appropriate language * * Favor the user language first, the page language second, the wiki language third, and lastly English */ setMessages: function () { var userLanguage = mw.config.get( 'wgUserLanguage' ); if ( userLanguage in ImageStackPopup.messages ) { mw.messages.set( ImageStackPopup.messages[ userLanguage ] ); return; } var pageLanguage = mw.config.get( 'wgPageContentLanguage' ); if ( pageLanguage in ImageStackPopup.messages ) { mw.messages.set( ImageStackPopup.messages[ pageLanguage ] ); return; } var contentLanguage = mw.config.get( 'wgContentLanguage' ); if ( contentLanguage in ImageStackPopup.messages ) { mw.messages.set( ImageStackPopup.messages[ contentLanguage ] ); return; } mw.messages.set( ImageStackPopup.messages.en ); }, /** * Append a play button ► to every ImageStackPopup div */ addPlayButton: function ( $content ) { $content.find( 'div.ImageStackPopup' ).each( function () { var $frame = $( this ); var viewerInfo = $frame.data( 'imagestackpopupConfig' ); if ( !( viewerInfo instanceof Array) ) { return; } // match both img and span for broken files in galleries $frame.find( '.mw-file-element, .lazy-image-placeholder' ).each( function ( i ) { if ( viewerInfo[i] instanceof Object && typeof viewerInfo[i].list === "string" ) { var $play = $( '<button></button>' ) .attr( { type: 'button', "class": 'ImageStackPopup-play', title: mw.msg( 'ImageStackPopupPlayLabel' ), "aria-label": mw.msg( 'ImageStackPopupPlayLabel' ) } ).text( '►' ); var data = viewerInfo[i]; $play.on( 'click', data, ImageStackPopup.showFrame ); var $this = $( this ); $this.parent().css( {display: 'inline-block', height: 'fit-content', position: 'relative' } ); $this.after( $play ); } } ); } ); }, showFrame: function ( event ) { event.preventDefault(); var data = event.data; var $loading = $( '#ImageStackPopupLoading' ); if ( !$loading.length ) { $loading = $( '<div></div>' ) .attr( { id: "ImageStackPopupLoading", role: "status" } ); $( document.body ).append( $loading ); } $loading.text( mw.msg( 'ImageStackPopupLoading', "0" ) ); // Load dependencies var state = mw.loader.getState( 'oojs-ui-windows' ); if ( state === 'registered' ) { mw.loader.using( 'oojs-ui-windows', function () { ImageStackPopup.showFrame( event ) } ); return; } var $viewer = ImageStackPopup.getViewer(); var config = { size: 'full', // This doesn't seem to work. classes: 'ImageStackPopupDialog', title: typeof data.title === 'string' ? data.title : false, actions: [ { action: 'accept', label: mw.msg( 'ImageStackPopupFrameBack' ), flags: [ 'primary', 'progressive' ] } ], message: $viewer }; var dialog = function ( config ) { dialog.super.call( this, config ); this.$element.addClass( 'ImageStackPopupDialog' ); } OO.inheritClass( dialog, OO.ui.MessageDialog ); dialog.static.name = 'ImageStack' OO.ui.getWindowManager().addWindows( [ new dialog() ] ); // copied from OO.ui.alert definition. OO.ui.getWindowManager().openWindow( 'ImageStack', config ) .closed.done( function () { // There has to be a better way to do this. if ( window.ImageStackPopupCancel ) { window.ImageStackPopupCancel(); } }); ImageStackPopup.loadImages( $viewer, data ); }, getViewer: function () { var $viewer = $( '<div></div>' ).attr( { class: 'ImageStackPopup-viewer ImageStackPopup-loading' } ); // From https://commons.wikimedia.org/wiki/File:Loading_spinner.svg $viewer.append( '<svg xmlns="http://www.w3.org/2000/svg" aria-label="Loading..." viewBox="0 0 100 100" width="25%" height="25%" style="display:block;margin:auto"><rect fill="#555" height="6" opacity=".083" rx="3" ry="3" transform="rotate(-60 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".167" rx="3" ry="3" transform="rotate(-30 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".25" rx="3" ry="3" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".333" rx="3" ry="3" transform="rotate(30 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".417" rx="3" ry="3" transform="rotate(60 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".5" rx="3" ry="3" transform="rotate(90 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".583" rx="3" ry="3" transform="rotate(120 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".667" rx="3" ry="3" transform="rotate(150 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".75" rx="3" ry="3" transform="rotate(180 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".833" rx="3" ry="3" transform="rotate(210 50 50)" width="25" x="72" y="47"/><rect fill="#555" height="6" opacity=".917" rx="3" ry="3" transform="rotate(240 50 50)" width="25" x="72" y="47"/></svg>' ); return $viewer; }, loadImages: function ( $viewer, data ) { var page = mw.Title.newFromText( data.list ); if ( !page ) { console.log( "Image stack error, invalid page " + data.list ); return; } fetch( page.getUrl() ) .then( function ( response ) { return response.text() } ) .then( function ( text ) { return ImageStackPopup.handlePage( $viewer, data, text ) } ); }, handlePage: function( $viewer, data, text ) { var parser = new DOMParser; var listDoc = parser.parseFromString( text, 'text/html' ); var idSelector = mw.Title.newFromText( data.list ).getFragment(); var listElm = listDoc.getElementById( idSelector ); if ( !listElm ) { console.log( "Error finding element in list document" ); return; } var imgs = listElm.querySelectorAll( 'img.mw-file-element' ); var width = imgs[0].width; var height = imgs[0].height; var context = new ImageStackPopup.Context( $viewer, data, imgs, width, height ); }, getSource: function ( imgElm, width, height ) { // desired dimensions var w = width * window.devicePixelRatio; var h = height * window.devicePixelRatio; // current candidate var imgW = parseInt(imgElm.width); var imgH = parseInt(imgElm.height); // img tag width/height. var originalW = imgW; var originalH = imgH; var src = imgElm.src; if ( imgW >= w && imgH >= h ) { return src; } var srcSets = imgElm.srcset.split( /\s*,\s*/ ); for ( var i = 0; i < srcSets.length; i++ ) { var parts = srcSets[i].match( /^(\S+)\s+([0-9.])x\s*$/ ); if ( parts && parts.length === 3 ) { var pixelRatio = parseFloat( parts[2] ); if ( ( imgW < w && originalW*pixelRatio > imgW ) || ( imgW > w && originalW*pixelRatio - w >= 0 && originalW*pixelRatio < imgW ) ) { imgW = originalW*pixelRatio; imgH = originalH*pixelRatio; src = parts[1]; } } } return src; }, doStats: function () { if ( window.imageStackPopupStatsAlreadyDone !== true ) { window.imageStackPopupStatsAlreadyDone = true; mw.track( 'counter.gadget_ImageStackPopup._all' ); mw.track( 'counter.gadget_ImageStackPopup.' + mw.config.get( 'wgDBname' ) + '_all' ); var statName = mw.config.get( 'wgDBname' ) + '_' + mw.config.get( 'wgPageName' ); statName = encodeURIComponent( statName ); // Symbols don't seem to work. statName = statName.replace( /[^a-zA-Z0-9_]/g, '_' ); mw.track( 'counter.gadget_ImageStackPopup.' + statName ); } }, Context: function ( $viewer, config, imgs, width, height ) { ImageStackPopup.doStats(); this.$viewer = $viewer; this.loop = !!config.loop; this.start = typeof config.start === 'number' ? config.start - 1 : 0; this.urls = null; this.infoUrls = null; this.imgs = imgs; this.captionId = typeof config.caption === 'string' ? config.caption : false; // Future TODO - make the size of image adaptive to screen size // Future TODO - handle images of different sizes and aspect ratios. this.width = config.width; this.height = config.height; if ( this.width && !this.height ) { this.height = this.width * (imgs[0].height)/(imgs[0].width); } if ( !this.width && this.height ) { this.width = this.height * (imgs[0].width)/(imgs[0].height); } this.imgWidth = width; this.imgHeight = height; this.currentImage = this.start; this.pendingFrame = false; this.$loading = $( '#ImageStackPopupLoading' ); this.urlsLoaded = 0; this.pendingTouches = {}; this.init(); } }; // This part is based on Hellerhoff's https://commons.wikimedia.org/wiki/MediaWiki:Gadget-ImageStack.js ImageStackPopup.Context.prototype = { init: function () { var that = this; // Chrome scrolls much faster than firefox const SCROLL_SLOWDOWN = navigator.userAgent.includes( "Chrome/" ) ? 25 : 2; this.pendingScrollDelta = 0; var containingWidth = this.$viewer[0].parentElement.parentElement.parentElement.clientWidth; var containingHeight = this.$viewer[0].parentElement.parentElement.parentElement.clientHeight; this.$viewer.empty(); $counter = $('<div class="ImageStackCounter">'); this.$leftLink = $('<a>', { href: '#', text: '← ', title: mw.msg( 'ImageStackPopupPreviousImage' ), "aria-label": mw.msg( 'ImageStackPopupPreviousImage' ), }).click(function() { that.currentImage--; that.repaint(); return false; }); this.$rightLink = $('<a>', { href: '#', text: ' →', title: mw.msg( 'ImageStackPopupNextImage' ), "aria-label": mw.msg( 'ImageStackPopupNextImage' ), }).click(function() { that.currentImage++; that.repaint(); return false; }); this.$slider = $( '<input>', { type: 'range', min: 0, max: that.imgs.length - 1, value: this.currentImage, "aria-label": mw.msg( 'ImageStackPopupSliderLabel' ), class: 'ImageStackPopupSlider' } ).on( 'input', function (e) { that.currentImage = parseInt( e.target.value ); that.repaint(); } ).on( 'keydown', function (e) { // Hacky fix. Not enough browsers support the direction: css // keyword, so we fix up events here. if ( e.key === 'ArrowUp' ) { e.preventDefault(); that.currentImage--; that.repaint(); } else if ( e.key === 'ArrowDown' ) { e.preventDefault(); that.currentImage++; that.repaint(); } } ); var handleTouchStart = this.handleTouchStart.bind(this); var handleTouchMove = this.handleTouchMove.bind(this); var handleTouchCancel = this.handleTouchCancel.bind(this); var handleTouchEnd = this.handleTouchEnd.bind(this); var touchElement = this.$viewer[0].parentElement.parentElement; var opt = { passive: true }; // For now it seems like we don't have to cancel events. Unclear if we should touchElement.addEventListener( 'touchstart', handleTouchStart, opt ); touchElement.addEventListener( 'touchmove', handleTouchMove, opt ); touchElement.addEventListener( 'touchend', handleTouchEnd, opt ); touchElement.addEventListener( 'touchcancel', handleTouchCancel, opt ); var keyeventhandler = this.handleArrow.bind(this); document.addEventListener( 'keydown', keyeventhandler ); // Hacky! window.ImageStackPopupCancel = function () { document.removeEventListener( 'keydown', keyeventhandler ); touchElement.removeEventListener( 'touchstart', handleTouchStart, opt ); touchElement.removeEventListener( 'touchmove', handleTouchMove, opt ); touchElement.removeEventListener( 'touchend', handleTouchEnd, opt ); touchElement.removeEventListener( 'touchcancel', handleTouchCancel, opt ); }; this.$currentCount = $('<span>', { 'class': 'ImageStackCounterCurrent', text: that.currentImage + 1 }); var left = $( '<span>', { class: "ImageStackPopupCounterHideMobile" } ).append( this.$leftLink, '(' ); var right = $( '<span>', { class: "ImageStackPopupCounterHideMobile" } ).append( ')', this.$rightLink ); $counter.append(left, this.$currentCount, '/', that.imgs.length, right); this.$leftLink.add(this.$rightLink).css({ fontSize: "110%", fontweight: "bold" }); this.img = new Image(); this.img.fetchPriority = 'high'; this.img.loading = 'eager'; this.img.decoding = 'sync'; this.img.className = 'ImageStackPopupImg'; // width/height set later. var $img = $( this.img ); $img.on('mousewheel', function(event, delta) { // Scroll is too fast (Esp. on chrome), so we buffer scroll events. that.pendingScrollDelta += delta; var realDelta = Math.floor(that.pendingScrollDelta/SCROLL_SLOWDOWN); if (delta !== 0) { // We reverse the direction of scroll. that.currentImage -= realDelta > 2 ? 2 : realDelta; that.pendingScrollDelta -= realDelta*SCROLL_SLOWDOWN; that.repaint(); } return false; }); $img.on('mousedown', function(event) { // prepare scroll by drag mouse_y = event.screenY; // remember mouse-position that.scrollobject = true; // set flag return false; }); $img.on('mousemove', function(event) { if (that.scrollobject && Math.abs(mouse_y - event.screenY) > 10) { var offset = (mouse_y < event.screenY) ? 1 : -1; mouse_y = event.screenY; // remember mouse-position for next event that.currentImage += offset; that.repaint(); } return false; }); this.img.addEventListener( 'load', this.urlLoaded.bind( this ), { once: true } ); this.img.addEventListener( 'error', this.urlLoaded.bind( this ), { once: true } ); var $container = $( '<div class="ImageStackPopupImgContainer"></div>' ) .append( $counter ) .append( this.$slider ) .append( $img ); this.$viewer.append( $container ); this.$credit = $( '<a></a>' ); this.$credit.text( mw.msg( 'ImageStackPopupFrameImageCredit' ) ); var $creditDiv = $( '<div class="ImageStackPopupCredit"></div>' ).append( this.$credit ); this.$viewer.append( $creditDiv ); var $wrapper = false; if ( this.captionId ) { var captionElm = document.getElementById( this.captionId ); if ( captionElm ) { var newCaption = $( captionElm ).clone(); newCaption.show(); $wrapper = $( '<div class="ImageStackPopup-caption"></div>' ).append( newCaption ); this.$viewer.append( $wrapper ); } } // Try to adjust image size to viewer window // but do not go so far that the image is blurry if ( !this.width ) { var controlHeight = $creditDiv[0].clientHeight; var paddingDivStyles = getComputedStyle( this.$viewer[0].parentElement.parentElement ); controlHeight += parseFloat( paddingDivStyles.getPropertyValue( 'padding-top' ) ) + parseFloat( paddingDivStyles.getPropertyValue( 'padding-bottom' ) ); containingWidth -= parseFloat( paddingDivStyles.getPropertyValue( 'padding-left' ) ) + parseFloat( paddingDivStyles.getPropertyValue( 'padding-right' ) ); if ( $wrapper ) { controlHeight += $wrapper[0].clientHeight; } controlHeight += 5; // fudge factor. if ( this.$viewer[0].parentElement.previousElementSibling ) { // OOUI window label. This is a bit hacky. controlHeight += this.$viewer[0].parentElement.previousElementSibling.clientHeight; } var maxImgDim = this.getMaxImgDim(); var aspect = maxImgDim[0]/maxImgDim[1]; containingHeight -= controlHeight; // 3 to account for slider and text controls. but not on narrow screens. if ( containingWidth >= 500 ) { containingWidth -= parseFloat( getComputedStyle( this.$slider[0] ).getPropertyValue( 'width' ) ) * 3; } if ( maxImgDim[0] > maxImgDim[1] ) { if ( maxImgDim[0] > containingWidth ) { // shrink to fit. maxImgDim[0] = containingWidth; maxImgDim[1] = Math.floor(containingWidth/aspect); } if ( maxImgDim[1] > containingHeight ) { maxImgDim[1] = containingHeight; maxImgDim[0] = Math.floor( containingHeight * aspect ); } } else { if ( maxImgDim[1] > containingHeight ) { maxImgDim[1] = containingHeight; maxImgDim[0] = Math.floor( containingHeight * aspect ); } if ( maxImgDim[0] > containingWidth ) { // shrink to fit. maxImgDim[0] = containingWidth; maxImgDim[1] = Math.floor(containingWidth/aspect); } } this.width = maxImgDim[0]; this.height = maxImgDim[1]; } this.img.width = this.width; this.img.height = this.height; // different font size in credit div, so don't use em. var sliderRoom; if ( containingWidth >= 500 ) { sliderRoom = parseFloat( getComputedStyle( this.$slider[0] ).getPropertyValue( 'width' ) ) * 3; } else { sliderRoom = 0; } $creditDiv.css( 'width', this.width + sliderRoom + 'px' ); $creditDiv.css( 'padding-right', sliderRoom + 'px' ); $container.css( 'width', 'calc( ' + this.width + 'px' + ' + 3em )' ); this.$slider.css( 'height', this.height + 'px' ); $counter.css( 'min-height', this.height + 'px' ); this.getUrls(); this.toggleImg(); this.preload(); }, getMaxImgDim: function () { // This assumes that even on high-DPI displays, enlarging to 96dpi is ok. var w = this.imgs[0].width; var h = this.imgs[0].height; if ( this.imgs[0].srcset.match( /\s2x\s*(,|$)/ ) ) { w *= 2; h *= 2; } else if ( this.imgs[0].srcset.match( /\s1.5x\s*(,|$)/ ) ) { w = Math.floor( 1.5*w ); h = Math.floor( 1.5*h ); } return [w,h]; }, repaint: function () { if ( this.pendingFrame ) { return; } requestAnimationFrame( this.toggleImg.bind( this ) ); }, toggleImg: function () { if ( this.loop ) { if ( this.currentImage < 0 ) { this.currentImage = this.urls.length - 1; } else if ( this.currentImage >= this.urls.length ) { this.currentImage = 0; } } else { this.$rightLink.css( 'visibility', 'visible' ); this.$leftLink.css( 'visibility', 'visible' ); if ( this.currentImage <= 0 ) { this.currentImage = 0; this.$leftLink.css( 'visibility', 'hidden' ); } else if ( this.currentImage >= this.urls.length - 1 ) { this.currentImage = this.urls.length - 1; this.$rightLink.css( 'visibility', 'hidden' ); } } this.$slider[0].value = this.currentImage; // Future todo might be to localize digits. this.$currentCount[0].textContent = this.currentImage + 1; this.img.src = this.urls[this.currentImage]; this.$credit[0].href = this.infoUrls[this.currentImage]; if ( this.infoUrls[this.currentImage] === false ) { this.$credit.css( 'visibility', 'hidden' ); } else { this.$credit.css( 'visibility', 'visible' ); } this.pendingFrame = false; }, preload: function () { for ( var i = 0; i < this.urls.length; i++ ) { if ( i === this.currentImage ) { // already fetched. continue; } var img = new Image(); if ( Math.abs( this.currentImage - i ) > 4 ) { img.fetchPriority = 'low'; } img.loading = 'eager'; img.decoding = 'sync'; img.addEventListener( 'load', this.urlLoaded.bind( this ), { once: true } ); img.addEventListener( 'error', this.urlLoaded.bind( this ), { once: true} ); img.src = this.urls[i]; } }, getUrls: function () { this.urls = []; this.infoUrls = []; for( var i = 0; i < this.imgs.length; i++ ) { this.urls[i] = ImageStackPopup.getSource( this.imgs[i], this.width, this.height ); if ( this.imgs[i].parentElement.href ) { this.infoUrls[i] = this.imgs[i].parentElement.href; } else { this.infoUrls[i] = false; } } }, urlLoaded: function () { // For now, this still increments for failed loads, so // as not to have the progress bar stuck. this.urlsLoaded++; var progress = Math.floor( ( this.urlsLoaded / this.urls.length ) * 100 ); if ( this.$loading.length ) { this.$loading.text( mw.msg( 'ImageStackPopupLoading', progress ) ); if ( this.urlsLoaded === this.urls.length ) { this.$viewer.removeClass( 'ImageStackPopup-loading' ); this.$loading.remove(); } } }, handleArrow: function (e) { // Not sure if we should prevent default here // possible accessibility issue if there is somehow something scrollable. // in theory, nothing here should be scrollable so it shouldn't matter. if ( ( e.key === 'ArrowUp' || e.key === 'ArrowDown' || e.key === 'ArrowRight' || e.key === 'ArrowLeft' ) && e.target.tagName !== 'INPUT' && this.$viewer.find(e) ) { if ( e.key === 'ArrowUp' || e.key === 'ArrowRight' ) { this.currentImage--; this.repaint(); } else if ( e.key === 'ArrowDown' || e.key === 'ArrowLeft' ) { this.currentImage++; this.repaint(); } } }, handleTouchStart: function (e) { for ( var i = 0; i < e.changedTouches.length; i++ ) { var t = e.changedTouches[i]; this.pendingTouches[t.identifier] = [t.clientX, t.clientY]; } }, handleTouchCancel: function (e) { for ( var i = 0; i < e.changedTouches.length; i++ ) { var t = e.changedTouches[i]; delete this.pendingTouches[t.identifier]; } }, handleTouchMove: function (e) { for ( var i = 0; i < e.changedTouches.length; i++ ) { var t = e.changedTouches[i]; if ( !this.pendingTouches[t.identifier] ) { continue; } var startX = this.pendingTouches[t.identifier][0]; var startY = this.pendingTouches[t.identifier][1]; var angle = Math.abs( Math.atan( ( startY - t.clientY ) / ( startX - t.clientX ) ) ); if ( angle > 1 ) { // vertical. > ~60 degrees if ( Math.abs( startY - t.clientY ) < 15 ) { // Not large enough continue; } // reset calculation so we move image if they move 15 more pixels this.pendingTouches[t.identifier] = [t.clientX, t.clientY]; if ( startY - t.clientY > 0 ) { // swipe up this.currentImage--; this.repaint(); } else { // swipe down this.currentImage++; this.repaint(); } } } }, handleTouchEnd: function (e) { for ( var i = 0; i < e.changedTouches.length; i++ ) { var t = e.changedTouches[i]; if ( !this.pendingTouches[t.identifier] ) { continue; } var startX = this.pendingTouches[t.identifier][0]; var startY = this.pendingTouches[t.identifier][1]; var angle = Math.abs( Math.atan( ( startY - t.clientY ) / ( startX - t.clientX ) ) ); if ( angle < 0.7 ) { // horizontal swipe. < 40 degrees if ( Math.abs( startX - t.clientX ) < 30 ) { // Not large enough continue; } if ( startX - t.clientX < 0 ) { // swipe right this.currentImage--; this.repaint(); } else { // swipe left this.currentImage++; this.repaint(); } } if ( angle > 1 ) { // vertical swipe. > ~60 degrees if ( Math.abs( startY - t.clientY ) < 30 ) { // Not large enough continue; } if ( startY - t.clientY > 0 ) { // swipe up this.currentImage--; this.repaint(); } else { // swipe down this.currentImage++; this.repaint(); } } delete this.pendingTouches[t.identifier]; } }, }; // Include jquery.mousewheel dependency. // -------- /*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh) * Licensed under the MIT License (LICENSE.txt). * * Version: 3.1.11 * * Requires: jQuery 1.2.2+ */ (function (factory) { if ( typeof define === 'function' && define.amd ) { // AMD. Register as an anonymous module. define(['jquery'], factory); } else if (typeof exports === 'object') { // Node/CommonJS style for Browserify module.exports = factory; } else { // Browser globals factory(jQuery); } }(function ($) { var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'], toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], slice = Array.prototype.slice, nullLowestDeltaTimeout, lowestDelta; if ( $.event.fixHooks ) { for ( var i = toFix.length; i; ) { $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; } } var special = $.event.special.mousewheel = { version: '3.1.11', setup: function() { if ( this.addEventListener ) { for ( var i = toBind.length; i; ) { this.addEventListener( toBind[--i], handler, false ); } } else { this.onmousewheel = handler; } // Store the line height and page height for this particular element $.data(this, 'mousewheel-line-height', special.getLineHeight(this)); $.data(this, 'mousewheel-page-height', special.getPageHeight(this)); }, teardown: function() { if ( this.removeEventListener ) { for ( var i = toBind.length; i; ) { this.removeEventListener( toBind[--i], handler, false ); } } else { this.onmousewheel = null; } // Clean up the data we added to the element $.removeData(this, 'mousewheel-line-height'); $.removeData(this, 'mousewheel-page-height'); }, getLineHeight: function(elem) { var $parent = $(elem)['offsetParent' in $.fn ? 'offsetParent' : 'parent'](); if (!$parent.length) { $parent = $('body'); } return parseInt($parent.css('fontSize'), 10); }, getPageHeight: function(elem) { return $(elem).height(); }, settings: { adjustOldDeltas: true, // see shouldAdjustOldDeltas() below normalizeOffset: true // calls getBoundingClientRect for each event } }; $.fn.extend({ mousewheel: function(fn) { return fn ? this.on('mousewheel', fn) : this.trigger('mousewheel'); }, unmousewheel: function(fn) { return this.off('mousewheel', fn); } }); function handler(event) { var orgEvent = event || window.event, args = slice.call(arguments, 1), delta = 0, deltaX = 0, deltaY = 0, absDelta = 0, offsetX = 0, offsetY = 0; event = $.event.fix(orgEvent); event.type = 'mousewheel'; // Old school scrollwheel delta if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; } if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; } if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; } if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; } // Firefox < 17 horizontal scrolling related to DOMMouseScroll event if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { deltaX = deltaY * -1; deltaY = 0; } // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy delta = deltaY === 0 ? deltaX : deltaY; // New school wheel delta (wheel event) if ( 'deltaY' in orgEvent ) { deltaY = orgEvent.deltaY * -1; delta = deltaY; } if ( 'deltaX' in orgEvent ) { deltaX = orgEvent.deltaX; if ( deltaY === 0 ) { delta = deltaX * -1; } } // No change actually happened, no reason to go any further if ( deltaY === 0 && deltaX === 0 ) { return; } // Need to convert lines and pages to pixels if we aren't already in pixels // There are three delta modes: // * deltaMode 0 is by pixels, nothing to do // * deltaMode 1 is by lines // * deltaMode 2 is by pages if ( orgEvent.deltaMode === 1 ) { var lineHeight = $.data(this, 'mousewheel-line-height'); delta *= lineHeight; deltaY *= lineHeight; deltaX *= lineHeight; } else if ( orgEvent.deltaMode === 2 ) { var pageHeight = $.data(this, 'mousewheel-page-height'); delta *= pageHeight; deltaY *= pageHeight; deltaX *= pageHeight; } // Store lowest absolute delta to normalize the delta values absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) ); if ( !lowestDelta || absDelta < lowestDelta ) { lowestDelta = absDelta; // Adjust older deltas if necessary if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { lowestDelta /= 40; } } // Adjust older deltas if necessary if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { // Divide all the things by 40! delta /= 40; deltaX /= 40; deltaY /= 40; } // Get a whole, normalized value for the deltas delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta); deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta); deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta); // Normalise offsetX and offsetY properties if ( special.settings.normalizeOffset && this.getBoundingClientRect ) { var boundingRect = this.getBoundingClientRect(); offsetX = event.clientX - boundingRect.left; offsetY = event.clientY - boundingRect.top; } // Add information to the event object event.deltaX = deltaX; event.deltaY = deltaY; event.deltaFactor = lowestDelta; event.offsetX = offsetX; event.offsetY = offsetY; // Go ahead and set deltaMode to 0 since we converted to pixels // Although this is a little odd since we overwrite the deltaX/Y // properties with normalized deltas. event.deltaMode = 0; // Add event and delta to the front of the arguments args.unshift(event, delta, deltaX, deltaY); // Clearout lowestDelta after sometime to better // handle multiple device types that give different // a different lowestDelta // Ex: trackpad = 3 and mouse wheel = 120 if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); } nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200); return ($.event.dispatch || $.event.handle).apply(this, args); } function nullLowestDelta() { lowestDelta = null; } function shouldAdjustOldDeltas(orgEvent, absDelta) { // If this is an older event and the delta is divisable by 120, // then we are assuming that the browser is treating this as an // older mouse wheel event and that we should divide the deltas // by 40 to try and get a more usable deltaFactor. // Side note, this actually impacts the reported scroll distance // in older browsers and can cause scrolling to be slower than native. // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false. return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0; } })); // --- Start image stack popup $( ImageStackPopup.init ); cikr21q0ghiymynrca96q2977wxgnaq میٖڈیاوِکی:Gadget-ImageStackPopup.css 8 32764 151868 2024-07-07T17:47:34Z en>Pppery 0 Sigh bot misfeatures 151868 css text/css /******************************************************************************/ /**** THIS PAGE TRACKS [[mw:MediaWiki:Gadget-Global-ImageStackPopup.css]]. PLEASE AVOID EDITING DIRECTLY. /**** EDITS SHOULD BE PROPOSED DIRECTLY to [[mw:MediaWiki:Gadget-Global-ImageStackPopup.css]]. /**** A BOT WILL RAISE AN EDIT REQUEST IF IT BECOMES DIFFERENT FROM UPSTREAM. /******************************************************************************/ @media print { html .ImageStackPopup-play, #ImageStackPopupLoading { display: none } } .ImageStackPopup-viewer { text-align: center; } .ImageStackPopup-caption { margin-top: 0.2em; } .ImageStackPopup-play { font-size: 300%; background-color: rgba( 128, 128, 128, 0.9); color: white; border-radius: 50%; cursor: pointer; text-align: center; user-select: none; position: absolute; top: 20px; right: 20px; width: 70px; height: 70px; display: inline-block; line-height: 1.5; border: 0; padding: 0; font-family: "Segoe UI", "Segoe UI Emoji", "Segoe UI Symbol", "Lato", "Liberation Sans", "Noto Sans", "Helvetica Neue", "Helvetica", sans-serif; } .ImageStackPopup-play:hover { background-color: rgba( 169, 169, 169, 0.9 ); color: black; } .ImageStackPopup-play:active { color: red; } .ImageStackPopup-loading { cursor: wait; } .ImageStackPopupCredit { text-align: right; font-size: small; margin: auto; box-sizing: border-box; } .ImageStackPopupSlider { /* browser support is inconsistent here. we want top to bottom. Standard way is direction: ltr but firefox and not latest but very recent chrome does not support that. so do other direction and rotate it. Hopefully at some point we can change this. */ writing-mode: vertical-lr; direction: rtl; appearance: slider-vertical; /* back compat */ width: 1em; float: right; transform: rotate(180deg); /* in theory direction is supposed to control this, but it didn't work for me */ } .ImageStackPopupImgContainer { text-align: left; margin: auto } #ImageStackPopupLoading { position: fixed; padding-top: 0.25em; padding-bottom: 0.25em; padding-left: 1em; padding-right: 1em; bottom: 1em; right: 1em; background-color: #fda; border: thin black solid; z-index: 10000; } .ImageStackPopupDialog .ImageStackCounter { writing-mode: vertical-lr; display: flex; justify-content: center; float: right; } html .ImageStackPopupDialog .oo-ui-window-body, html .ImageStackPopupDialog label { background-color: black; color-scheme: dark; /* especially important for range sliders on safari desktop */ color: #ddd; } html .ImageStackPopupDialog .oo-ui-messageDialog-content > .oo-ui-window-foot { outline: none; } .ImageStackPopupDialog .oo-ui-messageDialog-text { box-sizing: border-box; height: 100%; display: flex; flex-direction: column; justify-content: center; } @media (max-width: 500px) { .ImageStackPopupCounterHideMobile { display: none } .ImageStackPopupImgContainer { position: relative } .ImageStackPopupDialog .ImageStackCounter { display: block; writing-mode: horizontal-tb; position: absolute; left: 3px; bottom: -1.5em; font-size: smaller; float: none; min-height: 0 !important; } .ImageStackPopupSlider { position: absolute; left: 3px; opacity: 0.5; width: 5px; } .ImageStackPopupSlider:hover, .ImageStackPopupSlider:active { opacity: 0.9; } .ImageStackPopupDialog .oo-ui-messageDialog-text { padding: 1px; } .ImageStackPopupDialog .oo-ui-messageDialog-message { margin-top: auto; margin-bottom: auto; } .ImageStackPopupImgContainer { width: fit-content !important; } } snz0ici6h9brh9nmt748y2p0q9y6i07 151869 151868 2026-09-21T14:24:10Z 511KeV 8268 1 revision imported from [[:en:MediaWiki:Gadget-ImageStackPopup.css]]: Needed locally 151868 css text/css /******************************************************************************/ /**** THIS PAGE TRACKS [[mw:MediaWiki:Gadget-Global-ImageStackPopup.css]]. PLEASE AVOID EDITING DIRECTLY. /**** EDITS SHOULD BE PROPOSED DIRECTLY to [[mw:MediaWiki:Gadget-Global-ImageStackPopup.css]]. /**** A BOT WILL RAISE AN EDIT REQUEST IF IT BECOMES DIFFERENT FROM UPSTREAM. /******************************************************************************/ @media print { html .ImageStackPopup-play, #ImageStackPopupLoading { display: none } } .ImageStackPopup-viewer { text-align: center; } .ImageStackPopup-caption { margin-top: 0.2em; } .ImageStackPopup-play { font-size: 300%; background-color: rgba( 128, 128, 128, 0.9); color: white; border-radius: 50%; cursor: pointer; text-align: center; user-select: none; position: absolute; top: 20px; right: 20px; width: 70px; height: 70px; display: inline-block; line-height: 1.5; border: 0; padding: 0; font-family: "Segoe UI", "Segoe UI Emoji", "Segoe UI Symbol", "Lato", "Liberation Sans", "Noto Sans", "Helvetica Neue", "Helvetica", sans-serif; } .ImageStackPopup-play:hover { background-color: rgba( 169, 169, 169, 0.9 ); color: black; } .ImageStackPopup-play:active { color: red; } .ImageStackPopup-loading { cursor: wait; } .ImageStackPopupCredit { text-align: right; font-size: small; margin: auto; box-sizing: border-box; } .ImageStackPopupSlider { /* browser support is inconsistent here. we want top to bottom. Standard way is direction: ltr but firefox and not latest but very recent chrome does not support that. so do other direction and rotate it. Hopefully at some point we can change this. */ writing-mode: vertical-lr; direction: rtl; appearance: slider-vertical; /* back compat */ width: 1em; float: right; transform: rotate(180deg); /* in theory direction is supposed to control this, but it didn't work for me */ } .ImageStackPopupImgContainer { text-align: left; margin: auto } #ImageStackPopupLoading { position: fixed; padding-top: 0.25em; padding-bottom: 0.25em; padding-left: 1em; padding-right: 1em; bottom: 1em; right: 1em; background-color: #fda; border: thin black solid; z-index: 10000; } .ImageStackPopupDialog .ImageStackCounter { writing-mode: vertical-lr; display: flex; justify-content: center; float: right; } html .ImageStackPopupDialog .oo-ui-window-body, html .ImageStackPopupDialog label { background-color: black; color-scheme: dark; /* especially important for range sliders on safari desktop */ color: #ddd; } html .ImageStackPopupDialog .oo-ui-messageDialog-content > .oo-ui-window-foot { outline: none; } .ImageStackPopupDialog .oo-ui-messageDialog-text { box-sizing: border-box; height: 100%; display: flex; flex-direction: column; justify-content: center; } @media (max-width: 500px) { .ImageStackPopupCounterHideMobile { display: none } .ImageStackPopupImgContainer { position: relative } .ImageStackPopupDialog .ImageStackCounter { display: block; writing-mode: horizontal-tb; position: absolute; left: 3px; bottom: -1.5em; font-size: smaller; float: none; min-height: 0 !important; } .ImageStackPopupSlider { position: absolute; left: 3px; opacity: 0.5; width: 5px; } .ImageStackPopupSlider:hover, .ImageStackPopupSlider:active { opacity: 0.9; } .ImageStackPopupDialog .oo-ui-messageDialog-text { padding: 1px; } .ImageStackPopupDialog .oo-ui-messageDialog-message { margin-top: auto; margin-bottom: auto; } .ImageStackPopupImgContainer { width: fit-content !important; } } snz0ici6h9brh9nmt748y2p0q9y6i07 رُکُن:511KeV/Appendicitis CT 2 32765 151872 2026-09-21T14:33:50Z 511KeV 8268 /* */ 151872 wikitext text/x-wiki <gallery id="medical" widths=640 heights=640> File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 248).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 247).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 246).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 245).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 244).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 243).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 242).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 241).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 240).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 239).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 238).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 237).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 236).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 235).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 234).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 233).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 232).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 231).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 230).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 229).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 228).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 227).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 226).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 225).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 224).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 223).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 222).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 221).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 220).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 219).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 218).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 217).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 216).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 215).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 214).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 213).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 212).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 211).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 210).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 209).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 208).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 207).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 206).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 205).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 204).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 203).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 202).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 201).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 200).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 199).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 198).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 197).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 196).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 195).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 194).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 193).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 192).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 191).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 190).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 189).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 188).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 187).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 186).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 185).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 184).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 183).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 182).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 181).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 180).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 179).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 178).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 177).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 176).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 175).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 174).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 173).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 172).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 171).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 170).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 169).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 168).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 167).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 166).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 165).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 164).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 163).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 162).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 161).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 160).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 159).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 158).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 157).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 156).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 155).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 154).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 153).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 152).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 151).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 150).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 149).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 148).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 147).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 146).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 145).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 144).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 143).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 141).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 139).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 137).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 135).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 133).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 131).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 129).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 127).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 125).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 123).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 121).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 119).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 117).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 115).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 113).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 111).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 109).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 107).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 105).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 103).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 101).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 99).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 97).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 95).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 93).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 91).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 89).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 87).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 85).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 83).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 81).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 79).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 77).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 75).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 73).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 71).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 69).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 67).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 65).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 63).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 61).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 59).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 57).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 55).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 53).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 51).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 49).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 47).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 45).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 43).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 41).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 39).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 37).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 35).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 33).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 31).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 29).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 27).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 25).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 23).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 21).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 19).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 17).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 15).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 13).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 11).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 9).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 7).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 5).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 3).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 1).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 2).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 4).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 6).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 8).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 10).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 12).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 14).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 16).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 18).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 20).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 22).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 24).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 26).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 28).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 30).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 32).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 34).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 36).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 38).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 40).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 42).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 44).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 46).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 48).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 50).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 52).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 54).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 56).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 58).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 60).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 62).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 64).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 66).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 68).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 70).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 72).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 74).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 76).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 78).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 80).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 82).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 84).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 86).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 88).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 90).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 92).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 94).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 96).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 98).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 100).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 102).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 104).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 106).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 108).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 110).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 112).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 114).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 116).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 118).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 120).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 122).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 124).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 126).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 128).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 130).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 132).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 134).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 136).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 138).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 140).jpg File:Appendicitis (CT angiogram) (Radiopaedia 154713-127660 Axial 142).jpg </gallery> csc7ge4pc4h8roxsfywaaxw0sgu0f2s Module:ImageStackPopup/دَستاویز 828 32766 151879 2026-09-21T16:05:55Z 511KeV 8268 Created page with "{{Documentation subpage}} {{Lua|Module:ImageStackPopup}} == Usage == This template requires the [[MediaWiki:Gadget-ImageStackPopup.js|ImageStackPopup gadget]]. Used to generate an image with a play button. When you click it, it shows a popup with images in a slider viewer, suitable for looking at series of medical data. The <code>list</code> parameter references a page with a fragment. E.g. Template:ImageStackPopup/list#medical, will use the image list with the id "med..." 151879 wikitext text/x-wiki {{Documentation subpage}} {{Lua|Module:ImageStackPopup}} == Usage == This template requires the [[MediaWiki:Gadget-ImageStackPopup.js|ImageStackPopup gadget]]. Used to generate an image with a play button. When you click it, it shows a popup with images in a slider viewer, suitable for looking at series of medical data. The <code>list</code> parameter references a page with a fragment. E.g. Template:ImageStackPopup/list#medical, will use the image list with the id "medical" from the page [[Template:ImageStackPopup/list]] as the list of images. Keep in mind that all images should have the same size (and especially same aspect ratio). Generally the list page would have code like <code><nowiki><gallery widths=700 height=700 id="medical">File:first.png...</gallery></nowiki></code> on it. e.g. <syntaxhighlight lang="wikitext"> {{ImageStackPopup |start = 3 |list = Template:ImageStackPopup/list#medical |caption = This is my caption |title = Window Title |file = [[File:Example.png|link=|thumb|Try clicking play]] }} </syntaxhighlight> {{ImageStackPopup |start = 3 |list = Template:ImageStackPopup/list#medical |caption = This is my caption |title = Window Title |file = [[File:Example.png|link=|thumb|none|Try clicking play]] }} <templatedata> { "params": { "loop": { "description": "Should slider loop around. Set either \"yes\" or have no value", "example": "yes", "type": "boolean" }, "start": { "description": "Which image to start on", "example": "4", "type": "number", "default": "1", "autovalue": "1", "suggested": true }, "width": { "description": "Override image width from list page", "type": "number" }, "height": { "description": "Override height from list page", "type": "number" }, "list": { "label": "Image list page", "description": "A page name and fragment to load the image list from. For example, if you put MyPage#myGallery, then it is assumed there is a <gallery id=\"myGallery\">...</gallery> on the page MyPage which is used as the list of images", "example": "MyPage#myGallery", "type": "string", "required": true }, "noregisterimages": { "description": "Disable translcuding the list page. This will cause this page not to be listed on the what links here for the images used.", "type": "boolean" }, "caption": { "description": "Caption to show in the pop-up below the image. Can include any wikitext.", "type": "content", "suggested": true }, "title": { "label": "Popup title", "description": "Title of popup. Can only be plain text. Wikitext not supported.", "type": "string", "suggested": true }, "file": { "description": "The wikitext to include the image shown on the page", "example": "[[File:Example.png|thumb|100px|caption text]]", "type": "content", "required": true, "suggested": true } }, "description": "Show an image with a play button that pops up a dialog showing more images in a viewer with a slider that is suitable for medical scans.", "format": "block" } </templatedata> ==See also== * [[MediaWiki:Gadget-ImageStackPopup.js]] * [[Module:ImageStackPopup]] <includeonly>{{Sandbox other|| <!-- Categories below this line --> [[Category:Image formatting and function templates]] [[Category:Interactivity templates]] }}</includeonly> s83efjtezew58836wybr198o6u7bh46 Module:ImageStackPopup/doc 828 32767 151891 2026-03-02T10:49:34Z en>Gonnym 0 -deleted 151891 wikitext text/x-wiki Create an image that has a play button which popups a viewer showing a slideshow of some other images. Intended for use in viewing a series of medical images. See {{tl|ImageStackPopup}} for more details. This Module is a template gadget that requires the [[Special:Gadgets#gadget-ImageStackPopup|ImageStackPopup gadget]] to work.<noinclude> [[Category:Module documentation pages]] </noinclude> gfpcit5cts8kay8yqwwgniik5yikkih 151892 151891 2026-09-21T16:17:44Z 511KeV 8268 1 revision imported from [[:en:Module:ImageStackPopup/doc]]: Needed Locally 151891 wikitext text/x-wiki Create an image that has a play button which popups a viewer showing a slideshow of some other images. Intended for use in viewing a series of medical images. See {{tl|ImageStackPopup}} for more details. This Module is a template gadget that requires the [[Special:Gadgets#gadget-ImageStackPopup|ImageStackPopup gadget]] to work.<noinclude> [[Category:Module documentation pages]] </noinclude> gfpcit5cts8kay8yqwwgniik5yikkih فرما:ImageStackPopup/doc 10 32768 151917 2026-07-31T22:37:14Z en>Rhododendrites 0 151917 wikitext text/x-wiki {{Documentation subpage}} {{Lua|Module:ImageStackPopup}} == Usage == This template requires the [[MediaWiki:Gadget-ImageStackPopup.js|ImageStackPopup gadget]]. Used to generate an image with a play button. When you click it, it shows a popup with images in a slider viewer, suitable for looking at series of medical data. The <code>list</code> parameter references a page with a fragment. E.g. Template:ImageStackPopup/list#medical, will use the image list with the id "medical" from the page [[Template:ImageStackPopup/list]] as the list of images. Keep in mind that all images should have the same size (and especially same aspect ratio). Generally the list page would have code like <code><nowiki><gallery widths=700 height=700 id="medical">File:first.png...</gallery></nowiki></code> on it. e.g. <syntaxhighlight lang="wikitext"> {{ImageStackPopup |start = 3 |list = Template:ImageStackPopup/list#medical |caption = This is my caption |title = Window Title |file = [[File:Example.png|link=|thumb|Try clicking play]] }} </syntaxhighlight> {{ImageStackPopup |start = 3 |list = Template:ImageStackPopup/list#medical |caption = This is my caption |title = Window Title |file = [[File:Example.png|link=|thumb|none|Try clicking play]] }} <templatedata> { "params": { "loop": { "description": "Should slider loop around. Set either \"yes\" or have no value", "example": "yes", "type": "boolean" }, "start": { "description": "Which image to start on", "example": "4", "type": "number", "default": "1", "autovalue": "1", "suggested": true }, "width": { "description": "Override image width from list page", "type": "number" }, "height": { "description": "Override height from list page", "type": "number" }, "list": { "label": "Image list page", "description": "A page name and fragment to load the image list from. For example, if you put MyPage#myGallery, then it is assumed there is a <gallery id=\"myGallery\">...</gallery> on the page MyPage which is used as the list of images", "example": "MyPage#myGallery", "type": "string", "required": true }, "noregisterimages": { "description": "Disable translcuding the list page. This will cause this page not to be listed on the what links here for the images used.", "type": "boolean" }, "caption": { "description": "Caption to show in the pop-up below the image. Can include any wikitext.", "type": "content", "suggested": true }, "title": { "label": "Popup title", "description": "Title of popup. Can only be plain text. Wikitext not supported.", "type": "string", "suggested": true }, "file": { "description": "The wikitext to include the image shown on the page", "example": "[[File:Example.png|thumb|100px|caption text]]", "type": "content", "required": true, "suggested": true } }, "description": "Show an image with a play button that pops up a dialog showing more images in a viewer with a slider that is suitable for medical scans.", "format": "block" } </templatedata> ==See also== * [[MediaWiki:Gadget-ImageStackPopup.js]] * [[Module:ImageStackPopup]] <includeonly>{{Sandbox other|| <!-- Categories below this line --> [[Category:Image formatting and function templates]] [[Category:Interactivity templates]] }}</includeonly> s83efjtezew58836wybr198o6u7bh46 151918 151917 2026-09-21T16:34:13Z 511KeV 8268 1 revision imported from [[:en:Template:ImageStackPopup/doc]] 151917 wikitext text/x-wiki {{Documentation subpage}} {{Lua|Module:ImageStackPopup}} == Usage == This template requires the [[MediaWiki:Gadget-ImageStackPopup.js|ImageStackPopup gadget]]. Used to generate an image with a play button. When you click it, it shows a popup with images in a slider viewer, suitable for looking at series of medical data. The <code>list</code> parameter references a page with a fragment. E.g. Template:ImageStackPopup/list#medical, will use the image list with the id "medical" from the page [[Template:ImageStackPopup/list]] as the list of images. Keep in mind that all images should have the same size (and especially same aspect ratio). Generally the list page would have code like <code><nowiki><gallery widths=700 height=700 id="medical">File:first.png...</gallery></nowiki></code> on it. e.g. <syntaxhighlight lang="wikitext"> {{ImageStackPopup |start = 3 |list = Template:ImageStackPopup/list#medical |caption = This is my caption |title = Window Title |file = [[File:Example.png|link=|thumb|Try clicking play]] }} </syntaxhighlight> {{ImageStackPopup |start = 3 |list = Template:ImageStackPopup/list#medical |caption = This is my caption |title = Window Title |file = [[File:Example.png|link=|thumb|none|Try clicking play]] }} <templatedata> { "params": { "loop": { "description": "Should slider loop around. Set either \"yes\" or have no value", "example": "yes", "type": "boolean" }, "start": { "description": "Which image to start on", "example": "4", "type": "number", "default": "1", "autovalue": "1", "suggested": true }, "width": { "description": "Override image width from list page", "type": "number" }, "height": { "description": "Override height from list page", "type": "number" }, "list": { "label": "Image list page", "description": "A page name and fragment to load the image list from. For example, if you put MyPage#myGallery, then it is assumed there is a <gallery id=\"myGallery\">...</gallery> on the page MyPage which is used as the list of images", "example": "MyPage#myGallery", "type": "string", "required": true }, "noregisterimages": { "description": "Disable translcuding the list page. This will cause this page not to be listed on the what links here for the images used.", "type": "boolean" }, "caption": { "description": "Caption to show in the pop-up below the image. Can include any wikitext.", "type": "content", "suggested": true }, "title": { "label": "Popup title", "description": "Title of popup. Can only be plain text. Wikitext not supported.", "type": "string", "suggested": true }, "file": { "description": "The wikitext to include the image shown on the page", "example": "[[File:Example.png|thumb|100px|caption text]]", "type": "content", "required": true, "suggested": true } }, "description": "Show an image with a play button that pops up a dialog showing more images in a viewer with a slider that is suitable for medical scans.", "format": "block" } </templatedata> ==See also== * [[MediaWiki:Gadget-ImageStackPopup.js]] * [[Module:ImageStackPopup]] <includeonly>{{Sandbox other|| <!-- Categories below this line --> [[Category:Image formatting and function templates]] [[Category:Interactivity templates]] }}</includeonly> s83efjtezew58836wybr198o6u7bh46 لازاروس ژامِس 0 32769 151927 2026-09-22T06:37:51Z آیات محراج 11062 "[[:en:Special:Redirect/revision/1372427030|Lazaros Tsamis]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت 151927 wikitext text/x-wiki [[File:Lazaros_Tsamis.jpg|right|thumb|لازاروس ژامِس ]] '''لازاروس''' یا '''لازوس''' '''ژامِس''' (یونانی: Λάζαρος Τσάμης؛ 1878 پیسوڈیری ، فلورینا منٛز - 22 نومبر 1933) اوس اکھ آرومینی تاجر یمو مقدونیائی جدوجہدس منٛز حصہٕ نیٛو تہٕ پتہٕ کرن شمالی ایپیروس کس جدوجہدس منٛز یونانچ قیادت کرنہٕ خٲطرٕ رضاکارانہٕ۔ sb38qso78tmlshuxpnvf3vim8ct56r4 151928 151927 2026-09-22T06:40:21Z آیات محراج 11062 /* */ 151928 wikitext text/x-wiki {{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No}}[[File:Lazaros_Tsamis.jpg|right|thumb|لازاروس ژامِس ]] '''لازاروس''' یا '''لازوس''' '''ژامِس''' (یونانی: Λάζαρος Τσάμης؛ 1878 پیسوڈیری ، فلورینا منٛز - 22 نومبر 1933) اوس اکھ آرومینی تاجر یمو مقدونیائی جدوجہدس منٛز حصہٕ نیٛو تہٕ پتہٕ کرن شمالی ایپیروس کس جدوجہدس منٛز یونانچ قیادت کرنہٕ خٲطرٕ رضاکارانہٕ۔<ref>https://en.wikipedia.org/wiki/Lazaros_Tsamis</ref> grhgtl0eg59g0b6mf86hoaurqv8dj7b 151929 151928 2026-09-22T06:41:24Z آیات محراج 11062 +[[زٲژ:یوٗنٲنؠ لوٗکھ]]; +[[زٲژ:1878 پٲدٲیِش]]; +[[زٲژ:1933 وَفات]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ 151929 wikitext text/x-wiki {{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No}}[[File:Lazaros_Tsamis.jpg|right|thumb|لازاروس ژامِس ]] '''لازاروس''' یا '''لازوس''' '''ژامِس''' (یونانی: Λάζαρος Τσάμης؛ 1878 پیسوڈیری ، فلورینا منٛز - 22 نومبر 1933) اوس اکھ آرومینی تاجر یمو مقدونیائی جدوجہدس منٛز حصہٕ نیٛو تہٕ پتہٕ کرن شمالی ایپیروس کس جدوجہدس منٛز یونانچ قیادت کرنہٕ خٲطرٕ رضاکارانہٕ۔<ref>https://en.wikipedia.org/wiki/Lazaros_Tsamis</ref> == حَوالہٕ == [[زٲژ:یوٗنٲنؠ لوٗکھ]] [[زٲژ:1878 پٲدٲیِش]] [[زٲژ:1933 وَفات]] p1zydveiod5ja74a64l5nyslzz6omzs 151930 151929 2026-09-22T06:42:09Z آیات محراج 11062 /* */ 151930 wikitext text/x-wiki {{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No}}[[File:Lazaros_Tsamis.jpg|right|thumb|لازاروس ژامِس ]] '''لازاروس''' یا '''لازوس''' '''ژامِس''' ([[یونٲنی زَبان|یوٗنٲنؠ]]: Λάζαρος Τσάμης؛ 1878 پیسوڈیری ، فلورینا منٛز - 22 نومبر 1933) اوس اکھ آرومینی تاجر یمو مقدونیائی جدوجہدس منٛز حصہٕ نیٛو تہٕ پتہٕ کرن شمالی ایپیروس کس جدوجہدس منٛز یونانچ قیادت کرنہٕ خٲطرٕ رضاکارانہٕ۔<ref>https://en.wikipedia.org/wiki/Lazaros_Tsamis</ref> == حَوالہٕ == [[زٲژ:یوٗنٲنؠ لوٗکھ]] [[زٲژ:1878 پٲدٲیِش]] [[زٲژ:1933 وَفات]] dvjb7gf5knm9ujky46y8jg3721or7or چویِنی ژیرِنٛگ 0 32770 151932 2026-09-22T06:54:27Z آیات محراج 11062 "[[:en:Special:Redirect/revision/1372661239|Choenyi Tsering]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت 151932 wikitext text/x-wiki '''چویِنی ژیرِنٛگ''' ([[تِبتی زَبان|تِبتی]]: ཆོས་དབྱིངས་ཚེ་རིང་؛ [[چیٖنی زَبان|چیٖنی]]: 曲尼次仁؛ زامٕژ: 15 مئی 1986) چھ اکھ چینی اداکارہ تہٕ تبتی نسلٕچ گلوکار۔<ref>{{cite news|url=http://ent.163.com/photoview/00AJ0003/638454.html#p=CSCIVQ9N00AJ0003NOS|script-title=zh:曲尼次仁写真曝光 慵懒随性诠释撩人体质|newspaper=163|date=27 August 2017|language=zh}}</ref> چویِنی ژیرِنٛگ ٲس لَو یونٛگے فرٛام دی ڈیزرٹس (2013) منٛز شہزادی عالیہ تہٕ سُیی تہٕ تانٛگ خاندانن (2013) منٛز ہیروز منٛز چانٛگ لیہوا / چو گیور سٕنٛدیو کردارو خٲطرٕ مشہوٗر، تہٕ واریاہن فلمن منٛز تہٕ کٔرن اداکٲری، یمن منٛز زانین انسٹرومینٹ (1999) ، وومین ہو نو ہاؤ ٹو فلرٹ آر دی لکیسٹ (2013) ، چونٛگ کُیی: سنو گرل اینٛڈ دی ڈارک کرِٛسٹل (2014) ، تہٕ سول آن اے سٹرِنٛگ (2017) شٲمل چھِ۔ geyoipmi1m6rhak5ul48bk8s9lrwhf4 151933 151932 2026-09-22T06:57:12Z آیات محراج 11062 /* */ 151933 wikitext text/x-wiki '''چویِنی ژیرِنٛگ''' ([[تِبتی زَبان|تِبتی]]: ཆོས་དབྱིངས་ཚེ་རིང་؛ [[چیٖنی زَبان|چیٖنی]]: 曲尼次仁؛ زامٕژ: 15 مئی 1986) چھَ اکھ چینی اداکارہ تہٕ تبتی نسلٕچ گلوکار۔<ref>{{cite news|url=http://ent.163.com/photoview/00AJ0003/638454.html#p=CSCIVQ9N00AJ0003NOS|script-title=zh:曲尼次仁写真曝光 慵懒随性诠释撩人体质|newspaper=163|date=27 August 2017|language=zh}}</ref> چویِنی ژیرِنٛگ ٲس لَو یونٛگے فرٛام دی ڈیزرٹس (2013) منٛز شہزادی عالیہ تہٕ سُیی تہٕ تانٛگ خاندانن (2013) منٛز ہیروز منٛز چانٛگ لیہوا / چو گیور سٕنٛدیو کردارو خٲطرٕ مشہوٗر، تہٕ واریاہن فلمن منٛز تہٕ کٔرن اداکٲری، یمن منٛز زانین انسٹرومینٹ (1999) ، وومین ہو نو ہاؤ ٹو فلرٹ آر دی لکیسٹ (2013) ، چونٛگ کُیی: سنو گرل اینٛڈ دی ڈارک کرِٛسٹل (2014) ، تہٕ سول آن اے سٹرِنٛگ (2017) شٲمل چھِ۔ == فِلِم سٲزی == === فِلِم === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 1999 || ''Zhanian Instrument'' || {{lang|zh-Hans|《弹起我的扎年琴》}} || Gesang || |- | 2011 || ''Wuye Paimen'' || {{lang|zh-Hans|《午夜拍门》}} || Jin He || |- | 2013 || ''Women Who Know How to Flirt Are the Luckiest'' || {{lang|zh-Hans|《撒娇女人最好命》}} || Jia Jia || |- | 2014 || ''[[Zhong Kui: Snow Girl and the Dark Crystal]]'' || {{lang|zh-Hans|《钟馗伏魔:雪妖魔灵》}} || A Western beauty || |- | 2017 || ''[[Soul on a String]]'' || {{lang|zh-Hans|《皮绳上的魂》}} || Qiong || |- |2018 |Lost in Mobius |记忆折叠 |Nanxi |support role |- | 2019 || ''[[The Climbers (2019 film)|The Climbers]]'' ||攀登者 || Hei Mu Dan || |- |2020 |Modern Wong Fei Hung |摩登黄飞鸿 |Fang Xue Yan |Main Role |- |2022 |The Mysterious Incident in Lop Nur |罗布泊神秘事件 |Xue Xiao |Main Role |- |2022 |Battlefield: Alien |战地:异种浩劫 | |main role |- |2023 |Chang Yue Jin Ming   |长月烬明 |Yue Ruan Ruan |support role |- |2024 |you are from 2029 |来自2029的你 |Joey | |- |} === ٹی وی سیریٖز === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 2008 || ''Changpiao Zhuangge'' || {{lang|zh-Hans|《长漂壮歌》}} || Yangjin || |- | 2010 || ''[[Huang Yanpei (TV series)|Huang Yanpei]]'' || {{lang|zh-Hans|《黄炎培》}} || A journalist || |- | 2011 || ''Untold Story of Tibet'' || {{lang|zh-Hans|《西藏秘密》}} || Cong Mei || |- | 2012 || || {{lang|zh-Hans|《热巴情》}} || Dawa || |- |rowspan="3"| 2013 || ''[[Love Yunge from the Desert]]'' || {{lang|zh-Hans|《大汉情缘》}} || Princess Aliya || |- | ''[[Heroes in Sui and Tang Dynasties]]'' || {{lang|zh-Hans|《隋唐演义》}} || [[Zhang Lihua]]/ Zhu Gui'er || |- | ''Eagles in Tibet'' || {{lang|zh-Hans|《雪域雄鹰》}} || Ciyang || |- | 2014 || ''[[The Legend of Crazy Monk|New Mad Monk]]'' || {{lang|zh-Hans|《新活佛济公》}} || Du Juan || |- | 2016 || ''[[Ice Fantasy]]'' || {{lang|zh-Hans|《幻城》}} || Yang Dan || |- |rowspan=2| 2019 ||''[[The Legend of White Snake]]''|| 新白娘子传奇||Lady Wu|| |- |''[[Ming Dynasty (2019 TV series) |Ming Dynasty]]''||大明风华||Qi Muge|| |- |2023 |Chang Yue Jin Ming |长月烬明 | | |- |2023 |Where Snowdrops bloom |雪莲花盛开的地方 |Dolma |leading |} ===Drama=== {|class="wikitable" |- ! Year !! Title !! Chinese Title !! Role !! Notes |- | 2006 || ''Amazing Homes'' ||{{lang|zh-Hans-CN|《神奇的家园》}} || ||<ref>{{cite news|author1=Gongsang Lamu ({{lang|zh-Hans|贡桑拉姆}})|author2=Yang Yueyun ({{lang|zh-Hans|杨月云}})|url=http://www.gmw.cn/content/2006-10/18/content_494584.htm |script-title=zh:曲尼次仁:最清纯的藏族之花 |newspaper=GMW |date=18 October 2006 |language=zh}}</ref> |} g95yjwxxgqr7nag7g9ylhr07j80yrj1 151934 151933 2026-09-22T06:58:46Z آیات محراج 11062 /* فِلِم سٲزی */ 151934 wikitext text/x-wiki '''چویِنی ژیرِنٛگ''' ([[تِبتی زَبان|تِبتی]]: ཆོས་དབྱིངས་ཚེ་རིང་؛ [[چیٖنی زَبان|چیٖنی]]: 曲尼次仁؛ زامٕژ: 15 مئی 1986) چھَ اکھ چینی اداکارہ تہٕ تبتی نسلٕچ گلوکار۔<ref>{{cite news|url=http://ent.163.com/photoview/00AJ0003/638454.html#p=CSCIVQ9N00AJ0003NOS|script-title=zh:曲尼次仁写真曝光 慵懒随性诠释撩人体质|newspaper=163|date=27 August 2017|language=zh}}</ref> چویِنی ژیرِنٛگ ٲس لَو یونٛگے فرٛام دی ڈیزرٹس (2013) منٛز شہزادی عالیہ تہٕ سُیی تہٕ تانٛگ خاندانن (2013) منٛز ہیروز منٛز چانٛگ لیہوا / چو گیور سٕنٛدیو کردارو خٲطرٕ مشہوٗر، تہٕ واریاہن فلمن منٛز تہٕ کٔرن اداکٲری، یمن منٛز زانین انسٹرومینٹ (1999) ، وومین ہو نو ہاؤ ٹو فلرٹ آر دی لکیسٹ (2013) ، چونٛگ کُیی: سنو گرل اینٛڈ دی ڈارک کرِٛسٹل (2014) ، تہٕ سول آن اے سٹرِنٛگ (2017) شٲمل چھِ۔ == فِلِم سٲزی == === فِلِم === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 1999 || ''Zhanian Instrument'' || {{lang|zh-Hans|《弹起我的扎年琴》}} || Gesang || |- | 2011 || ''Wuye Paimen'' || {{lang|zh-Hans|《午夜拍门》}} || Jin He || |- | 2013 || ''Women Who Know How to Flirt Are the Luckiest'' || {{lang|zh-Hans|《撒娇女人最好命》}} || Jia Jia || |- | 2014 || ''Zhong Kui: Snow Girl and the Dark Crystal'' || {{lang|zh-Hans|《钟馗伏魔:雪妖魔灵》}} || A Western beauty || |- | 2017 || ''Soul on a String'' || {{lang|zh-Hans|《皮绳上的魂》}} || Qiong || |- |2018 |Lost in Mobius |记忆折叠 |Nanxi |support role |- | 2019 || ''The Climbers'' ||攀登者 || Hei Mu Dan || |- |2020 |Modern Wong Fei Hung |摩登黄飞鸿 |Fang Xue Yan |Main Role |- |2022 |The Mysterious Incident in Lop Nur |罗布泊神秘事件 |Xue Xiao |Main Role |- |2022 |Battlefield: Alien |战地:异种浩劫 | |main role |- |2023 |Chang Yue Jin Ming   |长月烬明 |Yue Ruan Ruan |support role |- |2024 |you are from 2029 |来自2029的你 |Joey | |- |} === ٹی وی سیریٖز === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 2008 || ''Changpiao Zhuangge'' || {{lang|zh-Hans|《长漂壮歌》}} || Yangjin || |- | 2010 || ''Huang Yanpei'' || {{lang|zh-Hans|《黄炎培》}} || A journalist || |- | 2011 || ''Untold Story of Tibet'' || {{lang|zh-Hans|《西藏秘密》}} || Cong Mei || |- | 2012 || || {{lang|zh-Hans|《热巴情》}} || Dawa || |- |rowspan="3"| 2013 || ''Love Yunge from the Desert'' || {{lang|zh-Hans|《大汉情缘》}} || Princess Aliya || |- | ''Heroes in Sui and Tang Dynasties'' || {{lang|zh-Hans|《隋唐演义》}} || Zhang Lihua/ Zhu Gui'er || |- | ''Eagles in Tibet'' || {{lang|zh-Hans|《雪域雄鹰》}} || Ciyang || |- | 2014 || ''New Mad Monk'' || {{lang|zh-Hans|《新活佛济公》}} || Du Juan || |- | 2016 || ''Ice Fantasy'' || {{lang|zh-Hans|《幻城》}} || Yang Dan || |- |rowspan=2| 2019 ||''The Legend of White Snake''|| 新白娘子传奇||Lady Wu|| |- |''Ming Dynasty''||大明风华||Qi Muge|| |- |2023 |Chang Yue Jin Ming |长月烬明 | | |- |2023 |Where Snowdrops bloom |雪莲花盛开的地方 |Dolma |leading |} ===ڈرٛامہ=== {|class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 2006 || ''Amazing Homes'' ||{{lang|zh-Hans-CN|《神奇的家园》}} || ||<ref>{{cite news|author1=Gongsang Lamu ({{lang|zh-Hans|贡桑拉姆}})|author2=Yang Yueyun ({{lang|zh-Hans|杨月云}})|url=http://www.gmw.cn/content/2006-10/18/content_494584.htm |script-title=zh:曲尼次仁:最清纯的藏族之花 |newspaper=GMW |date=18 October 2006 |language=zh}}</ref> |} == حَوالہٕ == 7ets560eoqyleem1oudi9p35xrl8tg0 151935 151934 2026-09-22T06:59:40Z آیات محراج 11062 /* */ 151935 wikitext text/x-wiki {{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}} '''چویِنی ژیرِنٛگ''' ([[تِبتی زَبان|تِبتی]]: ཆོས་དབྱིངས་ཚེ་རིང་؛ [[چیٖنی زَبان|چیٖنی]]: 曲尼次仁؛ زامٕژ: 15 مئی 1986) چھَ اکھ چیٖنی اداکارہ تہٕ تبتی نسلٕچ گلوکار۔<ref>{{cite news|url=http://ent.163.com/photoview/00AJ0003/638454.html#p=CSCIVQ9N00AJ0003NOS|script-title=zh:曲尼次仁写真曝光 慵懒随性诠释撩人体质|newspaper=163|date=27 August 2017|language=zh}}</ref> چویِنی ژیرِنٛگ ٲس لَو یونٛگے فرٛام دی ڈیزرٹس (2013) منٛز شہزادی عالیہ تہٕ سُیی تہٕ تانٛگ خاندانن (2013) منٛز ہیروز منٛز چانٛگ لیہوا / چو گیور سٕنٛدیو کردارو خٲطرٕ مشہوٗر، تہٕ واریاہن فلمن منٛز تہٕ کٔرن اداکٲری، یمن منٛز زانین انسٹرومینٹ (1999) ، وومین ہو نو ہاؤ ٹو فلرٹ آر دی لکیسٹ (2013) ، چونٛگ کُیی: سنو گرل اینٛڈ دی ڈارک کرِٛسٹل (2014) ، تہٕ سول آن اے سٹرِنٛگ (2017) شٲمل چھِ۔ == فِلِم سٲزی == === فِلِم === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 1999 || ''Zhanian Instrument'' || {{lang|zh-Hans|《弹起我的扎年琴》}} || Gesang || |- | 2011 || ''Wuye Paimen'' || {{lang|zh-Hans|《午夜拍门》}} || Jin He || |- | 2013 || ''Women Who Know How to Flirt Are the Luckiest'' || {{lang|zh-Hans|《撒娇女人最好命》}} || Jia Jia || |- | 2014 || ''Zhong Kui: Snow Girl and the Dark Crystal'' || {{lang|zh-Hans|《钟馗伏魔:雪妖魔灵》}} || A Western beauty || |- | 2017 || ''Soul on a String'' || {{lang|zh-Hans|《皮绳上的魂》}} || Qiong || |- |2018 |Lost in Mobius |记忆折叠 |Nanxi |support role |- | 2019 || ''The Climbers'' ||攀登者 || Hei Mu Dan || |- |2020 |Modern Wong Fei Hung |摩登黄飞鸿 |Fang Xue Yan |Main Role |- |2022 |The Mysterious Incident in Lop Nur |罗布泊神秘事件 |Xue Xiao |Main Role |- |2022 |Battlefield: Alien |战地:异种浩劫 | |main role |- |2023 |Chang Yue Jin Ming   |长月烬明 |Yue Ruan Ruan |support role |- |2024 |you are from 2029 |来自2029的你 |Joey | |- |} === ٹی وی سیریٖز === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 2008 || ''Changpiao Zhuangge'' || {{lang|zh-Hans|《长漂壮歌》}} || Yangjin || |- | 2010 || ''Huang Yanpei'' || {{lang|zh-Hans|《黄炎培》}} || A journalist || |- | 2011 || ''Untold Story of Tibet'' || {{lang|zh-Hans|《西藏秘密》}} || Cong Mei || |- | 2012 || || {{lang|zh-Hans|《热巴情》}} || Dawa || |- |rowspan="3"| 2013 || ''Love Yunge from the Desert'' || {{lang|zh-Hans|《大汉情缘》}} || Princess Aliya || |- | ''Heroes in Sui and Tang Dynasties'' || {{lang|zh-Hans|《隋唐演义》}} || Zhang Lihua/ Zhu Gui'er || |- | ''Eagles in Tibet'' || {{lang|zh-Hans|《雪域雄鹰》}} || Ciyang || |- | 2014 || ''New Mad Monk'' || {{lang|zh-Hans|《新活佛济公》}} || Du Juan || |- | 2016 || ''Ice Fantasy'' || {{lang|zh-Hans|《幻城》}} || Yang Dan || |- |rowspan=2| 2019 ||''The Legend of White Snake''|| 新白娘子传奇||Lady Wu|| |- |''Ming Dynasty''||大明风华||Qi Muge|| |- |2023 |Chang Yue Jin Ming |长月烬明 | | |- |2023 |Where Snowdrops bloom |雪莲花盛开的地方 |Dolma |leading |} ===ڈرٛامہ=== {|class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 2006 || ''Amazing Homes'' ||{{lang|zh-Hans-CN|《神奇的家园》}} || ||<ref>{{cite news|author1=Gongsang Lamu ({{lang|zh-Hans|贡桑拉姆}})|author2=Yang Yueyun ({{lang|zh-Hans|杨月云}})|url=http://www.gmw.cn/content/2006-10/18/content_494584.htm |script-title=zh:曲尼次仁:最清纯的藏族之花 |newspaper=GMW |date=18 October 2006 |language=zh}}</ref> |} == حَوالہٕ == ce6lwbueyc8b1sa1elgnyg880l7p7la 151936 151935 2026-09-22T07:00:44Z آیات محراج 11062 +[[زٲژ:چیٖنی لوٗکھ]]; +[[زٲژ:1986 پٲدٲیِش]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ 151936 wikitext text/x-wiki {{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}} '''چویِنی ژیرِنٛگ''' ([[تِبتی زَبان|تِبتی]]: ཆོས་དབྱིངས་ཚེ་རིང་؛ [[چیٖنی زَبان|چیٖنی]]: 曲尼次仁؛ زامٕژ: 15 مئی 1986) چھَ اکھ چیٖنی اداکارہ تہٕ تبتی نسلٕچ گلوکار۔<ref>{{cite news|url=http://ent.163.com/photoview/00AJ0003/638454.html#p=CSCIVQ9N00AJ0003NOS|script-title=zh:曲尼次仁写真曝光 慵懒随性诠释撩人体质|newspaper=163|date=27 August 2017|language=zh}}</ref> چویِنی ژیرِنٛگ ٲس لَو یونٛگے فرٛام دی ڈیزرٹس (2013) منٛز شہزادی عالیہ تہٕ سُیی تہٕ تانٛگ خاندانن (2013) منٛز ہیروز منٛز چانٛگ لیہوا / چو گیور سٕنٛدیو کردارو خٲطرٕ مشہوٗر، تہٕ واریاہن فلمن منٛز تہٕ کٔرن اداکٲری، یمن منٛز زانین انسٹرومینٹ (1999) ، وومین ہو نو ہاؤ ٹو فلرٹ آر دی لکیسٹ (2013) ، چونٛگ کُیی: سنو گرل اینٛڈ دی ڈارک کرِٛسٹل (2014) ، تہٕ سول آن اے سٹرِنٛگ (2017) شٲمل چھِ۔ == فِلِم سٲزی == === فِلِم === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 1999 || ''Zhanian Instrument'' || {{lang|zh-Hans|《弹起我的扎年琴》}} || Gesang || |- | 2011 || ''Wuye Paimen'' || {{lang|zh-Hans|《午夜拍门》}} || Jin He || |- | 2013 || ''Women Who Know How to Flirt Are the Luckiest'' || {{lang|zh-Hans|《撒娇女人最好命》}} || Jia Jia || |- | 2014 || ''Zhong Kui: Snow Girl and the Dark Crystal'' || {{lang|zh-Hans|《钟馗伏魔:雪妖魔灵》}} || A Western beauty || |- | 2017 || ''Soul on a String'' || {{lang|zh-Hans|《皮绳上的魂》}} || Qiong || |- |2018 |Lost in Mobius |记忆折叠 |Nanxi |support role |- | 2019 || ''The Climbers'' ||攀登者 || Hei Mu Dan || |- |2020 |Modern Wong Fei Hung |摩登黄飞鸿 |Fang Xue Yan |Main Role |- |2022 |The Mysterious Incident in Lop Nur |罗布泊神秘事件 |Xue Xiao |Main Role |- |2022 |Battlefield: Alien |战地:异种浩劫 | |main role |- |2023 |Chang Yue Jin Ming   |长月烬明 |Yue Ruan Ruan |support role |- |2024 |you are from 2029 |来自2029的你 |Joey | |- |} === ٹی وی سیریٖز === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 2008 || ''Changpiao Zhuangge'' || {{lang|zh-Hans|《长漂壮歌》}} || Yangjin || |- | 2010 || ''Huang Yanpei'' || {{lang|zh-Hans|《黄炎培》}} || A journalist || |- | 2011 || ''Untold Story of Tibet'' || {{lang|zh-Hans|《西藏秘密》}} || Cong Mei || |- | 2012 || || {{lang|zh-Hans|《热巴情》}} || Dawa || |- |rowspan="3"| 2013 || ''Love Yunge from the Desert'' || {{lang|zh-Hans|《大汉情缘》}} || Princess Aliya || |- | ''Heroes in Sui and Tang Dynasties'' || {{lang|zh-Hans|《隋唐演义》}} || Zhang Lihua/ Zhu Gui'er || |- | ''Eagles in Tibet'' || {{lang|zh-Hans|《雪域雄鹰》}} || Ciyang || |- | 2014 || ''New Mad Monk'' || {{lang|zh-Hans|《新活佛济公》}} || Du Juan || |- | 2016 || ''Ice Fantasy'' || {{lang|zh-Hans|《幻城》}} || Yang Dan || |- |rowspan=2| 2019 ||''The Legend of White Snake''|| 新白娘子传奇||Lady Wu|| |- |''Ming Dynasty''||大明风华||Qi Muge|| |- |2023 |Chang Yue Jin Ming |长月烬明 | | |- |2023 |Where Snowdrops bloom |雪莲花盛开的地方 |Dolma |leading |} ===ڈرٛامہ=== {|class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 2006 || ''Amazing Homes'' ||{{lang|zh-Hans-CN|《神奇的家园》}} || ||<ref>{{cite news|author1=Gongsang Lamu ({{lang|zh-Hans|贡桑拉姆}})|author2=Yang Yueyun ({{lang|zh-Hans|杨月云}})|url=http://www.gmw.cn/content/2006-10/18/content_494584.htm |script-title=zh:曲尼次仁:最清纯的藏族之花 |newspaper=GMW |date=18 October 2006 |language=zh}}</ref> |} == حَوالہٕ == [[زٲژ:چیٖنی لوٗکھ]] [[زٲژ:1986 پٲدٲیِش]] e5qrflu40b4hygqpfkctiohxjgbejrg 151937 151936 2026-09-22T07:02:13Z آیات محراج 11062 /* */ 151937 wikitext text/x-wiki {{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes|name=چویِنی ژیرِنٛگ </br> Choenyi Tsering}} '''چویِنی ژیرِنٛگ''' ([[تِبتی زَبان|تِبتی]]: ཆོས་དབྱིངས་ཚེ་རིང་؛ [[چیٖنی زَبان|چیٖنی]]: 曲尼次仁؛ زامٕژ: 15 مئی 1986) چھَ اکھ چیٖنی اداکارہ تہٕ تبتی نسلٕچ گلوکار۔<ref>{{cite news|url=http://ent.163.com/photoview/00AJ0003/638454.html#p=CSCIVQ9N00AJ0003NOS|script-title=zh:曲尼次仁写真曝光 慵懒随性诠释撩人体质|newspaper=163|date=27 August 2017|language=zh}}</ref> چویِنی ژیرِنٛگ ٲس لَو یونٛگے فرٛام دی ڈیزرٹس (2013) منٛز شہزادی عالیہ تہٕ سُیی تہٕ تانٛگ خاندانن (2013) منٛز ہیروز منٛز چانٛگ لیہوا / چو گیور سٕنٛدیو کردارو خٲطرٕ مشہوٗر، تہٕ واریاہن فلمن منٛز تہٕ کٔرن اداکٲری، یمن منٛز زانین انسٹرومینٹ (1999) ، وومین ہو نو ہاؤ ٹو فلرٹ آر دی لکیسٹ (2013) ، چونٛگ کُیی: سنو گرل اینٛڈ دی ڈارک کرِٛسٹل (2014) ، تہٕ سول آن اے سٹرِنٛگ (2017) شٲمل چھِ۔ == فِلِم سٲزی == === فِلِم === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 1999 || ''Zhanian Instrument'' || {{lang|zh-Hans|《弹起我的扎年琴》}} || Gesang || |- | 2011 || ''Wuye Paimen'' || {{lang|zh-Hans|《午夜拍门》}} || Jin He || |- | 2013 || ''Women Who Know How to Flirt Are the Luckiest'' || {{lang|zh-Hans|《撒娇女人最好命》}} || Jia Jia || |- | 2014 || ''Zhong Kui: Snow Girl and the Dark Crystal'' || {{lang|zh-Hans|《钟馗伏魔:雪妖魔灵》}} || A Western beauty || |- | 2017 || ''Soul on a String'' || {{lang|zh-Hans|《皮绳上的魂》}} || Qiong || |- |2018 |Lost in Mobius |记忆折叠 |Nanxi |support role |- | 2019 || ''The Climbers'' ||攀登者 || Hei Mu Dan || |- |2020 |Modern Wong Fei Hung |摩登黄飞鸿 |Fang Xue Yan |Main Role |- |2022 |The Mysterious Incident in Lop Nur |罗布泊神秘事件 |Xue Xiao |Main Role |- |2022 |Battlefield: Alien |战地:异种浩劫 | |main role |- |2023 |Chang Yue Jin Ming   |长月烬明 |Yue Ruan Ruan |support role |- |2024 |you are from 2029 |来自2029的你 |Joey | |- |} === ٹی وی سیریٖز === {| class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 2008 || ''Changpiao Zhuangge'' || {{lang|zh-Hans|《长漂壮歌》}} || Yangjin || |- | 2010 || ''Huang Yanpei'' || {{lang|zh-Hans|《黄炎培》}} || A journalist || |- | 2011 || ''Untold Story of Tibet'' || {{lang|zh-Hans|《西藏秘密》}} || Cong Mei || |- | 2012 || || {{lang|zh-Hans|《热巴情》}} || Dawa || |- |rowspan="3"| 2013 || ''Love Yunge from the Desert'' || {{lang|zh-Hans|《大汉情缘》}} || Princess Aliya || |- | ''Heroes in Sui and Tang Dynasties'' || {{lang|zh-Hans|《隋唐演义》}} || Zhang Lihua/ Zhu Gui'er || |- | ''Eagles in Tibet'' || {{lang|zh-Hans|《雪域雄鹰》}} || Ciyang || |- | 2014 || ''New Mad Monk'' || {{lang|zh-Hans|《新活佛济公》}} || Du Juan || |- | 2016 || ''Ice Fantasy'' || {{lang|zh-Hans|《幻城》}} || Yang Dan || |- |rowspan=2| 2019 ||''The Legend of White Snake''|| 新白娘子传奇||Lady Wu|| |- |''Ming Dynasty''||大明风华||Qi Muge|| |- |2023 |Chang Yue Jin Ming |长月烬明 | | |- |2023 |Where Snowdrops bloom |雪莲花盛开的地方 |Dolma |leading |} ===ڈرٛامہ=== {|class="wikitable" |- ! ؤری !! عنوان !! چیٖنی عنوان !! کِردار !! نوٹ |- | 2006 || ''Amazing Homes'' ||{{lang|zh-Hans-CN|《神奇的家园》}} || ||<ref>{{cite news|author1=Gongsang Lamu ({{lang|zh-Hans|贡桑拉姆}})|author2=Yang Yueyun ({{lang|zh-Hans|杨月云}})|url=http://www.gmw.cn/content/2006-10/18/content_494584.htm |script-title=zh:曲尼次仁:最清纯的藏族之花 |newspaper=GMW |date=18 October 2006 |language=zh}}</ref> |} == حَوالہٕ == [[زٲژ:چیٖنی لوٗکھ]] [[زٲژ:1986 پٲدٲیِش]] 2x5tt31jjbzvjdf7gva73djcvb2seuf زِبُون نِسّا 0 32771 151939 2026-09-22T07:21:03Z آیات محراج 11062 [[زِبُون نِسّا]] صَفہٕ آو پَکناونہٕ [[زیبُن نِسا]] جاے، پَکناوَن وول صٲرف آیات محراج : Wrong spelling 151939 wikitext text/x-wiki #REDIRECT [[زیبُن نِسا]] mux0dh3mgbwjux0z4dpxqv0onmohcwe کَتھ:زِبُون نِسّا 1 32772 151941 2026-09-22T07:21:03Z آیات محراج 11062 [[کَتھ:زِبُون نِسّا]] صَفہٕ آو پَکناونہٕ [[کَتھ:زیبُن نِسا]] جاے، پَکناوَن وول صٲرف آیات محراج : Wrong spelling 151941 wikitext text/x-wiki #REDIRECT [[کَتھ:زیبُن نِسا]] mvkkebkl3k0hyjpjifr0wcjbyoxhzel گُلاب بائی 0 32773 151945 2026-09-22T07:32:33Z آیات محراج 11062 [[گُلاب بائی]] صَفہٕ آو پَکناونہٕ [[گُلاب بایی]] جاے، پَکناوَن وول صٲرف آیات محراج : ئ isn't used in kashmiri orthography 151945 wikitext text/x-wiki #REDIRECT [[گُلاب بایی]] lkxw6un5x23zd148m1o22wuhik3rosy کَتھ:گُلاب بائی 1 32774 151947 2026-09-22T07:32:33Z آیات محراج 11062 [[کَتھ:گُلاب بائی]] صَفہٕ آو پَکناونہٕ [[کَتھ:گُلاب بایی]] جاے، پَکناوَن وول صٲرف آیات محراج : ئ isn't used in kashmiri orthography 151947 wikitext text/x-wiki #REDIRECT [[کَتھ:گُلاب بایی]] qodu6j9e97d6cksi68fnwgwgblnhjrw