وِکیٖپیٖڈیا
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.22
first-letter
میڈیا
خاص
کَتھ
رُکُن
رُکُن کَتھ
وِکیٖپیٖڈیا
وِکیٖپیٖڈیا کَتھ
فَیِل
فَیِل کَتھ
میٖڈیاوِکی
میٖڈیاوِکی کَتھ
فرما
فرما کَتھ
مَدَتھ
مَدَتھ کَتھ
زٲژ
زٲژ کَتھ
TimedText
TimedText talk
Module
Module talk
Event
Event talk
سَلمان خان
0
4775
153461
147592
2026-10-07T09:19:24Z
آیات محراج
11062
153461
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = شٔریٖکہِ حَیات، P973
| data1 = [[فَیِل:Salman Khan signature.svg|125px]]
| customheader1 = دستخط
}}
سلمان سلیم خان (پیدٲیشی ناو: عبدالرشید سلیم سلمان خان، 27 دَسَمبَر 1965) چھُ اَکھ ہِندوستٲنؠ اداکار، فِلِم پروڈیوسر، تہٕ ٹیلی وِجَن شخصیت یُس زیٛادٕ تر ہندی فلمَن مَنٛز کٲم کران چھُ۔ ترٛؠو ؤرِیو کھۄتہٕ زِیٛادٕ وقتَس پؠٹھ پھٔہلِتھ پیشورانہٕ زِندگی مَنٛز چھِ أمہِ سٕنٛدؠن ایوارڈَن مَنٛز بطور فِلِم پروڈیوسر زٕ نیشنل فِلِم ایوارڈ تہٕ بطورِ اداکار زٕ فِلِم فِیَر ایوارڈ شٲمِل۔ میڈیاہَس مَنٛز چھُ أمِس ہِندوستٲنؠ سنیما ہُنٛد ساروٕے کھۄتہٕ مشہوٗر تہٕ تجارتی لحاظٕ کامیاب اداکارَن مَنٛز اَکھ ماننہٕ یِوان۔ فوربسن کٔر سُہ 2015 تہٕ 2018 ہَس مَنٛز دُنؠیاہٕک ساروٕے کھۄتہٕ زِیٛادٕ معاوضہٕ نِنہٕ والؠن مشہوٗر شخصیاتن ہٕنٛدِس فہرستس مَنٛز شٲمِل۔<ref>{{cite news|title=Box Office Special Features – Highest Grosser of The Year|url=https://www.bollywoodhungama.com/news/box-office-special-features/highest-grosser-year-1990-2020-salman-khan-aamir-khan-shah-rukh-khan-dominate-hrithik-roshan-climbs-ladder/|website=[[Bollywood Hungama]]|date=29 December 2020|access-date=3 August 2021}}</ref>
== فِلِموگرٛافی==
<div style="text-align:center; margin-top:10px;">
[https://reasonator.toolforge.org/?q={{#invoke:Wikidades|claim|property=P31|formatting=raw|listmax=1|item={{{qid|}}}}}&lang=ks <span style="background-color:#202122; color:#ffffff; padding:8px 15px; font-family:sans-serif; font-size:14px; font-weight:bold; border-radius:20px; text-decoration:none; display:inline-block; box-shadow: 0 4px 6px rgba(0,0,0,0.1);">🎬 پوٗرٕ فِلمی سَفَر وُچھِو</span>]
</div>
== حَوالہٕ ==
{{نامُکَمَل مَضموٗن}}
[[زٲژ:زِنٛدٕ لوٗکھ]]
[[زٲژ:ہِندوستٲنؠ اَداکار]]
[[زٲژ:ہِندوستٲنؠ مُسَلمان]]
92qykolbig7obvz6sf81nhh6nztz87o
153462
153461
2026-10-07T09:22:43Z
آیات محراج
11062
/* فِلِموگرٛافی */
153462
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = شٔریٖکہِ حَیات، P973
| data1 = [[فَیِل:Salman Khan signature.svg|125px]]
| customheader1 = دستخط
}}
سلمان سلیم خان (پیدٲیشی ناو: عبدالرشید سلیم سلمان خان، 27 دَسَمبَر 1965) چھُ اَکھ ہِندوستٲنؠ اداکار، فِلِم پروڈیوسر، تہٕ ٹیلی وِجَن شخصیت یُس زیٛادٕ تر ہندی فلمَن مَنٛز کٲم کران چھُ۔ ترٛؠو ؤرِیو کھۄتہٕ زِیٛادٕ وقتَس پؠٹھ پھٔہلِتھ پیشورانہٕ زِندگی مَنٛز چھِ أمہِ سٕنٛدؠن ایوارڈَن مَنٛز بطور فِلِم پروڈیوسر زٕ نیشنل فِلِم ایوارڈ تہٕ بطورِ اداکار زٕ فِلِم فِیَر ایوارڈ شٲمِل۔ میڈیاہَس مَنٛز چھُ أمِس ہِندوستٲنؠ سنیما ہُنٛد ساروٕے کھۄتہٕ مشہوٗر تہٕ تجارتی لحاظٕ کامیاب اداکارَن مَنٛز اَکھ ماننہٕ یِوان۔ فوربسن کٔر سُہ 2015 تہٕ 2018 ہَس مَنٛز دُنؠیاہٕک ساروٕے کھۄتہٕ زِیٛادٕ معاوضہٕ نِنہٕ والؠن مشہوٗر شخصیاتن ہٕنٛدِس فہرستس مَنٛز شٲمِل۔<ref>{{cite news|title=Box Office Special Features – Highest Grosser of The Year|url=https://www.bollywoodhungama.com/news/box-office-special-features/highest-grosser-year-1990-2020-salman-khan-aamir-khan-shah-rukh-khan-dominate-hrithik-roshan-climbs-ladder/|website=[[Bollywood Hungama]]|date=29 December 2020|access-date=3 August 2021}}</ref>
== فِلِموگرٛافی==
<div style="text-align:center; margin-top:10px;">
[https://reasonator.toolforge.org/?q={{#invoke:Wikidades|claim|property=P31|formatting=raw|listmax=1|item={{{qid|Q9543}}}}}&lang=ks <span style="background-color:#202122; color:#ffffff; padding:8px 15px; font-family:sans-serif; font-size:14px; font-weight:bold; border-radius:20px; text-decoration:none; display:inline-block; box-shadow: 0 4px 6px rgba(0,0,0,0.1);">🎬 پوٗرٕ فِلمی سَفَر وُچھِو</span>]
</div>
== حَوالہٕ ==
{{نامُکَمَل مَضموٗن}}
[[زٲژ:زِنٛدٕ لوٗکھ]]
[[زٲژ:ہِندوستٲنؠ اَداکار]]
[[زٲژ:ہِندوستٲنؠ مُسَلمان]]
9w37zj2fzkkw0sgr1rfr0k6epfrrppf
153466
153462
2026-10-07T09:43:12Z
آیات محراج
11062
/* فِلِموگرٛافی */
153466
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = شٔریٖکہِ حَیات، P973
| data1 = [[فَیِل:Salman Khan signature.svg|125px]]
| customheader1 = دستخط
}}
سلمان سلیم خان (پیدٲیشی ناو: عبدالرشید سلیم سلمان خان، 27 دَسَمبَر 1965) چھُ اَکھ ہِندوستٲنؠ اداکار، فِلِم پروڈیوسر، تہٕ ٹیلی وِجَن شخصیت یُس زیٛادٕ تر ہندی فلمَن مَنٛز کٲم کران چھُ۔ ترٛؠو ؤرِیو کھۄتہٕ زِیٛادٕ وقتَس پؠٹھ پھٔہلِتھ پیشورانہٕ زِندگی مَنٛز چھِ أمہِ سٕنٛدؠن ایوارڈَن مَنٛز بطور فِلِم پروڈیوسر زٕ نیشنل فِلِم ایوارڈ تہٕ بطورِ اداکار زٕ فِلِم فِیَر ایوارڈ شٲمِل۔ میڈیاہَس مَنٛز چھُ أمِس ہِندوستٲنؠ سنیما ہُنٛد ساروٕے کھۄتہٕ مشہوٗر تہٕ تجارتی لحاظٕ کامیاب اداکارَن مَنٛز اَکھ ماننہٕ یِوان۔ فوربسن کٔر سُہ 2015 تہٕ 2018 ہَس مَنٛز دُنؠیاہٕک ساروٕے کھۄتہٕ زِیٛادٕ معاوضہٕ نِنہٕ والؠن مشہوٗر شخصیاتن ہٕنٛدِس فہرستس مَنٛز شٲمِل۔<ref>{{cite news|title=Box Office Special Features – Highest Grosser of The Year|url=https://www.bollywoodhungama.com/news/box-office-special-features/highest-grosser-year-1990-2020-salman-khan-aamir-khan-shah-rukh-khan-dominate-hrithik-roshan-climbs-ladder/|website=[[Bollywood Hungama]]|date=29 December 2020|access-date=3 August 2021}}</ref>
== فِلِموگرٛافی==
{{مشہوٗر کامہِ}}
== حَوالہٕ ==
{{نامُکَمَل مَضموٗن}}
[[زٲژ:زِنٛدٕ لوٗکھ]]
[[زٲژ:ہِندوستٲنؠ اَداکار]]
[[زٲژ:ہِندوستٲنؠ مُسَلمان]]
manwpjimnfscnfy0npxg0bx7aanwsy5
153471
153466
2026-10-07T10:03:19Z
آیات محراج
11062
/* فِلِموگرٛافی */
153471
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = شٔریٖکہِ حَیات، P973
| data1 = [[فَیِل:Salman Khan signature.svg|125px]]
| customheader1 = دستخط
}}
سلمان سلیم خان (پیدٲیشی ناو: عبدالرشید سلیم سلمان خان، 27 دَسَمبَر 1965) چھُ اَکھ ہِندوستٲنؠ اداکار، فِلِم پروڈیوسر، تہٕ ٹیلی وِجَن شخصیت یُس زیٛادٕ تر ہندی فلمَن مَنٛز کٲم کران چھُ۔ ترٛؠو ؤرِیو کھۄتہٕ زِیٛادٕ وقتَس پؠٹھ پھٔہلِتھ پیشورانہٕ زِندگی مَنٛز چھِ أمہِ سٕنٛدؠن ایوارڈَن مَنٛز بطور فِلِم پروڈیوسر زٕ نیشنل فِلِم ایوارڈ تہٕ بطورِ اداکار زٕ فِلِم فِیَر ایوارڈ شٲمِل۔ میڈیاہَس مَنٛز چھُ أمِس ہِندوستٲنؠ سنیما ہُنٛد ساروٕے کھۄتہٕ مشہوٗر تہٕ تجارتی لحاظٕ کامیاب اداکارَن مَنٛز اَکھ ماننہٕ یِوان۔ فوربسن کٔر سُہ 2015 تہٕ 2018 ہَس مَنٛز دُنؠیاہٕک ساروٕے کھۄتہٕ زِیٛادٕ معاوضہٕ نِنہٕ والؠن مشہوٗر شخصیاتن ہٕنٛدِس فہرستس مَنٛز شٲمِل۔<ref>{{cite news|title=Box Office Special Features – Highest Grosser of The Year|url=https://www.bollywoodhungama.com/news/box-office-special-features/highest-grosser-year-1990-2020-salman-khan-aamir-khan-shah-rukh-khan-dominate-hrithik-roshan-climbs-ladder/|website=[[Bollywood Hungama]]|date=29 December 2020|access-date=3 August 2021}}</ref>
== فِلِموگرٛافی==
{{مشہوٗر کامہِ}}
== حَوالہٕ ==
{{نامُکَمَل مَضموٗن}}
[[زٲژ:زِنٛدٕ لوٗکھ]]
[[زٲژ:ہِندوستٲنؠ اَداکار]]
[[زٲژ:ہِندوستٲنؠ مُسَلمان]]
h9ci0cj7haxzfyxkqituvx5rbp2feo7
Module:Infobox
828
6461
153322
54020
2026-06-08T00:50:22Z
en>Zackmann08
0
hiding un-needed blank rows that show up in child infoboxes per [[Template_talk:Infobox#Blank_rows_on_child_infoboxes....|talk page]]
153322
Scribunto
text/plain
local p = {}
local args = {}
local origArgs = {}
local root
local empty_row_categories = {}
local category_in_empty_row_pattern = '%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]'
local has_rows = false
local yesno = require("Module:Yesno")
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = 'Plainlist/styles.css'
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = 'Hlist/styles.css'
}
}
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for _, arg in pairs(args_to_check) do
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then break end
end
end
end
end
local function isUntitledChildBox(sval)
return sval and ( sval:match( '^%s*<%s*[Tt][Rr]' ) or sval:match( '^%s*\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127%s*<%s*[Tt][Rr]' ) )
end
local function fixChildBoxes(sval, tt)
local function notempty( s ) return s and s:match( '%S' ) end
if notempty(sval) then
local marker = '<span class=special_infobox_marker>'
local s = sval
-- start moving templatestyles and categories inside of table rows
local slast = ''
while slast ~= s do
slast = s
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*%]%])', '%2%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)', '%2%1')
end
-- end moving templatestyles and categories inside of table rows
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
elseif k == #subcells then
local rowstyle = ' style="display:none"'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' ..
subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '<tr><' .. tt .. ' colspan=2>\n' ..
subcells[k] .. '</' .. tt .. '></tr>'
end
end
end
end
-- the next two lines add a newline at the end of lists for the PHP parser
-- [[Special:Diff/849054481]]
-- remove when [[:phab:T191516]] is fixed or OBE
s = mw.ustring.gsub(s, '([\r\n][%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:])', '\n%1')
s = mw.ustring.gsub(s, '^(%{%|)', '\n%1')
return s
else
return sval
end
end
-- Cleans empty tables
local function cleanInfobox()
root = tostring(root)
if has_rows == false then
root = mw.ustring.gsub(root, '<table[^<>]*>%s*</table>', '')
end
end
-- Returns the union of the values of two tables, as a sequence.
local function union(t1, t2)
local vals = {}
for k, v in pairs(t1) do
vals[v] = true
end
for k, v in pairs(t2) do
vals[v] = true
end
local ret = {}
for k, v in pairs(vals) do
table.insert(ret, k)
end
return ret
end
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local function getArgNums(prefix)
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
-- Adds a row to the infobox, with either a header cell
-- or a label/data cell combination.
local function addRow(rowArgs)
if rowArgs.header and rowArgs.header ~= '_BLANK_' then
has_rows = true
has_list_class({ rowArgs.rowclass, rowArgs.class, args.headerclass })
root
:tag('tr')
:addClass(rowArgs.rowclass)
:addClass( isUntitledChildBox( rowArgs.header ) and 'infobox-hiddenrow' or nil )
:cssText(rowArgs.rowstyle)
:tag('th')
:attr('colspan', '2')
:addClass('infobox-header')
:addClass(rowArgs.class)
:addClass(args.headerclass)
-- @deprecated next; target .infobox-<name> .infobox-header
:cssText(args.headerstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.header, 'th'))
if rowArgs.data and not yesno(args.decat) then
root:wikitext(
'[[Category:Pages using infobox templates with ignored data cells]]'
)
end
elseif rowArgs.data and rowArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then
has_rows = true
has_list_class({ rowArgs.rowclass, rowArgs.class })
local row = root:tag('tr')
row:addClass(rowArgs.rowclass)
row:cssText(rowArgs.rowstyle)
if rowArgs.label then
row
:tag('th')
:attr('scope', 'row')
:addClass('infobox-label')
-- @deprecated next; target .infobox-<name> .infobox-label
:cssText(args.labelstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(rowArgs.label)
:done()
else
row:addClass( isUntitledChildBox( rowArgs.data ) and 'infobox-hiddenrow' or nil )
end
local dataCell = row:tag('td')
dataCell
:attr('colspan', not rowArgs.label and '2' or nil)
:addClass(not rowArgs.label and 'infobox-full-data' or 'infobox-data')
:addClass(rowArgs.class)
-- @deprecated next; target .infobox-<name> .infobox(-full)-data
:cssText(rowArgs.datastyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.data, 'td'))
else
table.insert(empty_row_categories, rowArgs.data or '')
end
end
local function renderTitle()
if not args.title then return end
has_rows = true
has_list_class({args.titleclass})
root
:tag('caption')
:addClass('infobox-title')
:addClass(args.titleclass)
-- @deprecated next; target .infobox-<name> .infobox-title
:cssText(args.titlestyle)
:wikitext(args.title)
end
local function renderAboveRow()
if not args.above then return end
has_rows = true
has_list_class({ args.aboveclass })
root
:tag('tr')
:addClass( isUntitledChildBox( args.above ) and 'infobox-hiddenrow' or nil )
:tag('th')
:attr('colspan', '2')
:addClass('infobox-above')
:addClass(args.aboveclass)
-- @deprecated next; target .infobox-<name> .infobox-above
:cssText(args.abovestyle)
:wikitext(fixChildBoxes(args.above,'th'))
end
local function renderBelowRow()
if not args.below then return end
has_rows = true
has_list_class({ args.belowclass })
root
:tag('tr')
:addClass( isUntitledChildBox( args.below ) and 'infobox-hiddenrow' or nil )
:tag('td')
:attr('colspan', '2')
:addClass('infobox-below')
:addClass(args.belowclass)
-- @deprecated next; target .infobox-<name> .infobox-below
:cssText(args.belowstyle)
:wikitext(fixChildBoxes(args.below,'td'))
end
local function addSubheaderRow(subheaderArgs)
if subheaderArgs.data and
subheaderArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then
has_rows = true
has_list_class({ subheaderArgs.rowclass, subheaderArgs.class })
local row = root:tag('tr')
row:addClass(subheaderArgs.rowclass)
row:addClass( isUntitledChildBox( subheaderArgs.data ) and 'infobox-hiddenrow' or nil )
local dataCell = row:tag('td')
dataCell
:attr('colspan', '2')
:addClass('infobox-subheader')
:addClass(subheaderArgs.class)
:cssText(subheaderArgs.datastyle)
:cssText(subheaderArgs.rowcellstyle)
:wikitext(fixChildBoxes(subheaderArgs.data, 'td'))
else
table.insert(empty_row_categories, subheaderArgs.data or '')
end
end
local function renderSubheaders()
if args.subheader then
args.subheader1 = args.subheader
end
if args.subheaderrowclass then
args.subheaderrowclass1 = args.subheaderrowclass
end
local subheadernums = getArgNums('subheader')
for k, num in ipairs(subheadernums) do
addSubheaderRow({
data = args['subheader' .. tostring(num)],
-- @deprecated next; target .infobox-<name> .infobox-subheader
datastyle = args.subheaderstyle,
rowcellstyle = args['subheaderstyle' .. tostring(num)],
class = args.subheaderclass,
rowclass = args['subheaderrowclass' .. tostring(num)]
})
end
end
local function addImageRow(imageArgs)
if imageArgs.data and
imageArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then
has_rows = true
has_list_class({ imageArgs.rowclass, imageArgs.class })
local row = root:tag('tr')
row:addClass(imageArgs.rowclass)
row:addClass( isUntitledChildBox( imageArgs.data ) and 'infobox-hiddenrow' or nil )
local dataCell = row:tag('td')
dataCell
:attr('colspan', '2')
:addClass('infobox-image')
:addClass(imageArgs.class)
:cssText(imageArgs.datastyle)
:wikitext(fixChildBoxes(imageArgs.data, 'td'))
else
table.insert(empty_row_categories, imageArgs.data or '')
end
end
local function renderImages()
if args.image then
args.image1 = args.image
end
if args.caption then
args.caption1 = args.caption
end
local imagenums = getArgNums('image')
for k, num in ipairs(imagenums) do
local caption = args['caption' .. tostring(num)]
local data = mw.html.create():wikitext(args['image' .. tostring(num)])
if caption then
data
:tag('div')
:addClass('infobox-caption')
-- @deprecated next; target .infobox-<name> .infobox-caption
:cssText(args.captionstyle)
:wikitext(caption)
end
addImageRow({
data = tostring(data),
-- @deprecated next; target .infobox-<name> .infobox-image
datastyle = args.imagestyle,
class = args.imageclass,
rowclass = args['imagerowclass' .. tostring(num)]
})
end
end
-- When autoheaders are turned on, preprocesses the rows
local function preprocessRows()
if not args.autoheaders then return end
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
local lastheader
for k, num in ipairs(rownums) do
if args['header' .. tostring(num)] then
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
lastheader = num
elseif args['data' .. tostring(num)] and
args['data' .. tostring(num)]:gsub(
category_in_empty_row_pattern, ''
):match('^%S') then
local data = args['data' .. tostring(num)]
if data:gsub(category_in_empty_row_pattern, ''):match('%S') then
lastheader = nil
end
end
end
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
end
-- Gets the union of the header and data argument numbers,
-- and renders them all in order
local function renderRows()
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
for k, num in ipairs(rownums) do
addRow({
header = args['header' .. tostring(num)],
label = args['label' .. tostring(num)],
data = args['data' .. tostring(num)],
datastyle = args.datastyle,
class = args['class' .. tostring(num)],
rowclass = args['rowclass' .. tostring(num)],
-- @deprecated next; target .infobox-<name> rowclass
rowstyle = args['rowstyle' .. tostring(num)],
rowcellstyle = args['rowcellstyle' .. tostring(num)]
})
end
end
local function renderNavBar()
if not args.name then return end
has_rows = true
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('infobox-navbar')
:wikitext(require('Module:Navbar')._navbar{
args.name,
mini = 1,
})
end
local function renderItalicTitle()
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
root:wikitext(require('Module:Italic title')._main({}))
end
end
-- Categories in otherwise empty rows are collected in empty_row_categories.
-- This function adds them to the module output. It is not affected by
-- args.decat because this module should not prevent module-external categories
-- from rendering.
local function renderEmptyRowCategories()
for _, s in ipairs(empty_row_categories) do
root:wikitext(s)
end
end
-- Render tracking categories. args.decat == turns off tracking categories.
local function renderTrackingCategories()
if yesno(args.decat) then return end
if args.child == 'yes' then
if args.title then
root:wikitext(
'[[Category:Pages using embedded infobox templates with the title parameter]]'
)
end
elseif #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
root:wikitext('[[Category:Articles using infobox templates with no data rows]]')
end
end
--[=[
Loads the templatestyles for the infobox.
TODO: FINISH loading base templatestyles here rather than in
MediaWiki:Common.css. There are 4-5000 pages with 'raw' infobox tables.
See [[Mediawiki_talk:Common.css/to_do#Infobox]] and/or come help :).
When we do this we should clean up the inline CSS below too.
Will have to do some bizarre conversion category like with sidebar.
]=]
local function loadTemplateStyles()
local frame = mw.getCurrentFrame()
local hlist_templatestyles = ''
if lists.hlist_t.found then
hlist_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = lists.hlist_t.styles }
}
end
local plainlist_templatestyles = ''
if lists.plainlist_t.found then
plainlist_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = lists.plainlist_t.styles }
}
end
-- See function description
local base_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = 'Module:Infobox/styles.css' }
}
local templatestyles = ''
if args['templatestyles'] then
templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['templatestyles'] }
}
end
local child_templatestyles = ''
if args['child templatestyles'] then
child_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['child templatestyles'] }
}
end
local grandchild_templatestyles = ''
if args['grandchild templatestyles'] then
grandchild_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['grandchild templatestyles'] }
}
end
return table.concat({
-- hlist -> plainlist -> base is best-effort to preserve old Common.css ordering.
-- this ordering is not a guarantee because the rows of interest invoking
-- each class may not be on a specific page
hlist_templatestyles,
plainlist_templatestyles,
base_templatestyles,
templatestyles,
child_templatestyles,
grandchild_templatestyles
})
end
-- common functions between the child and non child cases
local function structure_infobox_common()
renderSubheaders()
renderImages()
preprocessRows()
renderRows()
renderBelowRow()
renderNavBar()
renderItalicTitle()
renderEmptyRowCategories()
renderTrackingCategories()
cleanInfobox()
end
-- Specify the overall layout of the infobox, with special settings if the
-- infobox is used as a 'child' inside another infobox.
local function _infobox()
if args.child ~= 'yes' then
root = mw.html.create('table')
root
:addClass(args.subbox == 'yes' and 'infobox-subbox' or 'infobox')
:addClass(args.bodyclass)
-- @deprecated next; target .infobox-<name>
:cssText(args.bodystyle)
has_list_class({ args.bodyclass })
renderTitle()
renderAboveRow()
else
root = mw.html.create()
root
:wikitext(args.title)
end
structure_infobox_common()
return loadTemplateStyles() .. root
end
-- If the argument exists and isn't blank, add it to the argument table.
-- Blank arguments are treated as nil to match the behaviour of ParserFunctions.
local function preprocessSingleArg(argName)
if origArgs[argName] and origArgs[argName] ~= '' then
args[argName] = origArgs[argName]
end
end
-- Assign the parameters with the given prefixes to the args table, in order, in
-- batches of the step size specified. This is to prevent references etc. from
-- appearing in the wrong order. The prefixTable should be an array containing
-- tables, each of which has two possible fields, a "prefix" string and a
-- "depend" table. The function always parses parameters containing the "prefix"
-- string, but only parses parameters in the "depend" table if the prefix
-- parameter is present and non-blank.
local function preprocessArgs(prefixTable, step)
if type(prefixTable) ~= 'table' then
error("Non-table value detected for the prefix table", 2)
end
if type(step) ~= 'number' then
error("Invalid step value detected", 2)
end
-- Get arguments without a number suffix, and check for bad input.
for i,v in ipairs(prefixTable) do
if type(v) ~= 'table' or type(v.prefix) ~= "string" or
(v.depend and type(v.depend) ~= 'table') then
error('Invalid input detected to preprocessArgs prefix table', 2)
end
preprocessSingleArg(v.prefix)
-- Only parse the depend parameter if the prefix parameter is present
-- and not blank.
if args[v.prefix] and v.depend then
for j, dependValue in ipairs(v.depend) do
if type(dependValue) ~= 'string' then
error('Invalid "depend" parameter value detected in preprocessArgs')
end
preprocessSingleArg(dependValue)
end
end
end
-- Get arguments with number suffixes.
local a = 1 -- Counter variable.
local moreArgumentsExist = true
while moreArgumentsExist == true do
moreArgumentsExist = false
for i = a, a + step - 1 do
for j,v in ipairs(prefixTable) do
local prefixArgName = v.prefix .. tostring(i)
if origArgs[prefixArgName] then
-- Do another loop if any arguments are found, even blank ones.
moreArgumentsExist = true
preprocessSingleArg(prefixArgName)
end
-- Process the depend table if the prefix argument is present
-- and not blank, or we are processing "prefix1" and "prefix" is
-- present and not blank, and if the depend table is present.
if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then
for j,dependValue in ipairs(v.depend) do
local dependArgName = dependValue .. tostring(i)
preprocessSingleArg(dependArgName)
end
end
end
end
a = a + step
end
end
-- Parse the data parameters in the same order that the old {{infobox}} did, so
-- that references etc. will display in the expected places. Parameters that
-- depend on another parameter are only processed if that parameter is present,
-- to avoid phantom references appearing in article reference lists.
local function parseDataParameters()
preprocessSingleArg('autoheaders')
preprocessSingleArg('child')
preprocessSingleArg('bodyclass')
preprocessSingleArg('subbox')
preprocessSingleArg('bodystyle')
preprocessSingleArg('title')
preprocessSingleArg('titleclass')
preprocessSingleArg('titlestyle')
preprocessSingleArg('above')
preprocessSingleArg('aboveclass')
preprocessSingleArg('abovestyle')
preprocessArgs({
{prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}}
}, 10)
preprocessSingleArg('subheaderstyle')
preprocessSingleArg('subheaderclass')
preprocessArgs({
{prefix = 'image', depend = {'caption', 'imagerowclass'}}
}, 10)
preprocessSingleArg('captionstyle')
preprocessSingleArg('imagestyle')
preprocessSingleArg('imageclass')
preprocessArgs({
{prefix = 'header'},
{prefix = 'data', depend = {'label'}},
{prefix = 'rowclass'},
{prefix = 'rowstyle'},
{prefix = 'rowcellstyle'},
{prefix = 'class'}
}, 50)
preprocessSingleArg('headerclass')
preprocessSingleArg('headerstyle')
preprocessSingleArg('labelstyle')
preprocessSingleArg('datastyle')
preprocessSingleArg('below')
preprocessSingleArg('belowclass')
preprocessSingleArg('belowstyle')
preprocessSingleArg('name')
-- different behaviour for italics if blank or absent
args['italic title'] = origArgs['italic title']
preprocessSingleArg('decat')
preprocessSingleArg('templatestyles')
preprocessSingleArg('child templatestyles')
preprocessSingleArg('grandchild templatestyles')
end
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
function p.infobox(frame)
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame
end
parseDataParameters()
return _infobox()
end
-- For calling via #invoke within a template
function p.infoboxTemplate(frame)
origArgs = {}
for k,v in pairs(frame.args) do origArgs[k] = mw.text.trim(v) end
parseDataParameters()
return _infobox()
end
return p
kueb5p6xeoq6x7bxu2zyyl7pmxgesrs
153323
153322
2026-10-06T18:16:03Z
511KeV
8268
1 revision imported from [[:en:Module:Infobox]]: Needed locally
153322
Scribunto
text/plain
local p = {}
local args = {}
local origArgs = {}
local root
local empty_row_categories = {}
local category_in_empty_row_pattern = '%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]'
local has_rows = false
local yesno = require("Module:Yesno")
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = 'Plainlist/styles.css'
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = 'Hlist/styles.css'
}
}
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for _, arg in pairs(args_to_check) do
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then break end
end
end
end
end
local function isUntitledChildBox(sval)
return sval and ( sval:match( '^%s*<%s*[Tt][Rr]' ) or sval:match( '^%s*\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127%s*<%s*[Tt][Rr]' ) )
end
local function fixChildBoxes(sval, tt)
local function notempty( s ) return s and s:match( '%S' ) end
if notempty(sval) then
local marker = '<span class=special_infobox_marker>'
local s = sval
-- start moving templatestyles and categories inside of table rows
local slast = ''
while slast ~= s do
slast = s
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*%]%])', '%2%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)', '%2%1')
end
-- end moving templatestyles and categories inside of table rows
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
elseif k == #subcells then
local rowstyle = ' style="display:none"'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' ..
subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '<tr><' .. tt .. ' colspan=2>\n' ..
subcells[k] .. '</' .. tt .. '></tr>'
end
end
end
end
-- the next two lines add a newline at the end of lists for the PHP parser
-- [[Special:Diff/849054481]]
-- remove when [[:phab:T191516]] is fixed or OBE
s = mw.ustring.gsub(s, '([\r\n][%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:])', '\n%1')
s = mw.ustring.gsub(s, '^(%{%|)', '\n%1')
return s
else
return sval
end
end
-- Cleans empty tables
local function cleanInfobox()
root = tostring(root)
if has_rows == false then
root = mw.ustring.gsub(root, '<table[^<>]*>%s*</table>', '')
end
end
-- Returns the union of the values of two tables, as a sequence.
local function union(t1, t2)
local vals = {}
for k, v in pairs(t1) do
vals[v] = true
end
for k, v in pairs(t2) do
vals[v] = true
end
local ret = {}
for k, v in pairs(vals) do
table.insert(ret, k)
end
return ret
end
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local function getArgNums(prefix)
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
-- Adds a row to the infobox, with either a header cell
-- or a label/data cell combination.
local function addRow(rowArgs)
if rowArgs.header and rowArgs.header ~= '_BLANK_' then
has_rows = true
has_list_class({ rowArgs.rowclass, rowArgs.class, args.headerclass })
root
:tag('tr')
:addClass(rowArgs.rowclass)
:addClass( isUntitledChildBox( rowArgs.header ) and 'infobox-hiddenrow' or nil )
:cssText(rowArgs.rowstyle)
:tag('th')
:attr('colspan', '2')
:addClass('infobox-header')
:addClass(rowArgs.class)
:addClass(args.headerclass)
-- @deprecated next; target .infobox-<name> .infobox-header
:cssText(args.headerstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.header, 'th'))
if rowArgs.data and not yesno(args.decat) then
root:wikitext(
'[[Category:Pages using infobox templates with ignored data cells]]'
)
end
elseif rowArgs.data and rowArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then
has_rows = true
has_list_class({ rowArgs.rowclass, rowArgs.class })
local row = root:tag('tr')
row:addClass(rowArgs.rowclass)
row:cssText(rowArgs.rowstyle)
if rowArgs.label then
row
:tag('th')
:attr('scope', 'row')
:addClass('infobox-label')
-- @deprecated next; target .infobox-<name> .infobox-label
:cssText(args.labelstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(rowArgs.label)
:done()
else
row:addClass( isUntitledChildBox( rowArgs.data ) and 'infobox-hiddenrow' or nil )
end
local dataCell = row:tag('td')
dataCell
:attr('colspan', not rowArgs.label and '2' or nil)
:addClass(not rowArgs.label and 'infobox-full-data' or 'infobox-data')
:addClass(rowArgs.class)
-- @deprecated next; target .infobox-<name> .infobox(-full)-data
:cssText(rowArgs.datastyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.data, 'td'))
else
table.insert(empty_row_categories, rowArgs.data or '')
end
end
local function renderTitle()
if not args.title then return end
has_rows = true
has_list_class({args.titleclass})
root
:tag('caption')
:addClass('infobox-title')
:addClass(args.titleclass)
-- @deprecated next; target .infobox-<name> .infobox-title
:cssText(args.titlestyle)
:wikitext(args.title)
end
local function renderAboveRow()
if not args.above then return end
has_rows = true
has_list_class({ args.aboveclass })
root
:tag('tr')
:addClass( isUntitledChildBox( args.above ) and 'infobox-hiddenrow' or nil )
:tag('th')
:attr('colspan', '2')
:addClass('infobox-above')
:addClass(args.aboveclass)
-- @deprecated next; target .infobox-<name> .infobox-above
:cssText(args.abovestyle)
:wikitext(fixChildBoxes(args.above,'th'))
end
local function renderBelowRow()
if not args.below then return end
has_rows = true
has_list_class({ args.belowclass })
root
:tag('tr')
:addClass( isUntitledChildBox( args.below ) and 'infobox-hiddenrow' or nil )
:tag('td')
:attr('colspan', '2')
:addClass('infobox-below')
:addClass(args.belowclass)
-- @deprecated next; target .infobox-<name> .infobox-below
:cssText(args.belowstyle)
:wikitext(fixChildBoxes(args.below,'td'))
end
local function addSubheaderRow(subheaderArgs)
if subheaderArgs.data and
subheaderArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then
has_rows = true
has_list_class({ subheaderArgs.rowclass, subheaderArgs.class })
local row = root:tag('tr')
row:addClass(subheaderArgs.rowclass)
row:addClass( isUntitledChildBox( subheaderArgs.data ) and 'infobox-hiddenrow' or nil )
local dataCell = row:tag('td')
dataCell
:attr('colspan', '2')
:addClass('infobox-subheader')
:addClass(subheaderArgs.class)
:cssText(subheaderArgs.datastyle)
:cssText(subheaderArgs.rowcellstyle)
:wikitext(fixChildBoxes(subheaderArgs.data, 'td'))
else
table.insert(empty_row_categories, subheaderArgs.data or '')
end
end
local function renderSubheaders()
if args.subheader then
args.subheader1 = args.subheader
end
if args.subheaderrowclass then
args.subheaderrowclass1 = args.subheaderrowclass
end
local subheadernums = getArgNums('subheader')
for k, num in ipairs(subheadernums) do
addSubheaderRow({
data = args['subheader' .. tostring(num)],
-- @deprecated next; target .infobox-<name> .infobox-subheader
datastyle = args.subheaderstyle,
rowcellstyle = args['subheaderstyle' .. tostring(num)],
class = args.subheaderclass,
rowclass = args['subheaderrowclass' .. tostring(num)]
})
end
end
local function addImageRow(imageArgs)
if imageArgs.data and
imageArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then
has_rows = true
has_list_class({ imageArgs.rowclass, imageArgs.class })
local row = root:tag('tr')
row:addClass(imageArgs.rowclass)
row:addClass( isUntitledChildBox( imageArgs.data ) and 'infobox-hiddenrow' or nil )
local dataCell = row:tag('td')
dataCell
:attr('colspan', '2')
:addClass('infobox-image')
:addClass(imageArgs.class)
:cssText(imageArgs.datastyle)
:wikitext(fixChildBoxes(imageArgs.data, 'td'))
else
table.insert(empty_row_categories, imageArgs.data or '')
end
end
local function renderImages()
if args.image then
args.image1 = args.image
end
if args.caption then
args.caption1 = args.caption
end
local imagenums = getArgNums('image')
for k, num in ipairs(imagenums) do
local caption = args['caption' .. tostring(num)]
local data = mw.html.create():wikitext(args['image' .. tostring(num)])
if caption then
data
:tag('div')
:addClass('infobox-caption')
-- @deprecated next; target .infobox-<name> .infobox-caption
:cssText(args.captionstyle)
:wikitext(caption)
end
addImageRow({
data = tostring(data),
-- @deprecated next; target .infobox-<name> .infobox-image
datastyle = args.imagestyle,
class = args.imageclass,
rowclass = args['imagerowclass' .. tostring(num)]
})
end
end
-- When autoheaders are turned on, preprocesses the rows
local function preprocessRows()
if not args.autoheaders then return end
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
local lastheader
for k, num in ipairs(rownums) do
if args['header' .. tostring(num)] then
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
lastheader = num
elseif args['data' .. tostring(num)] and
args['data' .. tostring(num)]:gsub(
category_in_empty_row_pattern, ''
):match('^%S') then
local data = args['data' .. tostring(num)]
if data:gsub(category_in_empty_row_pattern, ''):match('%S') then
lastheader = nil
end
end
end
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
end
-- Gets the union of the header and data argument numbers,
-- and renders them all in order
local function renderRows()
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
for k, num in ipairs(rownums) do
addRow({
header = args['header' .. tostring(num)],
label = args['label' .. tostring(num)],
data = args['data' .. tostring(num)],
datastyle = args.datastyle,
class = args['class' .. tostring(num)],
rowclass = args['rowclass' .. tostring(num)],
-- @deprecated next; target .infobox-<name> rowclass
rowstyle = args['rowstyle' .. tostring(num)],
rowcellstyle = args['rowcellstyle' .. tostring(num)]
})
end
end
local function renderNavBar()
if not args.name then return end
has_rows = true
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('infobox-navbar')
:wikitext(require('Module:Navbar')._navbar{
args.name,
mini = 1,
})
end
local function renderItalicTitle()
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
root:wikitext(require('Module:Italic title')._main({}))
end
end
-- Categories in otherwise empty rows are collected in empty_row_categories.
-- This function adds them to the module output. It is not affected by
-- args.decat because this module should not prevent module-external categories
-- from rendering.
local function renderEmptyRowCategories()
for _, s in ipairs(empty_row_categories) do
root:wikitext(s)
end
end
-- Render tracking categories. args.decat == turns off tracking categories.
local function renderTrackingCategories()
if yesno(args.decat) then return end
if args.child == 'yes' then
if args.title then
root:wikitext(
'[[Category:Pages using embedded infobox templates with the title parameter]]'
)
end
elseif #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
root:wikitext('[[Category:Articles using infobox templates with no data rows]]')
end
end
--[=[
Loads the templatestyles for the infobox.
TODO: FINISH loading base templatestyles here rather than in
MediaWiki:Common.css. There are 4-5000 pages with 'raw' infobox tables.
See [[Mediawiki_talk:Common.css/to_do#Infobox]] and/or come help :).
When we do this we should clean up the inline CSS below too.
Will have to do some bizarre conversion category like with sidebar.
]=]
local function loadTemplateStyles()
local frame = mw.getCurrentFrame()
local hlist_templatestyles = ''
if lists.hlist_t.found then
hlist_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = lists.hlist_t.styles }
}
end
local plainlist_templatestyles = ''
if lists.plainlist_t.found then
plainlist_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = lists.plainlist_t.styles }
}
end
-- See function description
local base_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = 'Module:Infobox/styles.css' }
}
local templatestyles = ''
if args['templatestyles'] then
templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['templatestyles'] }
}
end
local child_templatestyles = ''
if args['child templatestyles'] then
child_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['child templatestyles'] }
}
end
local grandchild_templatestyles = ''
if args['grandchild templatestyles'] then
grandchild_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['grandchild templatestyles'] }
}
end
return table.concat({
-- hlist -> plainlist -> base is best-effort to preserve old Common.css ordering.
-- this ordering is not a guarantee because the rows of interest invoking
-- each class may not be on a specific page
hlist_templatestyles,
plainlist_templatestyles,
base_templatestyles,
templatestyles,
child_templatestyles,
grandchild_templatestyles
})
end
-- common functions between the child and non child cases
local function structure_infobox_common()
renderSubheaders()
renderImages()
preprocessRows()
renderRows()
renderBelowRow()
renderNavBar()
renderItalicTitle()
renderEmptyRowCategories()
renderTrackingCategories()
cleanInfobox()
end
-- Specify the overall layout of the infobox, with special settings if the
-- infobox is used as a 'child' inside another infobox.
local function _infobox()
if args.child ~= 'yes' then
root = mw.html.create('table')
root
:addClass(args.subbox == 'yes' and 'infobox-subbox' or 'infobox')
:addClass(args.bodyclass)
-- @deprecated next; target .infobox-<name>
:cssText(args.bodystyle)
has_list_class({ args.bodyclass })
renderTitle()
renderAboveRow()
else
root = mw.html.create()
root
:wikitext(args.title)
end
structure_infobox_common()
return loadTemplateStyles() .. root
end
-- If the argument exists and isn't blank, add it to the argument table.
-- Blank arguments are treated as nil to match the behaviour of ParserFunctions.
local function preprocessSingleArg(argName)
if origArgs[argName] and origArgs[argName] ~= '' then
args[argName] = origArgs[argName]
end
end
-- Assign the parameters with the given prefixes to the args table, in order, in
-- batches of the step size specified. This is to prevent references etc. from
-- appearing in the wrong order. The prefixTable should be an array containing
-- tables, each of which has two possible fields, a "prefix" string and a
-- "depend" table. The function always parses parameters containing the "prefix"
-- string, but only parses parameters in the "depend" table if the prefix
-- parameter is present and non-blank.
local function preprocessArgs(prefixTable, step)
if type(prefixTable) ~= 'table' then
error("Non-table value detected for the prefix table", 2)
end
if type(step) ~= 'number' then
error("Invalid step value detected", 2)
end
-- Get arguments without a number suffix, and check for bad input.
for i,v in ipairs(prefixTable) do
if type(v) ~= 'table' or type(v.prefix) ~= "string" or
(v.depend and type(v.depend) ~= 'table') then
error('Invalid input detected to preprocessArgs prefix table', 2)
end
preprocessSingleArg(v.prefix)
-- Only parse the depend parameter if the prefix parameter is present
-- and not blank.
if args[v.prefix] and v.depend then
for j, dependValue in ipairs(v.depend) do
if type(dependValue) ~= 'string' then
error('Invalid "depend" parameter value detected in preprocessArgs')
end
preprocessSingleArg(dependValue)
end
end
end
-- Get arguments with number suffixes.
local a = 1 -- Counter variable.
local moreArgumentsExist = true
while moreArgumentsExist == true do
moreArgumentsExist = false
for i = a, a + step - 1 do
for j,v in ipairs(prefixTable) do
local prefixArgName = v.prefix .. tostring(i)
if origArgs[prefixArgName] then
-- Do another loop if any arguments are found, even blank ones.
moreArgumentsExist = true
preprocessSingleArg(prefixArgName)
end
-- Process the depend table if the prefix argument is present
-- and not blank, or we are processing "prefix1" and "prefix" is
-- present and not blank, and if the depend table is present.
if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then
for j,dependValue in ipairs(v.depend) do
local dependArgName = dependValue .. tostring(i)
preprocessSingleArg(dependArgName)
end
end
end
end
a = a + step
end
end
-- Parse the data parameters in the same order that the old {{infobox}} did, so
-- that references etc. will display in the expected places. Parameters that
-- depend on another parameter are only processed if that parameter is present,
-- to avoid phantom references appearing in article reference lists.
local function parseDataParameters()
preprocessSingleArg('autoheaders')
preprocessSingleArg('child')
preprocessSingleArg('bodyclass')
preprocessSingleArg('subbox')
preprocessSingleArg('bodystyle')
preprocessSingleArg('title')
preprocessSingleArg('titleclass')
preprocessSingleArg('titlestyle')
preprocessSingleArg('above')
preprocessSingleArg('aboveclass')
preprocessSingleArg('abovestyle')
preprocessArgs({
{prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}}
}, 10)
preprocessSingleArg('subheaderstyle')
preprocessSingleArg('subheaderclass')
preprocessArgs({
{prefix = 'image', depend = {'caption', 'imagerowclass'}}
}, 10)
preprocessSingleArg('captionstyle')
preprocessSingleArg('imagestyle')
preprocessSingleArg('imageclass')
preprocessArgs({
{prefix = 'header'},
{prefix = 'data', depend = {'label'}},
{prefix = 'rowclass'},
{prefix = 'rowstyle'},
{prefix = 'rowcellstyle'},
{prefix = 'class'}
}, 50)
preprocessSingleArg('headerclass')
preprocessSingleArg('headerstyle')
preprocessSingleArg('labelstyle')
preprocessSingleArg('datastyle')
preprocessSingleArg('below')
preprocessSingleArg('belowclass')
preprocessSingleArg('belowstyle')
preprocessSingleArg('name')
-- different behaviour for italics if blank or absent
args['italic title'] = origArgs['italic title']
preprocessSingleArg('decat')
preprocessSingleArg('templatestyles')
preprocessSingleArg('child templatestyles')
preprocessSingleArg('grandchild templatestyles')
end
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
function p.infobox(frame)
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame
end
parseDataParameters()
return _infobox()
end
-- For calling via #invoke within a template
function p.infoboxTemplate(frame)
origArgs = {}
for k,v in pairs(frame.args) do origArgs[k] = mw.text.trim(v) end
parseDataParameters()
return _infobox()
end
return p
kueb5p6xeoq6x7bxu2zyyl7pmxgesrs
فرما:Main other
10
6467
153316
61764
2025-07-28T14:53:49Z
en>Pppery
0
Make substable per request
153316
wikitext
text/x-wiki
{{safesubst:<noinclude/>#switch:
<noinclude><!-- If no or empty "demospace" parameter then detect namespace --></noinclude>
{{safesubst:<noinclude/>#if:{{{demospace|}}}
| {{safesubst:<noinclude/>lc: {{{demospace}}} }} <noinclude><!-- Use lower case "demospace" --></noinclude>
| {{safesubst:<noinclude/>#ifeq:{{safesubst:<noinclude/>NAMESPACE}}|{{safesubst:<noinclude/>ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
aljcm6nr1pwk5dw5g13lyhxhplulpg5
153317
153316
2026-10-06T18:16:03Z
511KeV
8268
1 revision imported from [[:en:Template:Main_other]]: Needed locally
153316
wikitext
text/x-wiki
{{safesubst:<noinclude/>#switch:
<noinclude><!-- If no or empty "demospace" parameter then detect namespace --></noinclude>
{{safesubst:<noinclude/>#if:{{{demospace|}}}
| {{safesubst:<noinclude/>lc: {{{demospace}}} }} <noinclude><!-- Use lower case "demospace" --></noinclude>
| {{safesubst:<noinclude/>#ifeq:{{safesubst:<noinclude/>NAMESPACE}}|{{safesubst:<noinclude/>ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
aljcm6nr1pwk5dw5g13lyhxhplulpg5
Module:Check for unknown parameters
828
6474
153320
77642
2026-06-28T22:16:03Z
en>MSGJ
0
+pushpin_map
153320
Scribunto
text/plain
-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list
require ('strict');
local p = {}
local pushpin_map_params = {
'coordinates',
'pushpin_caption',
'pushpin_relief',
'pushpin_label',
'pushpin_label_position',
'pushpin_label_size',
'pushpin_map',
'pushpin_mark',
'pushpin_mark_size',
'pushpin_alt',
'pushpin_background',
'pushpin_map_size'
}
local mapframe_params = {
'coord',
'coordinates',
'id',
'qid',
'mapframe',
'mapframe-area_km2',
'mapframe-area_mi2',
'mapframe-caption',
'mapframe-coord',
'mapframe-coordinates',
'mapframe-custom',
'mapframe-frame-coord',
'mapframe-frame-coordinates',
'mapframe-frame-height',
'mapframe-frame-width',
'mapframe-geomask',
'mapframe-geomask-fill',
'mapframe-geomask-fill-opacity',
'mapframe-geomask-stroke-color',
'mapframe-geomask-stroke-colour',
'mapframe-geomask-stroke-width',
'mapframe-height',
'mapframe-id',
'mapframe-length_km',
'mapframe-length_mi',
'mapframe-line',
'mapframe-line-stroke-color',
'mapframe-line-stroke-colour',
'mapframe-marker',
'mapframe-marker-color',
'mapframe-marker-colour',
'mapframe-point',
'mapframe-population',
'mapframe-shape',
'mapframe-shape-fill',
'mapframe-shape-fill-opacity',
'mapframe-shape-stroke-color',
'mapframe-shape-stroke-colour',
'mapframe-stroke-color',
'mapframe-stroke-colour',
'mapframe-stroke-width',
'mapframe-switcher',
'mapframe-type',
'mapframe-width',
'mapframe-wikidata',
'mapframe-zoom'
}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and s:match('%S')
end
local function clean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
local pos, truncated
local function truncate(text)
if truncated then
return ''
end
if mw.ustring.len(text) > 25 then
truncated = true
text = mw.ustring.sub(text, 1, 25) .. '...'
end
return mw.text.nowiki(text)
end
local parts = {}
for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
pos = remainder
table.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')
end
table.insert(parts, truncate(text:sub(pos or 1)))
return table.concat(parts)
end
function p._check(args, pargs)
if type(args) ~= "table" or type(pargs) ~= "table" then
-- TODO: error handling
return
end
-- create the list of known args, regular expressions, and the return string
local knownargs = {}
if isnotempty(args['mapframe_args']) then
for _, v in ipairs(mapframe_params) do
knownargs[v] = 1
end
end
if isnotempty(args['pushpin_map_args']) then
for _, v in ipairs(pushpin_map_params) do
knownargs[v] = 1
end
end
local regexps = {}
for k, v in pairs(args) do
if type(k) == 'number' then
v = trim(v)
knownargs[v] = 1
elseif k:find('^regexp[1-9][0-9]*$') then
table.insert(regexps, '^' .. v .. '$')
end
end
-- loop over the parent args, and make sure they are on the list
local ignoreblank = isnotempty(args['ignoreblank'])
local showblankpos = isnotempty(args['showblankpositional'])
local values = {}
for k, v in pairs(pargs) do
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
break
end
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
table.insert(values, clean(k))
end
elseif type(k) == 'number' and knownargs[tostring(k)] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(tostring(k), regexp) then
knownflag = true
break
end
end
if not knownflag and ( showblankpos or isnotempty(v) ) then
table.insert(values, k .. ' = ' .. clean(v))
end
end
end
-- add results to the output tables
local res = {}
if #values > 0 then
local unknown_text = args['unknown'] or 'Found _VALUE_, '
if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then
local preview_text = args['preview']
if isnotempty(preview_text) then
preview_text = require('Module:If preview')._warning({preview_text})
elseif preview_text == nil then
preview_text = unknown_text
end
unknown_text = preview_text
end
for _, v in pairs(values) do
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
if v == '' then v = ' ' end
-- avoid error with v = 'example%2' ("invalid capture index")
local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})
table.insert(res, r)
end
end
return table.concat(res)
end
function p.check(frame)
local args = frame.args
local pargs = frame:getParent().args
return p._check(args, pargs)
end
return p
kohqf9fxewyce9gq1kljbz0180u8sl1
153321
153320
2026-10-06T18:16:03Z
511KeV
8268
1 revision imported from [[:en:Module:Check_for_unknown_parameters]]: Needed locally
153320
Scribunto
text/plain
-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list
require ('strict');
local p = {}
local pushpin_map_params = {
'coordinates',
'pushpin_caption',
'pushpin_relief',
'pushpin_label',
'pushpin_label_position',
'pushpin_label_size',
'pushpin_map',
'pushpin_mark',
'pushpin_mark_size',
'pushpin_alt',
'pushpin_background',
'pushpin_map_size'
}
local mapframe_params = {
'coord',
'coordinates',
'id',
'qid',
'mapframe',
'mapframe-area_km2',
'mapframe-area_mi2',
'mapframe-caption',
'mapframe-coord',
'mapframe-coordinates',
'mapframe-custom',
'mapframe-frame-coord',
'mapframe-frame-coordinates',
'mapframe-frame-height',
'mapframe-frame-width',
'mapframe-geomask',
'mapframe-geomask-fill',
'mapframe-geomask-fill-opacity',
'mapframe-geomask-stroke-color',
'mapframe-geomask-stroke-colour',
'mapframe-geomask-stroke-width',
'mapframe-height',
'mapframe-id',
'mapframe-length_km',
'mapframe-length_mi',
'mapframe-line',
'mapframe-line-stroke-color',
'mapframe-line-stroke-colour',
'mapframe-marker',
'mapframe-marker-color',
'mapframe-marker-colour',
'mapframe-point',
'mapframe-population',
'mapframe-shape',
'mapframe-shape-fill',
'mapframe-shape-fill-opacity',
'mapframe-shape-stroke-color',
'mapframe-shape-stroke-colour',
'mapframe-stroke-color',
'mapframe-stroke-colour',
'mapframe-stroke-width',
'mapframe-switcher',
'mapframe-type',
'mapframe-width',
'mapframe-wikidata',
'mapframe-zoom'
}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and s:match('%S')
end
local function clean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
local pos, truncated
local function truncate(text)
if truncated then
return ''
end
if mw.ustring.len(text) > 25 then
truncated = true
text = mw.ustring.sub(text, 1, 25) .. '...'
end
return mw.text.nowiki(text)
end
local parts = {}
for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
pos = remainder
table.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')
end
table.insert(parts, truncate(text:sub(pos or 1)))
return table.concat(parts)
end
function p._check(args, pargs)
if type(args) ~= "table" or type(pargs) ~= "table" then
-- TODO: error handling
return
end
-- create the list of known args, regular expressions, and the return string
local knownargs = {}
if isnotempty(args['mapframe_args']) then
for _, v in ipairs(mapframe_params) do
knownargs[v] = 1
end
end
if isnotempty(args['pushpin_map_args']) then
for _, v in ipairs(pushpin_map_params) do
knownargs[v] = 1
end
end
local regexps = {}
for k, v in pairs(args) do
if type(k) == 'number' then
v = trim(v)
knownargs[v] = 1
elseif k:find('^regexp[1-9][0-9]*$') then
table.insert(regexps, '^' .. v .. '$')
end
end
-- loop over the parent args, and make sure they are on the list
local ignoreblank = isnotempty(args['ignoreblank'])
local showblankpos = isnotempty(args['showblankpositional'])
local values = {}
for k, v in pairs(pargs) do
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
break
end
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
table.insert(values, clean(k))
end
elseif type(k) == 'number' and knownargs[tostring(k)] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(tostring(k), regexp) then
knownflag = true
break
end
end
if not knownflag and ( showblankpos or isnotempty(v) ) then
table.insert(values, k .. ' = ' .. clean(v))
end
end
end
-- add results to the output tables
local res = {}
if #values > 0 then
local unknown_text = args['unknown'] or 'Found _VALUE_, '
if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then
local preview_text = args['preview']
if isnotempty(preview_text) then
preview_text = require('Module:If preview')._warning({preview_text})
elseif preview_text == nil then
preview_text = unknown_text
end
unknown_text = preview_text
end
for _, v in pairs(values) do
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
if v == '' then v = ' ' end
-- avoid error with v = 'example%2' ("invalid capture index")
local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})
table.insert(res, r)
end
end
return table.concat(res)
end
function p.check(frame)
local args = frame.args
local pargs = frame:getParent().args
return p._check(args, pargs)
end
return p
kohqf9fxewyce9gq1kljbz0180u8sl1
رُکُن:511KeV
2
6535
153299
152784
2026-10-06T18:11:14Z
511KeV
8268
/* */
153299
wikitext
text/x-wiki
{{Template:Year in various calendars}}
{{ImageStackPopup
|start = 177
|list = User:511KeV/Appendicitis_CT#medical
|caption = [[سی ٹی سکین]] ہاون پرٕ أنٛدرَم
|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}}
{{رُکُن:Uhaas bot/last7}}
"اگرچہ کیٚنٛہہ پاسن منٛز ہیٚکہِ سٲنؠ مہارت محدوٗد ٲسِتھ، مَگر یمہٕ کَتھ باتھ سٟتؠ گوو اسہٕ منٛز تحریکس اندر ملکیت تہٕ اہمیتُک احساس پٲدٕ ، یمہٕ سٟتؠ یتہٕ صحیٖح معنن منٛز قدر ہُنٛداحساس چھُ گژھان ۔"
r8ae19gel086li2xr8ser3sytssgvma
153304
153299
2026-10-06T18:12:48Z
511KeV
8268
/* */
153304
wikitext
text/x-wiki
{{Year in various calendars}}
{{ImageStackPopup
|start = 177
|list = User:511KeV/Appendicitis_CT#medical
|caption = [[سی ٹی سکین]] ہاون پرٕ أنٛدرَم
|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}}
{{رُکُن:Uhaas bot/last7}}
"اگرچہ کیٚنٛہہ پاسن منٛز ہیٚکہِ سٲنؠ مہارت محدوٗد ٲسِتھ، مَگر یمہٕ کَتھ باتھ سٟتؠ گوو اسہٕ منٛز تحریکس اندر ملکیت تہٕ اہمیتُک احساس پٲدٕ ، یمہٕ سٟتؠ یتہٕ صحیٖح معنن منٛز قدر ہُنٛداحساس چھُ گژھان ۔"
74a3fdtnmds2jhhvklvnk22v9khi4n6
Module:Effective protection level
828
6659
153326
85515
2025-09-25T02:35:06Z
en>Pppery
0
Handle gadget page
153326
Scribunto
text/plain
local p = {}
-- Returns the permission required to perform a given action on a given title.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local level = mw.ext.FlaggedRevs.getStabilitySettings(title)
level = level and level.autoreview
if level == 'review' then
return 'reviewer'
elseif level ~= '' then
return level
else
return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review
end
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' and action ~= 'undelete' then
error( 'First parameter must be one of edit, move, create, upload, undelete, autoreview', 2 )
end
if title.namespace == 8 then -- MediaWiki namespace
if title.text:sub(-3) == '.js' or title.text:sub(-4) == '.css' or title.contentModel == 'javascript' or title.contentModel == 'css' then -- site JS or CSS page
return 'interfaceadmin'
elseif title.baseText == "Gadgets-definition" then
return 'interfaceadmin'
else -- any non-JS/CSS MediaWiki page
return 'sysop'
end
elseif title.namespace == 2 and title.isSubpage then
if title.contentModel == 'javascript' or title.contentModel == 'css' then -- user JS or CSS page
return 'interfaceadmin'
elseif title.contentModel == 'json' then -- user JSON page
return 'sysop'
end
end
if action == 'undelete' then
return 'sysop'
end
local level = title.protectionLevels[action] and title.protectionLevels[action][1]
if level == 'sysop' or level == 'editprotected' then
return 'sysop'
elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page
return 'sysop'
elseif level == 'templateeditor' then
return 'templateeditor'
elseif action == 'move' then
local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.
if blacklistentry and not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif title.namespace == 6 then
return 'filemover'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
end
local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)
if blacklistentry then
if not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason
return 'autoconfirmed'
elseif level then
return level
elseif action == 'upload' then
return 'autoconfirmed'
elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts
if title.namespace == 0 then
return 'autoconfirmed' -- Per [[WP:ACPERM]], you need to be autoconfirmed to create pages in mainspace
end
return 'user'
else
return '*'
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
nacj9lsnya0896kpkyuy2onbc6mm6xw
153327
153326
2026-10-06T18:16:03Z
511KeV
8268
1 revision imported from [[:en:Module:Effective_protection_level]]: Needed locally
153326
Scribunto
text/plain
local p = {}
-- Returns the permission required to perform a given action on a given title.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local level = mw.ext.FlaggedRevs.getStabilitySettings(title)
level = level and level.autoreview
if level == 'review' then
return 'reviewer'
elseif level ~= '' then
return level
else
return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review
end
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' and action ~= 'undelete' then
error( 'First parameter must be one of edit, move, create, upload, undelete, autoreview', 2 )
end
if title.namespace == 8 then -- MediaWiki namespace
if title.text:sub(-3) == '.js' or title.text:sub(-4) == '.css' or title.contentModel == 'javascript' or title.contentModel == 'css' then -- site JS or CSS page
return 'interfaceadmin'
elseif title.baseText == "Gadgets-definition" then
return 'interfaceadmin'
else -- any non-JS/CSS MediaWiki page
return 'sysop'
end
elseif title.namespace == 2 and title.isSubpage then
if title.contentModel == 'javascript' or title.contentModel == 'css' then -- user JS or CSS page
return 'interfaceadmin'
elseif title.contentModel == 'json' then -- user JSON page
return 'sysop'
end
end
if action == 'undelete' then
return 'sysop'
end
local level = title.protectionLevels[action] and title.protectionLevels[action][1]
if level == 'sysop' or level == 'editprotected' then
return 'sysop'
elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page
return 'sysop'
elseif level == 'templateeditor' then
return 'templateeditor'
elseif action == 'move' then
local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.
if blacklistentry and not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif title.namespace == 6 then
return 'filemover'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
end
local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)
if blacklistentry then
if not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason
return 'autoconfirmed'
elseif level then
return level
elseif action == 'upload' then
return 'autoconfirmed'
elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts
if title.namespace == 0 then
return 'autoconfirmed' -- Per [[WP:ACPERM]], you need to be autoconfirmed to create pages in mainspace
end
return 'user'
else
return '*'
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
nacj9lsnya0896kpkyuy2onbc6mm6xw
Module:High-use
828
6661
153344
85394
2026-07-30T21:52:39Z
en>Andrybak
0
Set `approx_num_total_pages = 66000000` (66 million). [[Special:Statistics]] shows 65,988,696 right now. We don't need a lot of precision here. Next update can be at 67 million.
153344
Scribunto
text/plain
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
local _fetch = require('Module:Transclusion_count')._fetch -- _fetch looks at the 'demo' argument
local yesno = require('Module:Yesno')
local lang_obj = mw.getContentLanguage() -- this here because the language object is used multiple places in the module
local large_count_cutoff = 100000
local approx_num_total_pages = 66000000
local user_subpage_info_page = 'Wikipedia:User pages#SUB'
local sandbox_module_page = 'Module:Sandbox'
local system_messages_cat = 'Pages used in system messages needing protection'
local sandbox_word = 'sandbox'
local testcases_word = 'testcases'
local doc_word = 'doc'
local function count_from_args(args)
if tonumber(args.count) then -- check if function has already been used
return tonumber(args.count) -- early exit if so
end
local count
if yesno(args['fetch']) ~= false then
count = _fetch(args) -- fetch transclusion count
end
-- use explicitly-provided count when fetch fails
if count == nil and args[1] ~= nil and args[1] ~= '' then
-- convert local language number string to a number understandable by Lua
count = mw.ustring.gsub(args[1], '+$', '')
count = lang_obj:parseFormattedNumber(args[1])
end
-- in case someone writes a non-positive number
if count and count > 0 then
return count
end
return nil
end
-- Actions if there is a large (greater than or equal to 100,000) transclusion count
local function risk_boolean(args)
if args.risk == true or args.risk == false then
return args.risk
elseif args[1] == 'risk' then
return true
else
local count = count_from_args(args)
if count and count >= large_count_cutoff then
return true
end
end
return false
end
-- function retained for backwards compatibility
function p._risk(args)
return risk_boolean(args) and 'risk' or ''
end
-- function retained for backwards compatibility
function p.risk(frame)
return p._risk(getArgs(frame))
end
-- count and no_percent arguments retained for backwards compatibility
function p._num(args, count, no_percent)
if count == nil then
count = count_from_args(args)
end
args.count = count
args.risk = risk_boolean(args)
-- Build output string
local return_value = ''
if args.count == nil and args.risk then
return 'a very large number of'
elseif args.count == nil then
return 'many'
else
-- Use 2 significant figures for smaller numbers and 3 for larger ones
local sigfig = 2
if args.count >= large_count_cutoff then
sigfig = 3
end
-- Prepare to round to appropriate number of sigfigs
local f = math.floor(math.log10(args.count)) - sigfig + 1
-- Round and insert 'approximately' or '+' when appropriate
if yesno(args[2]) == true or (type(args[1]) == 'string' and (mw.ustring.sub(args[1], -1) == '+')) then
-- Round down
return_value = string.format('%s+', lang_obj:formatNum(math.floor( (args.count / 10^(f)) ) * (10^(f))) )
else
-- Round to nearest
return_value = string.format('approximately %s', lang_obj:formatNum(math.floor( (args.count / 10^(f)) + 0.5) * (10^(f))) )
end
-- Insert percentage of pages if that is likely to be >= 1% and when |no-percent= not set to yes
no_percent = yesno(no_percent or args['no-percent'])
if args.count and args.count >= approx_num_total_pages/100 and not no_percent then
local num_total_pages = mw.getCurrentFrame():callParserFunction('NUMBEROFPAGES', 'R')
local total_percent = math.floor( ( ( args.count/num_total_pages ) * 100) + 0.5)
if total_percent >= 1 then
return_value = string.format('%s pages, or roughly %s%% of all', return_value, total_percent)
end
end
end
return return_value
end
-- used by [[Template:Stub documentation]] and other pages
-- count argument retained for backwards compatibility
function p.num(frame, count)
return p._num(getArgs(frame), count)
end
-- count argument retained for backwards compatibility
function p._text(args, count)
--[=[
Only show the information about how this template gets updated
if someone is actually editing the page and maybe trying to update the count.
]=]
local bot_text = (mw.getCurrentFrame():preprocess('{{REVISIONID}}') == '') and ("\n\n----\n'''Preview message''':" .. ' Transclusion count updated automatically ([[Template:High-use/doc#Technical details|see documentation]]).') or ''
if count == nil then
count = count_from_args(args)
end
args.count = count
args.risk = risk_boolean(args)
-- trim /doc, /sandbox and /testcases
local title = args.title or (args.demo and args.demo ~= '' and mw.title.new(args.demo, 'Template')) or mw.title.getCurrentTitle()
if title.subpageText == doc_word or title.subpageText == sandbox_word or title.subpageText == testcases_word then
title = title.basePageTitle
end
-- use /testcases of base template
local testcases_page = mw.title.new(title.prefixedText .. '/' .. testcases_word)
-- exists is expensive
while testcases_page.basePageTitle.isSubpage and not testcases_page.exists do
testcases_page = mw.title.new(testcases_page.basePageTitle.basePageTitle.prefixedText .. '/' .. testcases_word)
end
local systemMessages = (args['system'] or '') ~= ''
-- This retrieves the project URL automatically to simplify localization.
local templateCount = ('on [https://linkcount.toolforge.org/?project=%s&page=%s#transclusions %s pages]'):format(
title:fullUrl():gsub('//(.-)/.*', '%1'),
mw.uri.encode(title.fullText), p._num(args))
local used_on_text = "'''This " .. (title:inNamespace('Module') and 'Lua module' or 'template') .. ' is used '
if systemMessages then
used_on_text = used_on_text .. args['system'] ..
((args.count and args.count > 2000) and ("''', and " .. templateCount) or ("'''"))
else
used_on_text = used_on_text .. templateCount .. "'''"
end
local sandbox_text = ('%s\'s [[%s/sandbox|/sandbox]] or [[%s|/testcases]] subpages, or in your own [[%s]]. '):format(
title:inNamespace('Module') and 'module' or 'template',
title.fullText,
testcases_page.fullText,
title:inNamespace('Module') and (sandbox_module_page .. '|module sandbox') or (user_subpage_info_page .. '|user subpage')
)
local infoArg = args['info'] ~= '' and args['info']
if (systemMessages or args.risk) then
local info = '.'
if systemMessages then
info = info .. '<br />Changes to it can cause immediate changes to the ' .. mw.site.namespaces.Project.name .. ' user interface.'
end
if infoArg then
info = info .. '<br />' .. infoArg
end
sandbox_text = info .. '<br /> To avoid major disruption' ..
(args.count and args.count >= large_count_cutoff and ' and server load' or '') .. -- should this use args.risk?
', any changes should be tested in the ' .. sandbox_text ..
'The tested changes can be added to this page in a single edit. '
else
sandbox_text = (infoArg and ('.<br />' .. infoArg .. ' C') or ' and c') ..
'hanges may be widely noticed. Test changes in the ' .. sandbox_text
end
local discussion_text = systemMessages and 'Please discuss changes ' or 'Consider discussing changes '
if args[2] ~= nil and args[2] ~= '' and yesno(args[2]) == nil then
discussion_text = string.format('%sat [[%s]]', discussion_text, args[2])
else
discussion_text = string.format('%son the [[%s|talk page]]', discussion_text, title.talkPageTitle.fullText)
end
return used_on_text .. sandbox_text .. discussion_text .. ' before implementing them.' .. bot_text
end
-- used by [[Template:R from high-use template]]
-- count argument retained for backwards compatibility
function p.text(frame, count)
return p._text(getArgs(frame), count)
end
-- nocat argument retained for backwards compatibility
function p._main(args, nocat)
args.count = count_from_args(args)
args.risk = risk_boolean(args)
args.title = (args.demo and args.demo ~= '' and mw.title.new(args.demo, 'Template')) or mw.title.getCurrentTitle()
local image = 'Ambox warning yellow.svg'
local type_param = 'style'
local epilogue = ''
if args['system'] and args['system'] ~= '' then
image = 'Ambox important.svg'
type_param = 'content'
if yesno(nocat or args['nocat']) ~= true and not args.title.isRedirect then
local protection_action = (args.title:inNamespace('File') and 'upload') or 'edit'
local protection_level = require('Module:Effective protection level')._main(protection_action, args.title.fullText)
if protection_level ~= 'sysop' and protection_level ~= 'templateeditor' and protection_level ~= 'interfaceadmin' then
epilogue = mw.getCurrentFrame():expandTemplate {
title = 'sandbox other',
args = {
[2] = '[[Category:' .. system_messages_cat .. ']]'
}
}
end
end
elseif args.risk then
image = 'Ambox warning orange.svg'
type_param = 'content'
end
image = '[[File:' .. image .. '|40px|alt=Warning|link=]]'
if args['form'] == 'editnotice' then
return mw.getCurrentFrame():expandTemplate{
title = 'editnotice',
args = {
['image'] = image,
['text'] = p._text(args),
['expiry'] = (args['expiry'] or '')
}
} .. epilogue
else
return require('Module:Message box').main('ombox', {
type = type_param,
image = image,
text = p._text(args),
expiry = (args['expiry'] or '')
}) .. epilogue
end
end
function p.main(frame)
return p._main(getArgs(frame))
end
return p
qkt57qdst1ol2kbo88d4jxkr0ibiuy4
153345
152863
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Module:High-use]]: Needed locally
152863
Scribunto
text/plain
local p = {}
-- _fetch looks at the "demo" argument.
local _fetch = require('Module:Transclusion_count').fetch
local yesno = require('Module:Yesno')
function p.num(frame, count)
if count == nil then
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
end
-- Build output string
local return_value = ""
if count == nil then
if frame.args[1] == "risk" then
return "a very large number of"
else
return "many"
end
else
-- Use 2 significant figures for smaller numbers and 3 for larger ones
local sigfig = 2
if count >= 10000 then
sigfig = 3
end
-- Prepare to round to appropriate number of sigfigs
local f = math.floor(math.log10(count)) - sigfig + 1
-- Round and insert "approximately" or "+" when appropriate
if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then
-- Round down
return_value = string.format("%s+", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) ) * (10^(f))) )
else
-- Round to nearest
return_value = string.format("لگہٕ بگہٕ %s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) )
end
-- Insert percentage of pages if that is likely to be >= 1% and when |no-percent= not set to yes
if count and count > 2500 and not yesno (frame:getParent().args['no-percent']) then
local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5)
if percent >= 1 then
return_value = string.format("%s صَفن, یا یا تمام صفن ہند %s%% پؠٹھ", return_value, percent)
end
end
end
return return_value
end
-- Actions if there is a large (greater than or equal to 10000) transclusion count
function p.risk(frame)
if frame.args[1] == "risk" then
return "risk"
else
local count = _fetch(frame)
if count and count >= 10000 then
return "risk"
end
end
return ""
end
function p.text(frame, count)
-- Only show the information about how this template gets updated if someone
-- is actually editing the page and maybe trying to update the count.
local bot_text = (frame:preprocess("{{REVISIONID}}") == "") and "\n\n----\n'''Preview message''': Transclusion count updated automatically ([[Template:High-use/doc#Technical details|see documentation]])." or ''
if count == nil then
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
end
local title = mw.title.getCurrentTitle()
if title.subpageText == "doc" or title.subpageText == "sandbox" then
title = title.basePageTitle
end
local systemMessages = frame.args['system']
if frame.args['system'] == '' then
systemMessages = nil
end
-- This retrieves the project URL automatically to simplify localiation.
local templateCount = ('بییہ [https://linkcount.toolforge.org/index.php?project=%s&page=%s %s]'):format(
mw.title.getCurrentTitle():fullUrl():gsub('//(.-)/.*', '%1'),
mw.uri.encode(title.fullText), p.num(frame, count))
local used_on_text = "'''یہِ " .. (mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "فرما") .. ' چھُ اِستِمال ';
if systemMessages then
used_on_text = used_on_text .. systemMessages ..
((count and count > 2000) and ("''', تہِ " .. templateCount) or ("'''"))
else
used_on_text = used_on_text .. templateCount .. "'''"
end
local sandbox_text = ("%s کِس [[%s/سینڈ بکس|/سیند بکس]] یا [[%s/ٹؠسٹ|/ٹؠسٹ]] بچہٕ صفسس، یا پننِس [[%s]]۔ "):format(
(mw.title.getCurrentTitle().namespace == 828 and "ماڈیول" or "فرما"),
title.fullText, title.fullText,
mw.title.getCurrentTitle().namespace == 828 and "Module:Sandbox|module sandbox" or "Wikipedia:User pages#SUB|رُکن بَچہٕ صفس"
)
local infoArg = frame.args["info"] ~= "" and frame.args["info"]
if (systemMessages or frame.args[1] == "risk" or (count and count >= 10000) ) then
local info = systemMessages and '.<br/>یہِ بَدلاونہٕ سٍتۍ ہیکہِ وِکیٖپیٖڈیاہَس مَنٛز بَدلاو گَژھِتھ۔' or '.'
if infoArg then
info = info .. "<br />" .. infoArg
end
sandbox_text = info .. '<br /> بٔڑۍ مسلہٕ نِش بچنہٕ خٲطرٕ' ..
(count and count >= 10000 and ' تہٕ سرور لوڈ' or '') ..
', کانٛہہ تہِ تبدیلی گژھِ آزماونہٕ یِنۍ ' .. sandbox_text ..
'تُہۍ ہیکِو یِم تبدیلیہٕ یِم تُہۍ ٹیسٹ کران چھِو یِم یَتھ پیجَس منٛز اَکی ساتہٕ شٲمِل کٔرِتھ۔ '
else
sandbox_text = (infoArg and ('.<br />' .. infoArg .. ' C') or ' and c') ..
'hanges may be widely noticed. Test changes in the ' .. sandbox_text
end
local discussion_text = systemMessages and 'مہربٲنی کٔرِتھ کٔرِو تبدیلین مُتلِق کتھ باتھ ' or 'تبدیلین پیٹھ کتھ کرنہٕ مُتعلِق سونچِو '
if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then
discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"])
else
discussion_text = string.format("%s [[%s|بَحث صَفس]] پؠٹھ", discussion_text, title.talkPageTitle.fullText )
end
return used_on_text .. sandbox_text .. discussion_text .. " لاگو کَرنہِ برونہہ." .. bot_text
end
function p.main(frame)
local count = nil
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]"
local type_param = "style"
local epilogue = ''
if frame.args['system'] and frame.args['system'] ~= '' then
image = "[[File:Ambox important.svg|40px|alt=Warning|link=]]"
type_param = "content"
local nocat = frame:getParent().args['nocat'] or frame.args['nocat']
local categorise = (nocat == '' or not yesno(nocat))
if categorise and not mw.title.getCurrentTitle().isRedirect then
epilogue = frame:preprocess('{{Sandbox other||{{#switch:{{#invoke:Effective protection level|{{#switch:{{NAMESPACE}}|File=upload|#default=edit}}|{{FULLPAGENAME}}}}|sysop|templateeditor|interfaceadmin=|#default=[[Category:Pages used in system messages needing protection]]}}}}')
end
elseif (frame.args[1] == "risk" or (count and count >= 10000)) then
image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]"
type_param = "content"
end
if frame.args["form"] == "editnotice" then
return frame:expandTemplate{
title = 'editnotice',
args = {
["image"] = image,
["text"] = p.text(frame, count),
["expiry"] = (frame.args["expiry"] or "")
}
} .. epilogue
else
return require('Module:Message box').main('ombox', {
type = type_param,
image = image,
text = p.text(frame, count),
expiry = (frame.args["expiry"] or "")
}) .. epilogue
end
end
return p
eqekg0uurzbih0x2t8fmwcx76zzcpc9
Module:Protection banner
828
6663
153328
77525
2026-08-30T17:20:50Z
en>Primefac
0
Primefac moved page [[Module:Protection banner]] to [[Module:Protected page]]: update following [[Special:Permalink/1372151970#Requested_move_16_August_2026|RM]]
153328
Scribunto
text/plain
return require [[Module:Protected page]]
szdce6cijto5md3vglrgsqmjww4leo2
153329
153328
2026-10-06T18:16:03Z
511KeV
8268
1 revision imported from [[:en:Module:Protection_banner]]: Needed locally
153328
Scribunto
text/plain
return require [[Module:Protected page]]
szdce6cijto5md3vglrgsqmjww4leo2
Module:Transclusion count
828
6665
153346
83541
2025-08-11T22:36:46Z
en>Pppery
0
Add protection level for top 400 rows
153346
Scribunto
text/plain
local p = {}
function p._fetch(args)
local template = nil
local return_value = nil
-- Use demo parameter if it exists, otherwise use current template name
local namespace = mw.title.getCurrentTitle().namespace
if args["demo"] and args["demo"] ~= "" then
template = mw.ustring.gsub(args["demo"],"^[Tt]emplate:","")
elseif namespace == 10 then -- Template namespace
template = mw.title.getCurrentTitle().text
elseif namespace == 828 then -- Module namespace
template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text)
end
-- If in template or module namespace, look up count in /data
if template ~= nil then
namespace = mw.title.new(template, "Template").namespace
if namespace == 10 or namespace == 828 then
template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end
template = mw.ustring.gsub(template, "/sandbox$", "") -- strip /sandbox from end
local index = mw.ustring.sub(mw.title.new(template).text,1,1)
local status, data = pcall(function ()
return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other")))
end)
if status then
return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")])
end
end
end
-- If database value doesn't exist, use value passed to template
if return_value == nil and args[1] ~= nil then
local arg1=mw.ustring.match(args[1], '[%d,]+')
if arg1 and arg1 ~= '' then
return_value = tonumber(mw.getCurrentFrame():callParserFunction('formatnum', arg1, 'R'))
end
end
return return_value
end
function p.fetch(frame)
return p._fetch(frame.args)
end
-- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]
function p.tabulate()
local list = {}
for i = 65, 91 do
local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))
for name, count in pairs(data) do
local title = mw.title.new(name, "Template")
table.insert(list, {title, count})
end
end
table.sort(list, function(a, b)
return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2])
end)
local lang = mw.getContentLanguage();
for i = 1, #list do
local protLevel = ""
local title = list[i][1]
if i < 400 then
-- Stop at 400 to avoid breaching the expensive parser function call limit
protLevel = title.protectionLevels.edit[1] or "(unprotected)"
end
list[i] = ('|-\n| %d || [[%s]] || %s || %s \n'):format(i, title.fullText:gsub('_', ' '), lang:formatNum(list[i][2]), protLevel)
end
return table.concat(list)
end
return p
gbl6ss0edudar6ja2191jv0zv8o86gv
153347
153346
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Module:Transclusion_count]]: Needed locally
153346
Scribunto
text/plain
local p = {}
function p._fetch(args)
local template = nil
local return_value = nil
-- Use demo parameter if it exists, otherwise use current template name
local namespace = mw.title.getCurrentTitle().namespace
if args["demo"] and args["demo"] ~= "" then
template = mw.ustring.gsub(args["demo"],"^[Tt]emplate:","")
elseif namespace == 10 then -- Template namespace
template = mw.title.getCurrentTitle().text
elseif namespace == 828 then -- Module namespace
template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text)
end
-- If in template or module namespace, look up count in /data
if template ~= nil then
namespace = mw.title.new(template, "Template").namespace
if namespace == 10 or namespace == 828 then
template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end
template = mw.ustring.gsub(template, "/sandbox$", "") -- strip /sandbox from end
local index = mw.ustring.sub(mw.title.new(template).text,1,1)
local status, data = pcall(function ()
return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other")))
end)
if status then
return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")])
end
end
end
-- If database value doesn't exist, use value passed to template
if return_value == nil and args[1] ~= nil then
local arg1=mw.ustring.match(args[1], '[%d,]+')
if arg1 and arg1 ~= '' then
return_value = tonumber(mw.getCurrentFrame():callParserFunction('formatnum', arg1, 'R'))
end
end
return return_value
end
function p.fetch(frame)
return p._fetch(frame.args)
end
-- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]
function p.tabulate()
local list = {}
for i = 65, 91 do
local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))
for name, count in pairs(data) do
local title = mw.title.new(name, "Template")
table.insert(list, {title, count})
end
end
table.sort(list, function(a, b)
return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2])
end)
local lang = mw.getContentLanguage();
for i = 1, #list do
local protLevel = ""
local title = list[i][1]
if i < 400 then
-- Stop at 400 to avoid breaching the expensive parser function call limit
protLevel = title.protectionLevels.edit[1] or "(unprotected)"
end
list[i] = ('|-\n| %d || [[%s]] || %s || %s \n'):format(i, title.fullText:gsub('_', ' '), lang:formatNum(list[i][2]), protLevel)
end
return table.concat(list)
end
return p
gbl6ss0edudar6ja2191jv0zv8o86gv
فرما:Module rating
10
6671
153362
77768
2025-09-10T15:49:37Z
en>Waddie96
0
Modifying [[WP:RCAT|redirect categories]] using [[User:Wugapodes/Capricorn|Capricorn ♑]]
153362
wikitext
text/x-wiki
#REDIRECT [[Template:Template rating]]
{{Redirect category shell|
{{R from merge}}
{{R mentioned in hatnote}}
}}
1foept7zoaam5vjrfz3pyntp5xbpjv4
153363
153362
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Template:Module_rating]]: Needed locally
153362
wikitext
text/x-wiki
#REDIRECT [[Template:Template rating]]
{{Redirect category shell|
{{R from merge}}
{{R mentioned in hatnote}}
}}
1foept7zoaam5vjrfz3pyntp5xbpjv4
Module:Transclusion count/data/P
828
6683
153423
153153
2026-10-07T03:20:44Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153423
Scribunto
text/plain
return {
["P1"] = 140,
["P2"] = 130,
["PAGENAMEBASE"] = 3800,
["PImplemented"] = 100,
["Pagetype"] = 2500,
["Para"] = 230,
["Partly_done"] = 100,
["Pass"] = 100,
["Passed"] = 100,
["Pblock"] = 100,
["PendingRequest"] = 100,
["Pixiedust"] = 100,
["Plain_link"] = 480,
["Plainlist"] = 110,
["Plainlist/styles.css"] = 1500,
["Possible"] = 100,
["Possibly"] = 100,
["Possilikely"] = 100,
["Posted"] = 100,
["Pp-template"] = 120,
["Precision"] = 830,
["Principal_rank"] = 120,
["Property"] = 300,
["ProposalOnHold"] = 100,
["ProposalOutOfScope"] = 100,
["Psblock"] = 100,
["Purge"] = 150,
["Module:Pagetype"] = 2500,
["Module:Pagetype/config"] = 2500,
["Module:Pagetype/disambiguation"] = 2500,
["Module:Pagetype/setindex"] = 2500,
["Module:Pagetype/softredirect"] = 2500,
["Module:Plain_text"] = 2500,
["Module:PositionHandler"] = 200,
["Module:Protection_banner"] = 290,
["Module:Protection_banner/config"] = 290,
["Module:Purge"] = 160,
}
7mx0gf1i7zje688k7jru6w1tsaqbmwe
فرما:Pp
10
6684
153330
36219
2026-08-30T17:52:03Z
en>Asukite
0
fix double redirect [[:w:en:User:Ponor/wAwB| #wAwB]]
153330
wikitext
text/x-wiki
#REDIRECT [[Template:Protected page]]
{{Redirect category shell|
{{R from move}}
{{R from template shortcut}}
}}
isvqshsbl6kwg3hu0omhis38t2yg816
153331
153330
2026-10-06T18:16:03Z
511KeV
8268
1 revision imported from [[:en:Template:Pp]]: Needed locally
153330
wikitext
text/x-wiki
#REDIRECT [[Template:Protected page]]
{{Redirect category shell|
{{R from move}}
{{R from template shortcut}}
}}
isvqshsbl6kwg3hu0omhis38t2yg816
Module:Submit an edit request
828
6693
153364
36241
2024-12-16T15:29:26Z
en>HouseBlaster
0
bypass redirect
153364
Scribunto
text/plain
-- This module implements {{Submit an edit request}}.
local CONFIG_MODULE = 'Module:Submit an edit request/config'
-- Load necessary modules
local mRedirect = require('Module:Redirect')
local cfg = mw.loadData(CONFIG_MODULE)
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local escape = require("Module:String")._escapePattern
local lang = mw.language.getContentLanguage()
local p = {}
local validLevels = {
semi = 'semi',
extended = 'extended',
template = 'template',
full = 'full',
interface = 'interface',
manual = 'manual'
}
local function message(key, ...)
local params = {...}
local msg = cfg[key]
if #params < 1 then
return msg
else
return mw.message.newRawMessage(msg):params(params):plain()
end
end
local function validateLevel(level)
return level and validLevels[level] or 'full'
end
local function getLevelInfo(level, field)
return cfg.protectionLevels[level][field]
end
local function resolveRedirect(page)
return mRedirect.luaMain(page)
end
local function isProtected(page)
local action = mw.title.new(page).exists and 'edit' or 'create'
return effectiveProtectionLevel(action, page) ~= '*'
end
function p.makeRequestUrl(level, titleObj)
titleObj = titleObj or mw.title.getCurrentTitle()
local basePage = titleObj.basePageTitle.fullText
if cfg['main-page-content'][basePage] then
return tostring(mw.uri.fullUrl(message('main-page-request-page')))
end
local talkPageName = titleObj.talkPageTitle
if talkPageName == nil then
return tostring(mw.uri.fullUrl(message('protected-talk-page-request-page')))
end
talkPageName = resolveRedirect(talkPageName.prefixedText)
if isProtected(talkPageName) then
return tostring(mw.uri.fullUrl(message('protected-talk-page-request-page')))
end
level = validateLevel(level)
if level == 'manual' then
return tostring(mw.uri.fullUrl(talkPageName, {
action = 'edit',
section = 'new'
}))
end
local sectionname = message(
'preload-title-text',
getLevelInfo(level, 'levelText'),
lang:formatDate(message('preload-title-date-format'))
)
local content = mw.title.new(talkPageName):getContent()
if content and content:find("== *" .. escape(sectionname) .. " *==") then
local dedup = 2
while true do
local newname = message("preload-title-dedup-suffix", sectionname, dedup)
if not content:find("== *" .. escape(newname) .. " *==") then
sectionname = newname
break
end
dedup = dedup + 1
end
end
local url = mw.uri.fullUrl(talkPageName, {
action = 'edit',
editintro = getLevelInfo(level, 'editintro'),
preload = message('preload-template'),
preloadtitle = sectionname,
section = 'new'
})
url = tostring(url)
-- Add the preload parameters. @TODO: merge this into the mw.uri.fullUrl
-- query table once [[phab:T93059]] is fixed.
local function encodeParam(key, val)
return string.format('&%s=%s', mw.uri.encode(key), mw.uri.encode(val))
end
url = url .. encodeParam('preloadparams[]', getLevelInfo(level, 'requestTemplate'))
url = url .. encodeParam('preloadparams[]', titleObj.prefixedText)
return url
end
function p._link(args)
return string.format(
'<span class="plainlinks">[%s %s]</span>',
p.makeRequestUrl(args.type),
args.display or message('default-display-value')
)
end
function p._button(args)
return require('Module:Clickable button').main{
[1] = args.display or message('default-display-value'),
url = p.makeRequestUrl(args.type),
class = 'mw-ui-progressive'
}
end
local function makeInvokeFunc(func, wrapper)
return function (frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = {wrapper}
})
return func(args)
end
end
p.link = makeInvokeFunc(p._link, message('link-wrapper-template'))
p.button = makeInvokeFunc(p._button, message('button-wrapper-template'))
return p
nk1nb7zr3yxhcpwmhyp0oewkuy26v66
153365
153364
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Module:Submit_an_edit_request]]: Needed locally
153364
Scribunto
text/plain
-- This module implements {{Submit an edit request}}.
local CONFIG_MODULE = 'Module:Submit an edit request/config'
-- Load necessary modules
local mRedirect = require('Module:Redirect')
local cfg = mw.loadData(CONFIG_MODULE)
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local escape = require("Module:String")._escapePattern
local lang = mw.language.getContentLanguage()
local p = {}
local validLevels = {
semi = 'semi',
extended = 'extended',
template = 'template',
full = 'full',
interface = 'interface',
manual = 'manual'
}
local function message(key, ...)
local params = {...}
local msg = cfg[key]
if #params < 1 then
return msg
else
return mw.message.newRawMessage(msg):params(params):plain()
end
end
local function validateLevel(level)
return level and validLevels[level] or 'full'
end
local function getLevelInfo(level, field)
return cfg.protectionLevels[level][field]
end
local function resolveRedirect(page)
return mRedirect.luaMain(page)
end
local function isProtected(page)
local action = mw.title.new(page).exists and 'edit' or 'create'
return effectiveProtectionLevel(action, page) ~= '*'
end
function p.makeRequestUrl(level, titleObj)
titleObj = titleObj or mw.title.getCurrentTitle()
local basePage = titleObj.basePageTitle.fullText
if cfg['main-page-content'][basePage] then
return tostring(mw.uri.fullUrl(message('main-page-request-page')))
end
local talkPageName = titleObj.talkPageTitle
if talkPageName == nil then
return tostring(mw.uri.fullUrl(message('protected-talk-page-request-page')))
end
talkPageName = resolveRedirect(talkPageName.prefixedText)
if isProtected(talkPageName) then
return tostring(mw.uri.fullUrl(message('protected-talk-page-request-page')))
end
level = validateLevel(level)
if level == 'manual' then
return tostring(mw.uri.fullUrl(talkPageName, {
action = 'edit',
section = 'new'
}))
end
local sectionname = message(
'preload-title-text',
getLevelInfo(level, 'levelText'),
lang:formatDate(message('preload-title-date-format'))
)
local content = mw.title.new(talkPageName):getContent()
if content and content:find("== *" .. escape(sectionname) .. " *==") then
local dedup = 2
while true do
local newname = message("preload-title-dedup-suffix", sectionname, dedup)
if not content:find("== *" .. escape(newname) .. " *==") then
sectionname = newname
break
end
dedup = dedup + 1
end
end
local url = mw.uri.fullUrl(talkPageName, {
action = 'edit',
editintro = getLevelInfo(level, 'editintro'),
preload = message('preload-template'),
preloadtitle = sectionname,
section = 'new'
})
url = tostring(url)
-- Add the preload parameters. @TODO: merge this into the mw.uri.fullUrl
-- query table once [[phab:T93059]] is fixed.
local function encodeParam(key, val)
return string.format('&%s=%s', mw.uri.encode(key), mw.uri.encode(val))
end
url = url .. encodeParam('preloadparams[]', getLevelInfo(level, 'requestTemplate'))
url = url .. encodeParam('preloadparams[]', titleObj.prefixedText)
return url
end
function p._link(args)
return string.format(
'<span class="plainlinks">[%s %s]</span>',
p.makeRequestUrl(args.type),
args.display or message('default-display-value')
)
end
function p._button(args)
return require('Module:Clickable button').main{
[1] = args.display or message('default-display-value'),
url = p.makeRequestUrl(args.type),
class = 'mw-ui-progressive'
}
end
local function makeInvokeFunc(func, wrapper)
return function (frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = {wrapper}
})
return func(args)
end
end
p.link = makeInvokeFunc(p._link, message('link-wrapper-template'))
p.button = makeInvokeFunc(p._button, message('button-wrapper-template'))
return p
nk1nb7zr3yxhcpwmhyp0oewkuy26v66
Module:Submit an edit request/config
828
6694
153366
74772
2026-01-11T00:43:40Z
en>Pppery
0
Bypass rdr
153366
Scribunto
text/plain
-- This module contains configuration data for [[Module:Submit an edit request]].
return {
--------------------------------------------------------------------------------
-- Messages
--------------------------------------------------------------------------------
-- The default display value for edit requests.
['default-display-value'] = 'Submit an edit request',
-- The template that stores the edit request preload text
['preload-template'] = 'Template:Submit an edit request/preload',
-- The section heading that is generated when a user clicks on an edit request
-- link. $1 is the protection level text, e.g. "Semi-protected" or
-- "Template-protected". $2 is the current date, in the format specified by the
-- "preload-title-date-format" message.
['preload-title-text'] = '$1 edit request on $2',
-- The date format for the automatically-generated section heading. The format
-- must be valid input for the #time parser function.
['preload-title-date-format'] = 'j F Y',
-- What do do with the generated section header if another header with the same section already exists
-- $1 is the original section header. $2 is an automatically generated number, starting at 2 and increasing
-- by one until a unique header is found.
['preload-title-dedup-suffix'] = '$1 ($2)',
-- The names of pages (and their subpages) that make up the content of the main page for this wiki
['main-page-content'] = {
['Wikipedia:Today\'s featured article'] = true,
['Template:In the news'] = true,
['Template:Did you know'] = true,
['Wikipedia:Selected anniversaries'] = true,
['Template:POTD protected'] = true,
['Wikipedia:Today\'s featured list'] = true
},
-- The page used to request changes to things on the Main Page.
['main-page-request-page'] = 'Wikipedia:Main Page/Errors',
-- The page used to request edits to protected talk pages.
['protected-talk-page-request-page'] = 'Wikipedia:Requests for page protection/Edit',
-- The names of the templates to be used as wrappers for the "link" and "button"
-- functions. These are passed as arguments to the "wrappers" option of
-- [[Module:Arguments]].
['link-wrapper-template'] = 'Template:Submit an edit request/link',
['button-wrapper-template'] = 'Template:Submit an edit request',
--------------------------------------------------------------------------------
-- Protection level config
--------------------------------------------------------------------------------
protectionLevels = {
--[[
-- These settings are for the different protection levels which the module can
-- output edit request links for.
--
-- editintro:
-- The template to use as the edit intro users see when they click on an edit
-- request link.
--
-- request-template:
-- The name of the edit request template for that protection level. Do not
-- include the "Template:" text.
--
-- protectionlevel:
-- The name of the protection level, used for formatting the automatically-
-- generated section headings.
--]]
-- Semi-protection
semi = {
editintro = 'Template:Edit semi-protected/editintro',
requestTemplate = 'edit semi-protected',
levelText = 'Semi-protected',
},
-- Extended-confirmed-protection
extended = {
editintro = 'Template:Edit extended-protected/editintro',
requestTemplate = 'edit extended-protected',
levelText = 'Extended-confirmed-protected',
},
-- Template-protection
template = {
editintro = 'Template:Edit template-protected/editintro',
requestTemplate = 'edit template-protected',
levelText = 'Template-protected',
},
-- Full protection
full = {
editintro = 'Template:Edit fully-protected/editintro',
requestTemplate = 'edit fully-protected',
levelText = 'Protected',
},
-- Interface-protection
interface = {
editintro = 'Template:Edit interface-protected/editintro',
requestTemplate = 'edit interface-protected',
levelText = 'Interface-protected',
},
}
}
pt4ho7slt5fo4w5xg1pn6u5vzde87r1
153367
153366
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Module:Submit_an_edit_request/config]]: Needed locally
153366
Scribunto
text/plain
-- This module contains configuration data for [[Module:Submit an edit request]].
return {
--------------------------------------------------------------------------------
-- Messages
--------------------------------------------------------------------------------
-- The default display value for edit requests.
['default-display-value'] = 'Submit an edit request',
-- The template that stores the edit request preload text
['preload-template'] = 'Template:Submit an edit request/preload',
-- The section heading that is generated when a user clicks on an edit request
-- link. $1 is the protection level text, e.g. "Semi-protected" or
-- "Template-protected". $2 is the current date, in the format specified by the
-- "preload-title-date-format" message.
['preload-title-text'] = '$1 edit request on $2',
-- The date format for the automatically-generated section heading. The format
-- must be valid input for the #time parser function.
['preload-title-date-format'] = 'j F Y',
-- What do do with the generated section header if another header with the same section already exists
-- $1 is the original section header. $2 is an automatically generated number, starting at 2 and increasing
-- by one until a unique header is found.
['preload-title-dedup-suffix'] = '$1 ($2)',
-- The names of pages (and their subpages) that make up the content of the main page for this wiki
['main-page-content'] = {
['Wikipedia:Today\'s featured article'] = true,
['Template:In the news'] = true,
['Template:Did you know'] = true,
['Wikipedia:Selected anniversaries'] = true,
['Template:POTD protected'] = true,
['Wikipedia:Today\'s featured list'] = true
},
-- The page used to request changes to things on the Main Page.
['main-page-request-page'] = 'Wikipedia:Main Page/Errors',
-- The page used to request edits to protected talk pages.
['protected-talk-page-request-page'] = 'Wikipedia:Requests for page protection/Edit',
-- The names of the templates to be used as wrappers for the "link" and "button"
-- functions. These are passed as arguments to the "wrappers" option of
-- [[Module:Arguments]].
['link-wrapper-template'] = 'Template:Submit an edit request/link',
['button-wrapper-template'] = 'Template:Submit an edit request',
--------------------------------------------------------------------------------
-- Protection level config
--------------------------------------------------------------------------------
protectionLevels = {
--[[
-- These settings are for the different protection levels which the module can
-- output edit request links for.
--
-- editintro:
-- The template to use as the edit intro users see when they click on an edit
-- request link.
--
-- request-template:
-- The name of the edit request template for that protection level. Do not
-- include the "Template:" text.
--
-- protectionlevel:
-- The name of the protection level, used for formatting the automatically-
-- generated section headings.
--]]
-- Semi-protection
semi = {
editintro = 'Template:Edit semi-protected/editintro',
requestTemplate = 'edit semi-protected',
levelText = 'Semi-protected',
},
-- Extended-confirmed-protection
extended = {
editintro = 'Template:Edit extended-protected/editintro',
requestTemplate = 'edit extended-protected',
levelText = 'Extended-confirmed-protected',
},
-- Template-protection
template = {
editintro = 'Template:Edit template-protected/editintro',
requestTemplate = 'edit template-protected',
levelText = 'Template-protected',
},
-- Full protection
full = {
editintro = 'Template:Edit fully-protected/editintro',
requestTemplate = 'edit fully-protected',
levelText = 'Protected',
},
-- Interface-protection
interface = {
editintro = 'Template:Edit interface-protected/editintro',
requestTemplate = 'edit interface-protected',
levelText = 'Interface-protected',
},
}
}
pt4ho7slt5fo4w5xg1pn6u5vzde87r1
فرما:Pp-protected
10
6696
153477
36250
2026-10-07T11:18:34Z
EmausBot
1793
Fixing double redirect from [[فرما:Pp]] to [[فرما:Protected page]]
153477
wikitext
text/x-wiki
#REDIRECT [[فرما:Protected page]]
{{Rcat shell|
{{R from move}}
{{R from long name}}
{{R with history}}
{{R for convenience}}
}}
[[Category:Top icon protection templates]]
hgr2w1gj5qtjt1ogtsv3wid85aelajs
Module:Transclusion count/data/D
828
7056
153416
152721
2026-10-07T03:18:44Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153416
Scribunto
text/plain
return {
["DMCA"] = 360,
["Databox"] = 1000,
["Dated_maintenance_category"] = 360,
["Day"] = 360,
["Death_date_and_age"] = 420,
["Death_date_and_age_WD"] = 130,
["Decline"] = 100,
["Decline-IP"] = 100,
["Declined"] = 100,
["Deferabusefilter"] = 100,
["Deferblack"] = 100,
["Defermetablack"] = 100,
["Deferred"] = 100,
["Deferrsn"] = 100,
["Deferspam"] = 100,
["Deferspambot"] = 100,
["Deferwhite"] = 100,
["Deleted"] = 100,
["Deleted-image"] = 100,
["Delink"] = 260,
["Delisted"] = 100,
["Denied"] = 100,
["Detect_singular"] = 2200,
["Dir"] = 260,
["Disagree"] = 100,
["Discussing"] = 100,
["Dislike"] = 100,
["Div_col"] = 120,
["Div_col/styles.css"] = 120,
["Div_col_end"] = 120,
["Documentation"] = 2500,
["Documentation_subpage"] = 330,
["Doing"] = 100,
["Don't_edit_this_line"] = 120,
["Don't_edit_this_line_always_display"] = 120,
["Don't_edit_this_line_extinct"] = 120,
["Don't_edit_this_line_link_target"] = 120,
["Don't_edit_this_line_link_text"] = 120,
["Don't_edit_this_line_parent"] = 120,
["Don't_edit_this_line_rank"] = 120,
["Don't_edit_this_line_refs"] = 100,
["Don't_edit_this_line_same_as"] = 120,
["Done"] = 130,
["Done/See_also"] = 100,
["Donetask"] = 100,
["Duck"] = 100,
["DuplicateProposal"] = 100,
["Duplicate_bug"] = 100,
["Module:Databox"] = 4600,
["Module:Databox/extra_images"] = 4600,
["Module:Databox/qualifiers"] = 4600,
["Module:Databox/theme"] = 4600,
["Module:Date"] = 2700,
["Module:DateI18n"] = 2400,
["Module:Delink"] = 450,
["Module:Dimensions"] = 110,
["Module:Disambiguation/templates"] = 2500,
["Module:Documentation"] = 2500,
["Module:Documentation/config"] = 2500,
["Module:Documentation/styles.css"] = 2500,
}
ba6tgoi8qny9b10j1gpjlv1hs3zkgmw
فرما:Hlist
10
7162
153318
37398
2026-09-12T17:59:44Z
en>MusikBot II
0
Protected "[[Template:Hlist]]": [[Wikipedia:High-risk templates|High-risk template or module]]: 310424 transclusions ([[User:MusikBot II/TemplateProtector|more info]]) ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
153318
wikitext
text/x-wiki
#REDIRECT [[Template:Horizontal list]]
j3di4tswthkvewum4j2tczpbseqofxy
153319
153318
2026-10-06T18:16:03Z
511KeV
8268
1 revision imported from [[:en:Template:Hlist]]: Needed locally
153318
wikitext
text/x-wiki
#REDIRECT [[Template:Horizontal list]]
j3di4tswthkvewum4j2tczpbseqofxy
Module:Transclusion count/data/I
828
7194
153418
153150
2026-10-07T03:19:34Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153418
Scribunto
text/plain
return {
["IPA"] = 140,
["IPAc-en"] = 120,
["IPblock"] = 100,
["IUCNstatus"] = 150,
["Icon"] = 130,
["Idea"] = 100,
["Identificador"] = 310,
["Identifiers"] = 310,
["Idkc"] = 100,
["If_both"] = 380,
["If_empty"] = 4500,
["If_then_show"] = 1200,
["Ifsubst"] = 100,
["Imbox"] = 110,
["Implemented"] = 100,
["Impossible"] = 100,
["InGroup"] = 140,
["Inconclusive"] = 100,
["InfoNeeded"] = 100,
["Infobox"] = 4800,
["InfoboxFrame"] = 310,
["Infobox_language/family-color"] = 130,
["Infobox_number/link"] = 110,
["Infobox_number/range"] = 100,
["Infobox_officeholder/Wikidata"] = 170,
["Infobox_officeholder/office"] = 110,
["Infobox_person"] = 150,
["Infobox_person/Wikidata"] = 490,
["Infobox_person/ca"] = 140,
["Infobox_person/formatglobal"] = 140,
["Infobox_person/styles_ca.css"] = 140,
["Infobox_person_ca/catalan"] = 140,
["Infobox_settlement"] = 2000,
["Infobox_settlement/Wikidata"] = 840,
["Infobox_settlement/areadisp"] = 800,
["Infobox_settlement/columns"] = 480,
["Infobox_settlement/densdisp"] = 1700,
["Infobox_settlement/link"] = 480,
["Infobox_settlement/metric"] = 830,
["Infobox_settlement/pref"] = 830,
["Infotaula"] = 320,
["Inprogress"] = 100,
["Invalid"] = 100,
["Investigating"] = 100,
["Ipbedone"] = 100,
["IsIPAddress"] = 440,
["Is_italic_taxon"] = 120,
["Isdoing"] = 100,
["Italic_title"] = 140,
["Module:I18n"] = 3600,
["Module:I18n/complex_date"] = 2400,
["Module:IPAc-en"] = 120,
["Module:IPAc-en/data"] = 120,
["Module:IPAc-en/phonemes"] = 120,
["Module:IPAc-en/pronunciation"] = 120,
["Module:IPAddress"] = 440,
["Module:ISO_3166"] = 210,
["Module:ISO_3166/data/National"] = 210,
["Module:ISOdate"] = 2400,
["Module:IUCNstatus"] = 150,
["Module:Icon"] = 130,
["Module:Icon/data"] = 130,
["Module:If_empty"] = 4500,
["Module:Infobox"] = 5600,
["Module:Infobox/styles.css"] = 5600,
["Module:InfoboxImage"] = 3900,
["Module:Infobox_dim"] = 120,
["Module:Infobox_dim/data"] = 110,
["Module:Infobox_mapframe"] = 220,
["Module:Italic_title"] = 140,
["Module:Itemgroup"] = 370,
["Module:Itemgroup/groups"] = 140,
["Module:Itemgroup/list"] = 360,
}
2ykt2fzrhdurgr5l3dsuo5tsl3on5al
Module:Transclusion count/data/A
828
7403
153415
152718
2026-10-07T03:18:14Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153415
Scribunto
text/plain
return {
["A_note"] = 110,
["Abbr"] = 120,
["Accepted"] = 100,
["Added"] = 100,
["Administrator_note"] = 100,
["AfC_age_category"] = 440,
["AfC_date_category"] = 440,
["AfC_status/age"] = 440,
["AfC_status/backlog"] = 440,
["AfC_submission"] = 440,
["AfC_submission/helptools"] = 440,
["AfC_submission/pending"] = 440,
["AfC_submission/tools"] = 440,
["Age_in_years"] = 190,
["Agree"] = 100,
["Align"] = 240,
["Aligned_table"] = 120,
["Allow_wrap"] = 130,
["Already_declined"] = 100,
["Already_done"] = 100,
["Ambox"] = 2300,
["Anglicise_rank"] = 120,
["Approved"] = 110,
["Archive_now"] = 100,
["Audio"] = 140,
["Automated_tools"] = 440,
["Autp"] = 100,
["Await"] = 110,
["Awaiting"] = 100,
["Awaitingadmin"] = 100,
["Aye"] = 100,
["Module:AfC_submission_catcheck"] = 440,
["Module:Age"] = 2000,
["Module:Aligned_table"] = 130,
["Module:Arguments"] = 12000,
["Module:Autotaxobox"] = 130,
}
rst337vhcxqt3omo8j53g7wy3mp6d8z
فرما:Pp-semi-protected
10
7453
153478
38322
2026-10-07T11:18:44Z
EmausBot
1793
Fixing double redirect from [[فرما:Pp]] to [[فرما:Protected page]]
153478
wikitext
text/x-wiki
#REDIRECT [[فرما:Protected page]]
[[Category:Top icon protection templates|{{PAGENAME}}]]
ncplaihqy1syk0zdoit967amyqbbp86
Module:Transclusion count/data/L
828
7790
153419
152727
2026-10-07T03:20:04Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153419
Scribunto
text/plain
return {
["Lang"] = 780,
["Later"] = 100,
["LcPlainText"] = 280,
["Lenny"] = 100,
["Like"] = 100,
["Likely"] = 100,
["Llista_desplegable_condicional"] = 120,
["Location_map"] = 270,
["Longitem"] = 350,
["Lua"] = 120,
["Module:Lang"] = 1000,
["Module:Lang/ISO_639_synonyms"] = 1000,
["Module:Lang/data"] = 1000,
["Module:Language/data/iana_languages"] = 1100,
["Module:Language/data/iana_regions"] = 1000,
["Module:Language/data/iana_scripts"] = 1000,
["Module:Language/data/iana_suppressed_scripts"] = 1000,
["Module:Language/data/iana_variants"] = 1000,
["Module:List"] = 1700,
["Module:Location"] = 180,
["Module:Location/ks"] = 180,
["Module:Location_map"] = 300,
["Module:Location_map/styles.css"] = 290,
["Module:Lua_banner"] = 120,
}
pnu8yolzx94zwjwn31n43i0uoc0652g
فرما:PP
10
8620
153476
43583
2026-10-07T11:18:24Z
EmausBot
1793
Fixing double redirect from [[فرما:Pp]] to [[فرما:Protected page]]
153476
wikitext
text/x-wiki
#REDIRECT [[فرما:Protected page]]
e68inpaoq9d1amurmtp2y7dgiccvown
Module:Transclusion count/data/N
828
8647
153421
153152
2026-10-07T03:20:24Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153421
Scribunto
text/plain
return {
["N&"] = 100,
["N.b."] = 100,
["N/A_icon"] = 100,
["NOINDEX"] = 470,
["NUMBEROFSECTIONS"] = 440,
["Namespace_detect"] = 2100,
["Navbar"] = 110,
["Navbox"] = 200,
["Nay"] = 100,
["Nayc"] = 100,
["Nayg"] = 100,
["Nbsp"] = 1600,
["Nc"] = 100,
["NeedsDiscussion"] = 100,
["NewBug"] = 100,
["NewProposal"] = 100,
["No_action"] = 100,
["No_comment_IP"] = 100,
["No_mark"] = 100,
["No_redirect"] = 160,
["No_tags"] = 100,
["Nocomment"] = 100,
["Nojoy"] = 100,
["Nosleepers"] = 100,
["NotBug"] = 100,
["Not_a_bug"] = 100,
["Not_done"] = 110,
["Not_done-t"] = 100,
["Not_done_empty_request"] = 100,
["Not_done_for_now"] = 100,
["Not_done_not_likely"] = 100,
["Not_done_unclear"] = 100,
["Not_sure"] = 100,
["Notabug"] = 100,
["Notfixed"] = 100,
["Notsure"] = 100,
["Novalue"] = 200,
["Nowrap"] = 790,
["Ns0"] = 130,
["Ns_has_subpages"] = 470,
["Module:Namespace_detect"] = 2100,
["Module:Namespace_detect/config"] = 4700,
["Module:Namespace_detect/data"] = 4700,
["Module:Navbar"] = 550,
["Module:Navbar/configuration"] = 550,
["Module:Navbar/styles.css"] = 470,
["Module:Navbox"] = 220,
["Module:Navbox/configuration"] = 220,
["Module:Navbox/styles.css"] = 220,
["Module:Ns_has_subpages"] = 470,
}
cmrxlixmpz3dzp4jgvarqu9nvmvcfg2
Module:Transclusion count/data/S
828
8655
153425
153154
2026-10-07T03:21:14Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153425
Scribunto
text/plain
return {
["SDcat"] = 2400,
["SHORTDESC:Natural_number"] = 100,
["SHORTDESC:Place"] = 2100,
["SULcheck"] = 100,
["Sandbox_other"] = 330,
["Sblock"] = 100,
["Scissors"] = 100,
["Self-trout"] = 100,
["Self-whale"] = 100,
["Semi-done"] = 100,
["Sent"] = 100,
["Sfn"] = 110,
["Short_description"] = 2500,
["Short_description/lowercasecheck"] = 2500,
["Shrug"] = 100,
["Small"] = 140,
["Smallrejected"] = 100,
["Snow"] = 100,
["Socks_tagged"] = 100,
["Somevalue"] = 270,
["Sorry"] = 100,
["Spaces"] = 1600,
["Stale-small"] = 100,
["StaleIP"] = 100,
["Stale_GAN"] = 100,
["Started"] = 100,
["Str_find"] = 140,
["Str_left"] = 730,
["Str_len"] = 210,
["Str_len1"] = 260,
["Str_number/trim"] = 150,
["Str_split"] = 250,
["Strong"] = 110,
["Stub"] = 1600,
["Suggestion"] = 100,
["Switcher2"] = 220,
["Switcher2/styles.css"] = 220,
["Module:SDcat"] = 2400,
["Module:Separated_entries"] = 1900,
["Module:Settlement_short_description"] = 2200,
["Module:Shortcut"] = 130,
["Module:Shortcut/config"] = 130,
["Module:Shortcut/styles.css"] = 130,
["Module:String"] = 8000,
["Module:String1"] = 460,
["Module:String2"] = 890,
}
kx6gcgyaz09gweq4vzmopakwb0jwyhd
فرما:Pre
10
9670
153332
124112
2026-06-29T14:46:36Z
en>ABreault (WMF)
0
For [[phab:T353697|T353697]]. See the talk page discussion
153332
wikitext
text/x-wiki
<templatestyles src="Pre/styles.css"/>{{#if:{{{space|}}}{{{width|}}}{{{style|}}}|{{#tag:pre|{{{1|<noinclude>Sample text</noinclude>}}}|format=wikitext|class=pre {{#ifeq:{{{border|}}}|no|pre-borderless}}|style={{#if:{{{space|}}}|white-space: {{{space}}};}} {{#if:{{{width|}}}|width: {{{width}}};}} {{{style|}}}}}|{{#tag:pre|{{{1|<noinclude>Sample text</noinclude>}}}|format=wikitext|class=pre {{#ifeq:{{{border|}}}|no|pre-borderless}}}}}}<noinclude>
{{Documentation}}
<!--
PLEASE ADD CATEGORIES AND INTERWIKIS
TO THE /doc SUBPAGE, THANKS
-->
</noinclude>
22sa1k0u2jf83124swp5gn7on8cvfol
153333
153332
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Template:Pre]]: Needed locally
153332
wikitext
text/x-wiki
<templatestyles src="Pre/styles.css"/>{{#if:{{{space|}}}{{{width|}}}{{{style|}}}|{{#tag:pre|{{{1|<noinclude>Sample text</noinclude>}}}|format=wikitext|class=pre {{#ifeq:{{{border|}}}|no|pre-borderless}}|style={{#if:{{{space|}}}|white-space: {{{space}}};}} {{#if:{{{width|}}}|width: {{{width}}};}} {{{style|}}}}}|{{#tag:pre|{{{1|<noinclude>Sample text</noinclude>}}}|format=wikitext|class=pre {{#ifeq:{{{border|}}}|no|pre-borderless}}}}}}<noinclude>
{{Documentation}}
<!--
PLEASE ADD CATEGORIES AND INTERWIKIS
TO THE /doc SUBPAGE, THANKS
-->
</noinclude>
22sa1k0u2jf83124swp5gn7on8cvfol
فرما:Microformat message
10
10038
153368
50217
2024-01-18T06:15:23Z
en>Jonesey95
0
why? This layout is standard
153368
wikitext
text/x-wiki
The [[Help:HTML in wikitext|HTML mark-up]] produced by this template includes {{#if:{{{type|}}} |{{{type}}} |an [[{{{format}}} microformat]]}} that makes {{{data}}} readily [[Parsing|parsable]] by computer programs. This aids tasks such as the cataloguing of articles and maintenance of databases. For more information about the use of microformats on Wikipedia, please visit [[Wikipedia:WikiProject Microformats|the Microformat WikiProject]].<!--
-->{{#if:{{{subtemplates<includeonly>|</includeonly>}}}
| <div style="margin-top:0.5em;margin-bottom:0.65em;">
; {{large|Subtemplates}}
{{{subtemplates}}}
'''''Please do not remove instances of these subtemplates.'''''
</div>}}<!--
-->{{#if:{{{subsection1|}}}
| <div style="margin-top:0.5em;margin-bottom:0.65em;"><!--(newline in case subsection begins with heading:)-->
{{{subsection1}}}
</div>}}<!--
-->{{#if:{{{1<includeonly>|</includeonly>}}} <!--(i.e. if at least one unnamed parameter supplied:)-->
| <div style="margin-top:0.5em;margin-bottom:0.65em;">
; {{large|Classes used}}
The [[HTML attribute|HTML class]]es of this microformat include:
: {{hlist
|item_style=font-size:110%;{{{itemstyle|}}}
|{{{1}}} |{{{2<includeonly>|</includeonly>}}} |{{{3|<noinclude>{{nobold|……}}</noinclude>}}}
|{{{4|}}} |{{{5|}}} |{{{6|}}} |{{{7|}}} |{{{8|}}} |{{{9|}}} |{{{10|}}} |{{{11|}}} |{{{12|}}} |{{{13|}}} |{{{14|}}} |{{{15|}}} |{{{16|}}} |{{{17|}}} |{{{18|}}} |{{{19|}}} |{{{20|}}}
}} </div>
{{longitem|style=line-height:1.3em|'''''Please do not rename or remove these classes{{#if:{{{nocollapse<includeonly>|</includeonly>}}} |<br/>nor collapse nested elements which use them}}.'''''}}<!--
-->}}<!--(end #if:[1])--><noinclude>
{{documentation}}
</noinclude>
m6k2h5dfubh33h98ip1hm7dkz3tgtpg
153369
153368
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Template:Microformat_message]]: Needed locally
153368
wikitext
text/x-wiki
The [[Help:HTML in wikitext|HTML mark-up]] produced by this template includes {{#if:{{{type|}}} |{{{type}}} |an [[{{{format}}} microformat]]}} that makes {{{data}}} readily [[Parsing|parsable]] by computer programs. This aids tasks such as the cataloguing of articles and maintenance of databases. For more information about the use of microformats on Wikipedia, please visit [[Wikipedia:WikiProject Microformats|the Microformat WikiProject]].<!--
-->{{#if:{{{subtemplates<includeonly>|</includeonly>}}}
| <div style="margin-top:0.5em;margin-bottom:0.65em;">
; {{large|Subtemplates}}
{{{subtemplates}}}
'''''Please do not remove instances of these subtemplates.'''''
</div>}}<!--
-->{{#if:{{{subsection1|}}}
| <div style="margin-top:0.5em;margin-bottom:0.65em;"><!--(newline in case subsection begins with heading:)-->
{{{subsection1}}}
</div>}}<!--
-->{{#if:{{{1<includeonly>|</includeonly>}}} <!--(i.e. if at least one unnamed parameter supplied:)-->
| <div style="margin-top:0.5em;margin-bottom:0.65em;">
; {{large|Classes used}}
The [[HTML attribute|HTML class]]es of this microformat include:
: {{hlist
|item_style=font-size:110%;{{{itemstyle|}}}
|{{{1}}} |{{{2<includeonly>|</includeonly>}}} |{{{3|<noinclude>{{nobold|……}}</noinclude>}}}
|{{{4|}}} |{{{5|}}} |{{{6|}}} |{{{7|}}} |{{{8|}}} |{{{9|}}} |{{{10|}}} |{{{11|}}} |{{{12|}}} |{{{13|}}} |{{{14|}}} |{{{15|}}} |{{{16|}}} |{{{17|}}} |{{{18|}}} |{{{19|}}} |{{{20|}}}
}} </div>
{{longitem|style=line-height:1.3em|'''''Please do not rename or remove these classes{{#if:{{{nocollapse<includeonly>|</includeonly>}}} |<br/>nor collapse nested elements which use them}}.'''''}}<!--
-->}}<!--(end #if:[1])--><noinclude>
{{documentation}}
</noinclude>
m6k2h5dfubh33h98ip1hm7dkz3tgtpg
Module:Infobox/styles.css
828
10044
153324
54019
2026-06-09T21:49:34Z
en>Izno
0
spaceeeee
153324
sanitized-css
text/css
/* {{pp|small=y}} */
/*
* This TemplateStyles sheet deliberately does NOT include the full set of
* infobox styles. We are still working to migrate all of the manual
* infoboxes. See [[MediaWiki talk:Common.css/to do#Infobox]]
* DO NOT ADD THEM HERE
*/
/* NOTE: This is maintained both here and in [[MediaWiki:Common.css]] until migration is complete.
* Starting with bare minimum for the benefit of [[mw:Manual:Safemode]]. */
@media (min-width: 640px) {
.infobox {
/* @noflip */
margin-left: 1em;
/* @noflip */
float: right;
/* @noflip */
clear: right;
width: 22em;
}
}
/*
* not strictly certain these styles are necessary since the modules now
* exclusively output infobox-subbox or infobox, not both
* just replicating the module faithfully
*/
.infobox-subbox {
padding: 0;
border: none;
margin: -3px;
width: auto;
min-width: 100%;
font-size: 100%;
clear: none;
float: none;
background-color: transparent;
color:inherit;
}
.infobox-3cols-child {
margin: -3px;
}
.infobox .navbar {
font-size: 100%;
}
/* remove when infobox is not a table anymore */
.infobox-hiddenrow,
/* we mean it, Minerva. but also Vector 2022 in the future at some point */
body.skin--responsive.skin--responsive .infobox .infobox-hiddenrow {
display: none;
}
/* Dark theme: [[William Wragg]], [[Coral Castle]] */
@media screen {
html.skin-theme-clientpref-night .infobox-full-data:not(.notheme) > div:not(.notheme)[style] {
background: #1f1f23 !important;
/* switch with var( --color-base ) when supported. */
color: #f8f9fa;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .infobox-full-data:not(.notheme) > div:not(.notheme)[style] {
background: #1f1f23 !important;
/* switch with var( --color-base ) when supported. */
color: #f8f9fa;
}
}
/* Since infobox is a table, many infobox templates take advantage of this to
* add columns and rows to the infobox itself rather than as part of a new table
* inside them. This class should be discouraged and removed on the long term,
* but allows us to at least identify these tables going forward
* Currently in use on: [[Module:Infobox3cols]]
* Fixes issue described in [[phab:F55300125]] on Vector 2022.
*/
@media (min-width: 640px) {
body.skin--responsive .infobox-table {
display: table !important;
}
body.skin--responsive .infobox-table > caption {
display: table-caption !important;
}
body.skin--responsive .infobox-table > tbody {
display: table-row-group;
}
body.skin--responsive .infobox-table th,
body.skin--responsive .infobox-table td {
padding-left: inherit;
padding-right: inherit;
}
}
bi1nsztkx4350a55cuzjhaotvp5h216
153325
153324
2026-10-06T18:16:03Z
511KeV
8268
1 revision imported from [[:en:Module:Infobox/styles.css]]: Needed locally
153324
sanitized-css
text/css
/* {{pp|small=y}} */
/*
* This TemplateStyles sheet deliberately does NOT include the full set of
* infobox styles. We are still working to migrate all of the manual
* infoboxes. See [[MediaWiki talk:Common.css/to do#Infobox]]
* DO NOT ADD THEM HERE
*/
/* NOTE: This is maintained both here and in [[MediaWiki:Common.css]] until migration is complete.
* Starting with bare minimum for the benefit of [[mw:Manual:Safemode]]. */
@media (min-width: 640px) {
.infobox {
/* @noflip */
margin-left: 1em;
/* @noflip */
float: right;
/* @noflip */
clear: right;
width: 22em;
}
}
/*
* not strictly certain these styles are necessary since the modules now
* exclusively output infobox-subbox or infobox, not both
* just replicating the module faithfully
*/
.infobox-subbox {
padding: 0;
border: none;
margin: -3px;
width: auto;
min-width: 100%;
font-size: 100%;
clear: none;
float: none;
background-color: transparent;
color:inherit;
}
.infobox-3cols-child {
margin: -3px;
}
.infobox .navbar {
font-size: 100%;
}
/* remove when infobox is not a table anymore */
.infobox-hiddenrow,
/* we mean it, Minerva. but also Vector 2022 in the future at some point */
body.skin--responsive.skin--responsive .infobox .infobox-hiddenrow {
display: none;
}
/* Dark theme: [[William Wragg]], [[Coral Castle]] */
@media screen {
html.skin-theme-clientpref-night .infobox-full-data:not(.notheme) > div:not(.notheme)[style] {
background: #1f1f23 !important;
/* switch with var( --color-base ) when supported. */
color: #f8f9fa;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .infobox-full-data:not(.notheme) > div:not(.notheme)[style] {
background: #1f1f23 !important;
/* switch with var( --color-base ) when supported. */
color: #f8f9fa;
}
}
/* Since infobox is a table, many infobox templates take advantage of this to
* add columns and rows to the infobox itself rather than as part of a new table
* inside them. This class should be discouraged and removed on the long term,
* but allows us to at least identify these tables going forward
* Currently in use on: [[Module:Infobox3cols]]
* Fixes issue described in [[phab:F55300125]] on Vector 2022.
*/
@media (min-width: 640px) {
body.skin--responsive .infobox-table {
display: table !important;
}
body.skin--responsive .infobox-table > caption {
display: table-caption !important;
}
body.skin--responsive .infobox-table > tbody {
display: table-row-group;
}
body.skin--responsive .infobox-table th,
body.skin--responsive .infobox-table td {
padding-left: inherit;
padding-right: inherit;
}
}
bi1nsztkx4350a55cuzjhaotvp5h216
فرما:Country data ایٖران
10
10130
153253
133560
2026-10-06T17:02:36Z
CommonsDelinker
131
Removing [[:c:File:Safavid_Flag.svg|Safavid_Flag.svg]], it has been deleted from Commons by [[:c:User:Jameslwoodward|Jameslwoodward]] because: per [[:c:Commons:Deletion requests/Files uploaded by ConflictFan|]].
153253
wikitext
text/x-wiki
{{ {{{1<noinclude>|country showdata</noinclude>}}}
| alias = ایٖران
| flag alias = Flag of Iran.svg
| flag alias-1502 =
| flag alias-1576 =
| flag alias-1665 = Flag of Persia (1665).svg
| flag alias-1736 = Nadir Shah Flag.svg
| flag alias-1760 = Zand Dynasty flag.svg
| border-1760 =
| flag alias-1796 = Qajar Naval Ensign.svg
| flag alias-1849 = Amir Kabir Flag.svg
| flag alias-1907 = Flag of Persia (1907).svg
| flag alias-1910 = Flag of Persia (1910-1925).svg
| flag alias-1925 = State Flag of Iran (1925).svg
| flag alias-1964 = State Flag of Iran (1964).svg
| flag alias-air force = Flag of the Islamic Republic of Iran Air Force.svg
| flag alias-army = Flag of the Islamic Republic of Iran Army Ground Forces.svg
| link alias-army = Islamic Republic of Iran Army Ground Forces
| flag alias-coast guard=Flag of the Army of the Guardians of the Islamic Revolution.svg
| link alias-coast guard=Navy of the Islamic Revolutionary Guard Corps
| flag alias-navy=Flag of the Islamic Republic of Iran Navy.svg
| link alias-navy=Islamic Republic of Iran Navy
| link alias-naval = Islamic Republic of Iran Navy
| flag alias-military=Flag of the Islamic Republic of Iran Army.svg
| link alias-military=Islamic Republic of Iran Army
| link alias-air force = Islamic Republic of Iran Air Force
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
<noinclude>
| var1 = 1502
| var2 = 1576
| var3 = 1665
| var4 = 1736
| var5 = 1760
| var6 = 1796
| var7 = 1849
| var8 = 1907
| var9 = 1910
| var10 = 1925
| var11 = 1964
| redir1 = IRN
| redir2 = IRI
</noinclude>
| related1 = Persia
| related2 = Pahlavi dynasty
| related3 = Qajar dynasty
}}
6v17tq8p6ogo1na4iwn61kovs42745s
153262
153253
2026-10-06T17:53:32Z
CommonsDelinker
131
Removing [[:c:File:Nadir_Shah_Flag.svg|Nadir_Shah_Flag.svg]], it has been deleted from Commons by [[:c:User:Jameslwoodward|Jameslwoodward]] because: per [[:c:Commons:Deletion requests/Files uploaded by ConflictFan|]].
153262
wikitext
text/x-wiki
{{ {{{1<noinclude>|country showdata</noinclude>}}}
| alias = ایٖران
| flag alias = Flag of Iran.svg
| flag alias-1502 =
| flag alias-1576 =
| flag alias-1665 = Flag of Persia (1665).svg
| flag alias-1736 =
| flag alias-1760 = Zand Dynasty flag.svg
| border-1760 =
| flag alias-1796 = Qajar Naval Ensign.svg
| flag alias-1849 = Amir Kabir Flag.svg
| flag alias-1907 = Flag of Persia (1907).svg
| flag alias-1910 = Flag of Persia (1910-1925).svg
| flag alias-1925 = State Flag of Iran (1925).svg
| flag alias-1964 = State Flag of Iran (1964).svg
| flag alias-air force = Flag of the Islamic Republic of Iran Air Force.svg
| flag alias-army = Flag of the Islamic Republic of Iran Army Ground Forces.svg
| link alias-army = Islamic Republic of Iran Army Ground Forces
| flag alias-coast guard=Flag of the Army of the Guardians of the Islamic Revolution.svg
| link alias-coast guard=Navy of the Islamic Revolutionary Guard Corps
| flag alias-navy=Flag of the Islamic Republic of Iran Navy.svg
| link alias-navy=Islamic Republic of Iran Navy
| link alias-naval = Islamic Republic of Iran Navy
| flag alias-military=Flag of the Islamic Republic of Iran Army.svg
| link alias-military=Islamic Republic of Iran Army
| link alias-air force = Islamic Republic of Iran Air Force
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
<noinclude>
| var1 = 1502
| var2 = 1576
| var3 = 1665
| var4 = 1736
| var5 = 1760
| var6 = 1796
| var7 = 1849
| var8 = 1907
| var9 = 1910
| var10 = 1925
| var11 = 1964
| redir1 = IRN
| redir2 = IRI
</noinclude>
| related1 = Persia
| related2 = Pahlavi dynasty
| related3 = Qajar dynasty
}}
qyiw7w8k1hoy01qnixtma9m9zbj9uv5
Module:Roman
828
10507
153338
52482
2023-02-08T20:14:10Z
en>Uzume
0
strict
153338
Scribunto
text/plain
-- This module implements {{Roman}}.
require[[strict]]
local p = {}
-- This function implements the {{overline}} template.
local function overline(s)
return mw.ustring.format( '<span style="text-decoration:overline;">%s</span>', s )
end
-- Gets the Roman numerals for a given numeral table. Returns both the string of
-- numerals and the value of the number after it is finished being processed.
local function getLetters(num, t)
local ret = {}
for _, v in ipairs(t) do
local val, letter = unpack(v)
while num >= val do
num = num - val
table.insert(ret, letter)
end
end
return table.concat(ret), num
end
-- The main control flow of the module.
local function _main(args)
-- Get input and exit displaying nothing if the input is empty.
if args[1] == nil then return end
local num = tonumber(args[1])
if not num or num < 0 or num == math.huge then
error('Invalid number ' .. args[1], 2)
elseif num == 0 then
return 'N'
end
-- Return a message for numbers too big to be expressed in Roman numerals.
if num >= 5000000 then
return args[2] or 'N/A'
end
local ret = ''
-- Find the Roman numerals for the large part of numbers.
-- 23 April 2016 - tweaked to >= 4000 to accept big Roman 'IV'
-- The if statement is not strictly necessary, but makes the algorithm
-- more efficient for smaller numbers.
if num >= 4000 then
local bigRomans = {
{ 1000000, 'M' },
{ 900000, 'CM' }, { 500000, 'D' }, { 400000, 'CD' }, { 100000, 'C' },
{ 90000, 'XC' }, { 50000, 'L' }, { 40000, 'XL' }, { 10000, 'X' },
{ 9000, 'IX' }, { 5000, 'V' }, { 4000, 'IV' },
}
local bigLetters
bigLetters, num = getLetters(num, bigRomans)
ret = overline(bigLetters)
end
-- Find the Roman numerals for numbers less than the big Roman threshold.
local smallRomans = {
{ 1000, 'M' },
{ 900, 'CM' }, { 500, 'D' }, { 400, 'CD' }, { 100, 'C' },
{ 90, 'XC' }, { 50, 'L' }, { 40, 'XL' }, { 10, 'X' },
{ 9, 'IX' }, { 5, 'V' }, { 4, 'IV' }, { 1, 'I' }
}
local smallLetters = getLetters( num, smallRomans )
ret = ret .. smallLetters
if args.fraction == 'yes' then
-- Find the Roman numerals for the fractional parts of numbers.
-- If num is not a whole number, add half of 1/1728 (the smallest unit) to equate to rounding.
-- Ensure we're not less than the smallest unit or larger than 1 - smallest unit
-- to avoid getting two "half" symbols or no symbols at all
num = num - math.floor(num)
if num ~= 0 then
num = math.max(1.1/1728, math.min(1727.1/1728, num + 1/3456))
end
local fractionalRomans = {
{ 1/2, 'S' }, { 5/12, "''':'''•''':'''" }, { 1/3, "'''::'''" },
{ 1/4, "''':'''•" }, { 1/6, "''':'''" }, { 1/12, '•' },
{ 1/24, 'Є' }, { 1/36, 'ƧƧ' }, { 1/48, 'Ɔ' }, { 1/72, 'Ƨ' }, { 1/144, '<s>Ƨ</s>' },
{ 1/288, '℈' }, { 1/1728, '»' },
}
local fractionalLetters = getLetters(num, fractionalRomans)
ret = ret .. fractionalLetters
end
return ret
end
function p.main(frame)
-- If called via #invoke, use the args passed into the invoking
-- template, or the args passed to #invoke if any exist. Otherwise
-- assume args are being passed directly in from the debug console
-- or from another Lua module.
local origArgs
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
for k, v in pairs(frame.args) do
origArgs = frame.args
break
end
else
origArgs = frame
end
-- Trim whitespace and remove blank arguments.
local args = {}
for k, v in pairs(origArgs) do
if type( v ) == 'string' then
v = mw.text.trim(v)
end
if v ~= '' then
args[k] = v
end
end
-- exit if not given anything
if args == nil or args == {} then return end
-- Given mathematical expression, simplify to a number
if type(args[1]) == 'string' then
local success, result = pcall(mw.ext.ParserFunctions.expr, args[1])
if success then
args[1] = result
end -- else, pass to _main routine and try to let Lua's tonumber handle it
end
return _main(args)
end
return p
4wa0ln3ffmm2ip5y87j3mrl9kt1i95w
153339
153338
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Module:Roman]]: Needed locally
153338
Scribunto
text/plain
-- This module implements {{Roman}}.
require[[strict]]
local p = {}
-- This function implements the {{overline}} template.
local function overline(s)
return mw.ustring.format( '<span style="text-decoration:overline;">%s</span>', s )
end
-- Gets the Roman numerals for a given numeral table. Returns both the string of
-- numerals and the value of the number after it is finished being processed.
local function getLetters(num, t)
local ret = {}
for _, v in ipairs(t) do
local val, letter = unpack(v)
while num >= val do
num = num - val
table.insert(ret, letter)
end
end
return table.concat(ret), num
end
-- The main control flow of the module.
local function _main(args)
-- Get input and exit displaying nothing if the input is empty.
if args[1] == nil then return end
local num = tonumber(args[1])
if not num or num < 0 or num == math.huge then
error('Invalid number ' .. args[1], 2)
elseif num == 0 then
return 'N'
end
-- Return a message for numbers too big to be expressed in Roman numerals.
if num >= 5000000 then
return args[2] or 'N/A'
end
local ret = ''
-- Find the Roman numerals for the large part of numbers.
-- 23 April 2016 - tweaked to >= 4000 to accept big Roman 'IV'
-- The if statement is not strictly necessary, but makes the algorithm
-- more efficient for smaller numbers.
if num >= 4000 then
local bigRomans = {
{ 1000000, 'M' },
{ 900000, 'CM' }, { 500000, 'D' }, { 400000, 'CD' }, { 100000, 'C' },
{ 90000, 'XC' }, { 50000, 'L' }, { 40000, 'XL' }, { 10000, 'X' },
{ 9000, 'IX' }, { 5000, 'V' }, { 4000, 'IV' },
}
local bigLetters
bigLetters, num = getLetters(num, bigRomans)
ret = overline(bigLetters)
end
-- Find the Roman numerals for numbers less than the big Roman threshold.
local smallRomans = {
{ 1000, 'M' },
{ 900, 'CM' }, { 500, 'D' }, { 400, 'CD' }, { 100, 'C' },
{ 90, 'XC' }, { 50, 'L' }, { 40, 'XL' }, { 10, 'X' },
{ 9, 'IX' }, { 5, 'V' }, { 4, 'IV' }, { 1, 'I' }
}
local smallLetters = getLetters( num, smallRomans )
ret = ret .. smallLetters
if args.fraction == 'yes' then
-- Find the Roman numerals for the fractional parts of numbers.
-- If num is not a whole number, add half of 1/1728 (the smallest unit) to equate to rounding.
-- Ensure we're not less than the smallest unit or larger than 1 - smallest unit
-- to avoid getting two "half" symbols or no symbols at all
num = num - math.floor(num)
if num ~= 0 then
num = math.max(1.1/1728, math.min(1727.1/1728, num + 1/3456))
end
local fractionalRomans = {
{ 1/2, 'S' }, { 5/12, "''':'''•''':'''" }, { 1/3, "'''::'''" },
{ 1/4, "''':'''•" }, { 1/6, "''':'''" }, { 1/12, '•' },
{ 1/24, 'Є' }, { 1/36, 'ƧƧ' }, { 1/48, 'Ɔ' }, { 1/72, 'Ƨ' }, { 1/144, '<s>Ƨ</s>' },
{ 1/288, '℈' }, { 1/1728, '»' },
}
local fractionalLetters = getLetters(num, fractionalRomans)
ret = ret .. fractionalLetters
end
return ret
end
function p.main(frame)
-- If called via #invoke, use the args passed into the invoking
-- template, or the args passed to #invoke if any exist. Otherwise
-- assume args are being passed directly in from the debug console
-- or from another Lua module.
local origArgs
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
for k, v in pairs(frame.args) do
origArgs = frame.args
break
end
else
origArgs = frame
end
-- Trim whitespace and remove blank arguments.
local args = {}
for k, v in pairs(origArgs) do
if type( v ) == 'string' then
v = mw.text.trim(v)
end
if v ~= '' then
args[k] = v
end
end
-- exit if not given anything
if args == nil or args == {} then return end
-- Given mathematical expression, simplify to a number
if type(args[1]) == 'string' then
local success, result = pcall(mw.ext.ParserFunctions.expr, args[1])
if success then
args[1] = result
end -- else, pass to _main routine and try to let Lua's tonumber handle it
end
return _main(args)
end
return p
4wa0ln3ffmm2ip5y87j3mrl9kt1i95w
Module:Ordinal
828
10509
153294
79659
2026-10-06T18:06:41Z
511KeV
8268
153294
Scribunto
text/plain
--[[
This template will add the appropriate ordinal suffix to a given integer.
Please do not modify this code without applying the changes first at
Module:Ordinal/sandbox and testing.
]]
local p = {}
local yesno = require('Module:Yesno') -- boolean value interpretation
--[[
This function converts an integer value into a numeral followed by ordinal indicator.
The output string might contain HTML tags.
Usage:
{{#invoke:Ordinal|ordinal|1=|2=|sup=}}
{{#invoke:Ordinal|ordinal}} - uses the caller's parameters
Parameters
1: Any number or string.
2: Set to "d" if the module should display "d" instead of "nd" and "rd".
sup: Set to yes/no to toggle superscript ordinal suffix.
]]
function p.ordinal(frame)
local args = frame.args
if args[1] == nil then
args = frame:getParent().args
end
if args[1] == nil then
args[1] = "{{{1}}}"
end
return p._ordinal(args[1], (args[2] == 'd'), yesno(args.sup))
end
function p._ordinal(n, d, sup)
local x = tonumber(mw.ustring.match(n, "(%d*)%W*$"))
local suffix = "یِم"
-- If tonumber(n) worked:
if x then
local mod10 = math.abs(x) % 10
local mod100 = math.abs(x) % 100
if mod10 == 1 and mod100 ~= 11 then
suffix = "یِم"
elseif mod10 == 2 and mod100 ~= 12 then
if d then suffix = "d" else suffix = "یِم" end
elseif mod10 == 3 and mod100 ~= 13 then
if d then suffix = "d" else suffix = "یِم" end
end
end
if sup then
suffix = "<sup>" .. suffix .. "</sup>"
end
return n .. suffix
end
return p
7k0cv751m2v2ppdcuqyhke5be9po035
وِکیٖپیٖڈیا:رُکُن فِہرِست اؠڈِٹ تَعداد مُطٲبِق
4
14505
153293
153129
2026-10-06T18:02:27Z
Nadeemulhaqmir-bot
9480
Updated List of Wikipedians
153293
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/آیات محراج|38079]]
|-
| 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|21628]]
|-
| 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|14844]]
|-
| 4
| [[User: Uhaas bot | Uhaas bot]]
| [[Special:Contributions/Uhaas bot|11856]]
|-
| 5
| [[User: SakuraBot | SakuraBot]]
| [[Special:Contributions/SakuraBot|3612]]
|-
| 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|1912]]
|-
|}
</div>
g3fay1tjo9cs2jixspwomms5ys1txzu
فرما:Hlist/styles.css
10
16290
153382
77577
2026-09-12T00:40:45Z
en>BD2412
0
BD2412 moved page [[Template:Horizontal list/styles.css]] to [[Template:Hlist/styles.css]] without leaving a redirect: move back for now
153382
sanitized-css
text/css
/* {{pp-template}} */
/*
* hlist styles are defined in core and Minerva and differ in Minerva. The
* current definitions here (2023-01-01) are sufficient to override Minerva
* without use of the hlist-separated class. The most problematic styles were
* related to margin, padding, and the bullet. Check files listed at
* [[MediaWiki talk:Common.css/to do#hlist-separated]]
*/
/*
* TODO: When the majority of readership supports it (or some beautiful world
* in which grade C support is above the minimum threshold), use :is()
*/
.hlist dl,
.hlist ol,
.hlist ul {
margin: 0;
padding: 0;
}
/* Display list items inline */
.hlist dd,
.hlist dt,
.hlist li {
/*
* don't trust the note that says margin doesn't work with inline
* removing margin: 0 makes dds have margins again
* We also want to reset margin-right in Minerva
*/
margin: 0;
display: inline;
}
/* Display requested top-level lists inline */
.hlist.inline,
.hlist.inline dl,
.hlist.inline ol,
.hlist.inline ul,
/* Display nested lists inline */
.hlist dl dl,
.hlist dl ol,
.hlist dl ul,
.hlist ol dl,
.hlist ol ol,
.hlist ol ul,
.hlist ul dl,
.hlist ul ol,
.hlist ul ul {
display: inline;
}
/* Hide empty list items */
.hlist .mw-empty-li {
display: none;
}
/* TODO: :not() can maybe be used here to remove the later rule. naive test
* seems to work. more testing needed. like so:
*.hlist dt:not(:last-child)::after {
* content: ": ";
*}
*.hlist dd:not(:last-child)::after,
*.hlist li:not(:last-child)::after {
* content: " · ";
* font-weight: bold;
*}
*/
/* Generate interpuncts */
.hlist dt::after {
content: ": ";
}
.hlist dd::after,
.hlist li::after {
content: "\a0· ";
font-weight: bold;
}
.hlist dd:last-child::after,
.hlist dt:last-child::after,
.hlist li:last-child::after {
content: none;
}
/* Add parentheses around nested lists */
.hlist dd dd:first-child::before,
.hlist dd dt:first-child::before,
.hlist dd li:first-child::before,
.hlist dt dd:first-child::before,
.hlist dt dt:first-child::before,
.hlist dt li:first-child::before,
.hlist li dd:first-child::before,
.hlist li dt:first-child::before,
.hlist li li:first-child::before {
content: " (";
font-weight: normal;
}
.hlist dd dd:last-child::after,
.hlist dd dt:last-child::after,
.hlist dd li:last-child::after,
.hlist dt dd:last-child::after,
.hlist dt dt:last-child::after,
.hlist dt li:last-child::after,
.hlist li dd:last-child::after,
.hlist li dt:last-child::after,
.hlist li li:last-child::after {
content: ")";
font-weight: normal;
}
/* Put ordinals in front of ordered list items */
.hlist ol {
counter-reset: listitem;
}
.hlist ol > li {
counter-increment: listitem;
}
.hlist ol > li::before {
content: " " counter(listitem) "\a0";
}
.hlist dd ol > li:first-child::before,
.hlist dt ol > li:first-child::before,
.hlist li ol > li:first-child::before {
content: " (" counter(listitem) "\a0";
}
c4a9gdxc068l0us4sz11634bne7iv2z
153383
153382
2026-10-06T18:16:06Z
511KeV
8268
1 revision imported from [[:en:Template:Hlist/styles.css]]: Needed locally
153382
sanitized-css
text/css
/* {{pp-template}} */
/*
* hlist styles are defined in core and Minerva and differ in Minerva. The
* current definitions here (2023-01-01) are sufficient to override Minerva
* without use of the hlist-separated class. The most problematic styles were
* related to margin, padding, and the bullet. Check files listed at
* [[MediaWiki talk:Common.css/to do#hlist-separated]]
*/
/*
* TODO: When the majority of readership supports it (or some beautiful world
* in which grade C support is above the minimum threshold), use :is()
*/
.hlist dl,
.hlist ol,
.hlist ul {
margin: 0;
padding: 0;
}
/* Display list items inline */
.hlist dd,
.hlist dt,
.hlist li {
/*
* don't trust the note that says margin doesn't work with inline
* removing margin: 0 makes dds have margins again
* We also want to reset margin-right in Minerva
*/
margin: 0;
display: inline;
}
/* Display requested top-level lists inline */
.hlist.inline,
.hlist.inline dl,
.hlist.inline ol,
.hlist.inline ul,
/* Display nested lists inline */
.hlist dl dl,
.hlist dl ol,
.hlist dl ul,
.hlist ol dl,
.hlist ol ol,
.hlist ol ul,
.hlist ul dl,
.hlist ul ol,
.hlist ul ul {
display: inline;
}
/* Hide empty list items */
.hlist .mw-empty-li {
display: none;
}
/* TODO: :not() can maybe be used here to remove the later rule. naive test
* seems to work. more testing needed. like so:
*.hlist dt:not(:last-child)::after {
* content: ": ";
*}
*.hlist dd:not(:last-child)::after,
*.hlist li:not(:last-child)::after {
* content: " · ";
* font-weight: bold;
*}
*/
/* Generate interpuncts */
.hlist dt::after {
content: ": ";
}
.hlist dd::after,
.hlist li::after {
content: "\a0· ";
font-weight: bold;
}
.hlist dd:last-child::after,
.hlist dt:last-child::after,
.hlist li:last-child::after {
content: none;
}
/* Add parentheses around nested lists */
.hlist dd dd:first-child::before,
.hlist dd dt:first-child::before,
.hlist dd li:first-child::before,
.hlist dt dd:first-child::before,
.hlist dt dt:first-child::before,
.hlist dt li:first-child::before,
.hlist li dd:first-child::before,
.hlist li dt:first-child::before,
.hlist li li:first-child::before {
content: " (";
font-weight: normal;
}
.hlist dd dd:last-child::after,
.hlist dd dt:last-child::after,
.hlist dd li:last-child::after,
.hlist dt dd:last-child::after,
.hlist dt dt:last-child::after,
.hlist dt li:last-child::after,
.hlist li dd:last-child::after,
.hlist li dt:last-child::after,
.hlist li li:last-child::after {
content: ")";
font-weight: normal;
}
/* Put ordinals in front of ordered list items */
.hlist ol {
counter-reset: listitem;
}
.hlist ol > li {
counter-increment: listitem;
}
.hlist ol > li::before {
content: " " counter(listitem) "\a0";
}
.hlist dd ol > li:first-child::before,
.hlist dt ol > li:first-child::before,
.hlist li ol > li:first-child::before {
content: " (" counter(listitem) "\a0";
}
c4a9gdxc068l0us4sz11634bne7iv2z
فرما:Pre/styles.css
10
18577
153334
83445
2024-01-15T20:21:34Z
en>Pppery
0
Padlock
153334
sanitized-css
text/css
/* {{pp-template}} */
.pre-borderless {
border: none;
}
lr9ssbn3d1gy0eko4cg1ybqfok23ynd
153335
153334
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Template:Pre/styles.css]]: Needed locally
153334
sanitized-css
text/css
/* {{pp-template}} */
.pre-borderless {
border: none;
}
lr9ssbn3d1gy0eko4cg1ybqfok23ynd
Module:Transclusion count/data/F
828
18914
153417
152806
2026-10-07T03:19:04Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153417
Scribunto
text/plain
return {
["FULLROOTPAGENAME"] = 460,
["Facepalm"] = 100,
["Fail"] = 100,
["File_other"] = 120,
["Find_sources"] = 450,
["Find_sources_mainspace"] = 2100,
["First_word"] = 120,
["Fishing"] = 100,
["Fixed"] = 100,
["Fixed_by_reporter"] = 100,
["Flag"] = 510,
["Flag/core"] = 510,
["Flagcountry"] = 120,
["Flagicon"] = 1300,
["Flagicon/core"] = 1300,
["For_nowiki"] = 110,
["Module:Factorization"] = 100,
["Module:File_link"] = 300,
["Module:Find_sources"] = 2500,
["Module:Find_sources/config"] = 2500,
["Module:Find_sources/links/free_news_sources"] = 450,
["Module:Find_sources/links/google"] = 2500,
["Module:Find_sources/links/google_books"] = 2500,
["Module:Find_sources/links/google_free_images"] = 450,
["Module:Find_sources/links/google_news"] = 2500,
["Module:Find_sources/links/google_newspapers"] = 2500,
["Module:Find_sources/links/google_scholar"] = 2500,
["Module:Find_sources/links/jstor"] = 2500,
["Module:Find_sources/links/new_york_times"] = 450,
["Module:Find_sources/links/wikipedia_library"] = 450,
["Module:Find_sources/links/wikipedia_reference_search"] = 450,
["Module:Find_sources/templates/Find_sources"] = 450,
["Module:Find_sources/templates/Find_sources_mainspace"] = 2100,
["Module:Footnotes"] = 130,
["Module:Footnotes/anchor_id_list"] = 130,
["Module:Footnotes/anchor_id_list/data"] = 130,
["Module:Footnotes/whitelist"] = 130,
["Module:For_nowiki"] = 110,
["Module:Format_link"] = 200,
}
rsqn9v298fcsywlnlybu3wqb8b636fq
Module:Transclusion count/data/M
828
18917
153420
153151
2026-10-07T03:20:14Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153420
Scribunto
text/plain
return {
["MONTHNAME"] = 180,
["MONTHNUMBER"] = 180,
["Main_other"] = 8100,
["Map_draw"] = 100,
["Maplink"] = 130,
["Marked"] = 100,
["MatchRegex"] = 310,
["Max"] = 920,
["Maybe-i"] = 100,
["Maybe-t"] = 100,
["Mbox"] = 430,
["Megaphoneduck"] = 100,
["Merge_done"] = 100,
["MoreInfo"] = 100,
["Moved_to_commons"] = 100,
["Multiple_issues"] = 140,
["MyValue"] = 360,
["Module:Map/i18n"] = 100,
["Module:Map1"] = 100,
["Module:Mapframe"] = 360,
["Module:Math"] = 6100,
["Module:Message_box"] = 4400,
["Module:Message_box/ambox.css"] = 2400,
["Module:Message_box/configuration"] = 4400,
["Module:Message_box/imbox.css"] = 110,
["Module:Message_box/ombox.css"] = 1200,
["Module:Message_box/tmbox.css"] = 640,
}
cnye33kgpbdhzroj4xv3yjsb7ks7ecp
Module:Transclusion count/data/O
828
18918
153422
152730
2026-10-07T03:20:35Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153422
Scribunto
text/plain
return {
["Off-topic_talk"] = 100,
["Ombox"] = 740,
["OnHoldUntil"] = 100,
["On_hold"] = 100,
["Opblocked"] = 100,
["OpenDivRTL"] = 230,
["Order_of_magnitude"] = 840,
["Ordinal"] = 500,
["Orphan"] = 300,
["Orz"] = 100,
["Module:OfficialName"] = 820,
["Module:Ordinal"] = 500,
}
c4i7pjyvoj4zrzi5hxz5npr241l4zyk
Module:Transclusion count/data/R
828
18920
153424
152732
2026-10-07T03:21:04Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153424
Scribunto
text/plain
return {
["Rblock"] = 100,
["Read"] = 100,
["Redflag"] = 100,
["Redirect_template"] = 120,
["Redundant_symbol"] = 100,
["Reflist"] = 170,
["Relist_icon"] = 100,
["Relisted"] = 100,
["Remark"] = 100,
["Remind"] = 100,
["Removed"] = 100,
["Renamer_note"] = 100,
["Reopened"] = 100,
["Replace"] = 1900,
["Replaced"] = 100,
["Reply_to"] = 130,
["Resize"] = 160,
["Resolved1"] = 100,
["Resolved_mark"] = 100,
["Resolved_mark_large"] = 100,
["Responded"] = 100,
["Reverted"] = 100,
["Reviewing"] = 100,
["Reviewing_request"] = 100,
["Right"] = 100,
["Rimshot"] = 100,
["Roman"] = 130,
["Round"] = 880,
["Module:Redirect"] = 690,
["Module:Redirect_template"] = 120,
["Module:Reply_to"] = 130,
["Module:Roman"] = 130,
}
g2vpe2u215m7wg1b5zj2otv8t7ln2z4
Module:Transclusion count/data/U
828
18921
153426
152735
2026-10-07T03:21:34Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153426
Scribunto
text/plain
return {
["URL"] = 890,
["Ubl"] = 730,
["Unapproved"] = 100,
["Unbulleted_list"] = 1300,
["UnderReview"] = 100,
["Undone"] = 100,
["Unlikely"] = 100,
["Unnecessary"] = 100,
["Unprod"] = 100,
["Unrelated"] = 100,
["Uploaded"] = 100,
["Urgent"] = 100,
["User-blocked"] = 100,
["Module:URL"] = 930,
["Module:Unicode_data"] = 1000,
["Module:Unicode_data/scripts"] = 800,
["Module:Unsubst"] = 2300,
}
kdpkfi4vp82035kol7v6x0tz5vn9o9p
Module:Transclusion count/data/Y
828
18924
153374
152737
2026-10-04T05:11:17Z
en>Ahechtbot
0
[[Wikipedia:BOT|Bot]]: Updated page.
153374
Scribunto
text/plain
return {
["Y"] = 7500,
["YEAR"] = 113000,
["YUG"] = 2100,
["YYYY_crimes_in_countryname_category_header"] = 3000,
["YYYY_crimes_in_countryname_category_header/inner_core"] = 3000,
["YYYY_crimes_in_countryname_category_header/outer_core"] = 3000,
["YYYY_disasters_in_countryname_category_header"] = 2700,
["YYYY_disasters_in_countryname_category_header/inner_core"] = 2700,
["YYYY_disasters_in_countryname_category_header/outer_core"] = 2700,
["YYYY_elections_in_countryname_category_header"] = 3600,
["YYYY_elections_in_countryname_category_header/inner_core"] = 3600,
["YYYY_elections_in_countryname_category_header/outer_core"] = 3600,
["YYYY_foos_category_header"] = 2100,
["YYYY_foos_category_header/core"] = 2100,
["YYYY_genre_films_category_header"] = 2400,
["YYYY_genre_films_category_header/core"] = 2400,
["YYYY_in_nationality_sport_category_header"] = 13000,
["YYYY_in_nationality_sport_category_header/inner_core"] = 13000,
["YYYY_in_nationality_sport_category_header/outer_core"] = 13000,
["YYYY_in_nationality_women's_sport_category_header"] = 2400,
["YYYY_in_nationality_women's_sport_category_header/core"] = 2400,
["YYYY_in_sport_category_header"] = 6900,
["YYYY_in_sport_category_header/inner_core"] = 6900,
["YYYY_in_sport_category_header/outer_core"] = 6900,
["YYYY_nationality_films_category_header"] = 3200,
["YYYY_nationality_films_category_header/core"] = 3200,
["Ya"] = 5300,
["Year"] = 6600,
["Year2range"] = 8000,
["YearInCountryPortalBox"] = 39000,
["Year_article"] = 11000,
["Year_births_or_deaths_category_header"] = 4500,
["Year_births_or_deaths_category_header/core"] = 4500,
["Year_category_header"] = 3000,
["Year_category_header/core"] = 3000,
["Year_category_name"] = 7100,
["Year_category_name/AD_year"] = 6400,
["Year_in_Europe"] = 6200,
["Year_in_Europe/expr"] = 6200,
["Year_in_US_state_category"] = 9600,
["Year_in_US_state_category/core"] = 9600,
["Year_in_continent/expr"] = 9300,
["Year_in_continent/link"] = 9300,
["Year_in_continent_category"] = 3700,
["Year_in_continent_category/core"] = 3700,
["Year_in_country_by_month"] = 2700,
["Year_in_country_by_month/core"] = 2700,
["Year_in_country_category"] = 36000,
["Year_in_country_category/inner_core"] = 36000,
["Year_in_country_category/outer_core"] = 36000,
["Year_in_country_portal_box"] = 86000,
["Year_in_country_portal_box/make"] = 86000,
["Year_in_country_portal_box/parse"] = 86000,
["Year_in_football"] = 2600,
["Year_in_nationality_television_category"] = 3400,
["Year_in_nationality_television_category/core"] = 3400,
["Year_in_region"] = 14000,
["Year_in_region/link"] = 14000,
["Year_in_various_calendars"] = 2600,
["Year_nationality_television_series_debuts_or_endings_category"] = 5100,
["Year_nationality_television_series_debuts_or_endings_category/core"] = 5100,
["Year_nav"] = 2600,
["Year_nav_topic5"] = 5600,
["Year_topic_navigation"] = 7300,
["Yearly_archive_list"] = 877000,
["Yearly_archive_list/display"] = 877000,
["Years_or_months_ago"] = 110000,
["Yel"] = 19000,
["Yellow_card"] = 19000,
["Yes"] = 14000,
["Yes2"] = 13000,
["YesNo"] = 2800,
["YesNo-Yes"] = 57000,
["Yesno"] = 10400000,
["Yesno-no"] = 2250000,
["Yesno-yes"] = 725000,
["Ygm"] = 2000,
["Yo"] = 27000,
["You've_got_mail"] = 12000,
["YouTube"] = 76000,
["Youtube"] = 2300,
["Yy"] = 11000,
["Yycat"] = 2400,
["Yyend"] = 11000,
["Yytop"] = 11000,
["Module:Year_category_type"] = 3000,
["Module:Year_in_various_calendars"] = 2600,
["Module:Yesno"] = 33400000,
}
41qjbc83u821406q8cn41t2olhwg37d
153375
153374
2026-10-06T18:16:06Z
511KeV
8268
1 revision imported from [[:en:Module:Transclusion_count/data/Y]]: Needed locally
153374
Scribunto
text/plain
return {
["Y"] = 7500,
["YEAR"] = 113000,
["YUG"] = 2100,
["YYYY_crimes_in_countryname_category_header"] = 3000,
["YYYY_crimes_in_countryname_category_header/inner_core"] = 3000,
["YYYY_crimes_in_countryname_category_header/outer_core"] = 3000,
["YYYY_disasters_in_countryname_category_header"] = 2700,
["YYYY_disasters_in_countryname_category_header/inner_core"] = 2700,
["YYYY_disasters_in_countryname_category_header/outer_core"] = 2700,
["YYYY_elections_in_countryname_category_header"] = 3600,
["YYYY_elections_in_countryname_category_header/inner_core"] = 3600,
["YYYY_elections_in_countryname_category_header/outer_core"] = 3600,
["YYYY_foos_category_header"] = 2100,
["YYYY_foos_category_header/core"] = 2100,
["YYYY_genre_films_category_header"] = 2400,
["YYYY_genre_films_category_header/core"] = 2400,
["YYYY_in_nationality_sport_category_header"] = 13000,
["YYYY_in_nationality_sport_category_header/inner_core"] = 13000,
["YYYY_in_nationality_sport_category_header/outer_core"] = 13000,
["YYYY_in_nationality_women's_sport_category_header"] = 2400,
["YYYY_in_nationality_women's_sport_category_header/core"] = 2400,
["YYYY_in_sport_category_header"] = 6900,
["YYYY_in_sport_category_header/inner_core"] = 6900,
["YYYY_in_sport_category_header/outer_core"] = 6900,
["YYYY_nationality_films_category_header"] = 3200,
["YYYY_nationality_films_category_header/core"] = 3200,
["Ya"] = 5300,
["Year"] = 6600,
["Year2range"] = 8000,
["YearInCountryPortalBox"] = 39000,
["Year_article"] = 11000,
["Year_births_or_deaths_category_header"] = 4500,
["Year_births_or_deaths_category_header/core"] = 4500,
["Year_category_header"] = 3000,
["Year_category_header/core"] = 3000,
["Year_category_name"] = 7100,
["Year_category_name/AD_year"] = 6400,
["Year_in_Europe"] = 6200,
["Year_in_Europe/expr"] = 6200,
["Year_in_US_state_category"] = 9600,
["Year_in_US_state_category/core"] = 9600,
["Year_in_continent/expr"] = 9300,
["Year_in_continent/link"] = 9300,
["Year_in_continent_category"] = 3700,
["Year_in_continent_category/core"] = 3700,
["Year_in_country_by_month"] = 2700,
["Year_in_country_by_month/core"] = 2700,
["Year_in_country_category"] = 36000,
["Year_in_country_category/inner_core"] = 36000,
["Year_in_country_category/outer_core"] = 36000,
["Year_in_country_portal_box"] = 86000,
["Year_in_country_portal_box/make"] = 86000,
["Year_in_country_portal_box/parse"] = 86000,
["Year_in_football"] = 2600,
["Year_in_nationality_television_category"] = 3400,
["Year_in_nationality_television_category/core"] = 3400,
["Year_in_region"] = 14000,
["Year_in_region/link"] = 14000,
["Year_in_various_calendars"] = 2600,
["Year_nationality_television_series_debuts_or_endings_category"] = 5100,
["Year_nationality_television_series_debuts_or_endings_category/core"] = 5100,
["Year_nav"] = 2600,
["Year_nav_topic5"] = 5600,
["Year_topic_navigation"] = 7300,
["Yearly_archive_list"] = 877000,
["Yearly_archive_list/display"] = 877000,
["Years_or_months_ago"] = 110000,
["Yel"] = 19000,
["Yellow_card"] = 19000,
["Yes"] = 14000,
["Yes2"] = 13000,
["YesNo"] = 2800,
["YesNo-Yes"] = 57000,
["Yesno"] = 10400000,
["Yesno-no"] = 2250000,
["Yesno-yes"] = 725000,
["Ygm"] = 2000,
["Yo"] = 27000,
["You've_got_mail"] = 12000,
["YouTube"] = 76000,
["Youtube"] = 2300,
["Yy"] = 11000,
["Yycat"] = 2400,
["Yyend"] = 11000,
["Yytop"] = 11000,
["Module:Year_category_type"] = 3000,
["Module:Year_in_various_calendars"] = 2600,
["Module:Yesno"] = 33400000,
}
41qjbc83u821406q8cn41t2olhwg37d
153427
153375
2026-10-07T03:22:15Z
Uhaas bot
8335
[[وپ:باٹ |باٹ]]: چھُ صَفہٕ اؠڈِٹ کَران۔
153427
Scribunto
text/plain
return {
["Y&"] = 100,
["Yeac"] = 100,
["Yeag"] = 100,
["Yellow_tick"] = 100,
["Yes_check"] = 100,
["Yesno"] = 3500,
["Yesno-no"] = 1500,
["You're_welcome"] = 100,
["Module:Yesno"] = 8300,
}
ergv6tclhuqgg79fftgesyjdrbzflpk
فرما:Year article header/zc
10
18948
153256
153147
2026-10-06T17:44:46Z
511KeV
8268
/* */
153256
wikitext
text/x-wiki
<includeonly><!--Zeller's congruence, modified -->{{#ifexpr:{{{1}}}>1582|{{#ifeq: {{#expr:{{{1}}} mod 100}} | 0
| {{#ifeq: {{#expr:{{{1}}} mod 400}} | 0
| a [[لیپ ؤری یُس{{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ |سینچری لیپ ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]
| an [[عام ؤری یُس {{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ|غیر معمولی کامن ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]}}
| {{#ifeq: {{#expr:{{{1}}} mod 4}} | 0
| a [[لیپ ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]
| اَکھ [[عام ؤری یُس {{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ]]}}}} [[گریگورین کیلنڈر]] مُطٲبِق۔ یہٕ چھُ {{#ifexpr:{{{1}}}<1923| and {{Year article header/Julian start|{{{1}}}}}}}|{{Year article header/Julian start|{{{1}}}}}}}، [[عام زَمانہٕ|عام زَمانُک]] {{ordinal|{{{1}}}}} ؤری، {{Year article header/year number|{{{1}}}}}</includeonly><noinclude>{{Short description|Computes Zeller's Congruence to determine whether a year is a leap year}}
{{Documentation}}
</noinclude>
8i5al90kgpxqe3nsmrdfxxwbbpqw5am
153259
153256
2026-10-06T17:51:29Z
511KeV
8268
/* */
153259
wikitext
text/x-wiki
<includeonly><!--Zeller's congruence, modified -->{{#ifexpr:{{{1}}}>1582|{{#ifeq: {{#expr:{{{1}}} mod 100}} | 0
| {{#ifeq: {{#expr:{{{1}}} mod 400}} | 0
| اکھ [[لیپ ؤری یُس{{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ |سینچری لیپ ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]
| an [[عام ؤری یُس {{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ|غیر معمولی کامن ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]}}
| {{#ifeq: {{#expr:{{{1}}} mod 4}} | 0
|اکھ [[لیپ ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]
| اَکھ [[عام ؤری یُس {{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ]]}}}} [[گریگورین کیلنڈر]] مُطٲبِق۔ یہٕ چھُ {{#ifexpr:{{{1}}}<1923| and {{Year article header/Julian start|{{{1}}}}}}}|{{Year article header/Julian start|{{{1}}}}}}}، [[عام زَمانہٕ|عام زَمانُک]] {{ordinal|{{{1}}}}} ؤری، {{Year article header/year number|{{{1}}}}}</includeonly><noinclude>{{Short description|Computes Zeller's Congruence to determine whether a year is a leap year}}
{{Documentation}}
</noinclude>
hmfg6x7b5i2blntliar7wr4v9175km6
153269
153259
2026-10-06T17:57:54Z
511KeV
8268
/* */
153269
wikitext
text/x-wiki
<includeonly><!--Zeller's congruence, modified -->{{#ifexpr:{{{1}}}>1582|{{#ifeq: {{#expr:{{{1}}} mod 100}} | 0
| {{#ifeq: {{#expr:{{{1}}} mod 400}} | 0
| اکھ [[لیپ ؤری یُس{{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ |سینچری لیپ ؤری یُس {{#time:l|{{{1}}}-01-01}} پیٹھ شروع گژھان چُھ ]] | an [[عام ؤری یُس {{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ|غیر معمولی کامن ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]}}
| {{#ifeq: {{#expr:{{{1}}} mod 4}} | 0
|اکھ [[لیپ ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]
| اَکھ [[عام ؤری یُس {{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ]]}}}} [[گریگورین کیلنڈر]] مُطٲبِق۔ یہٕ چھُ {{#ifexpr:{{{1}}}<1923| and {{Year article header/Julian start|{{{1}}}}}}}|{{Year article header/Julian start|{{{1}}}}}}}، [[عام زَمانہٕ|عام زَمانُک]] {{ordinal|{{{1}}}}} ؤری، {{Year article header/year number|{{{1}}}}}</includeonly><noinclude>{{Short description|Computes Zeller's Congruence to determine whether a year is a leap year}}
{{Documentation}}
</noinclude>
oxoku154hi75ce8m7mm0679wv2pa7na
153270
153269
2026-10-06T17:59:15Z
511KeV
8268
/* */
153270
wikitext
text/x-wiki
<includeonly><!--Zeller's congruence, modified -->{{#ifexpr:{{{1}}}>1582|{{#ifeq: {{#expr:{{{1}}} mod 100}} | 0
| {{#ifeq: {{#expr:{{{1}}} mod 400}} | 0
| اکھ [[لیپ ؤری یُس{{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ |سینچری لیپ ؤری یُس {{#time:l|{{{1}}}-01-01}} پیٹھ شروع گژھان چُھ ]] | an [[عام ؤری یُس {{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ|غیر معمولی کامن ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]}}
| {{#ifeq: {{#expr:{{{1}}} mod 4}} | 0
|اکھ [[لیپ ؤری یُس پیٹھ شروع گژھان چُھ {{#time:l|{{{1}}}-01-01}}]]
| اَکھ [[عام ؤری یُس {{#time:l|{{{1}}}-01-01}} پؠٹھ شروع گژھان چھُ]]}}}} [[گریگورین کیلنڈر]] مُطٲبِق۔ یہٕ چھُ {{#ifexpr:{{{1}}}<1923| تہٕ {{Year article header/Julian start|{{{1}}}}}}}|{{Year article header/Julian start|{{{1}}}}}}}، [[عام زَمانہٕ|عام زَمانُک]] {{ordinal|{{{1}}}}} ؤری، {{Year article header/year number|{{{1}}}}}</includeonly><noinclude>{{Short description|Computes Zeller's Congruence to determine whether a year is a leap year}}
{{Documentation}}
</noinclude>
m8aeshd59h51a2cm5abqpjdg9cb2yzu
فرما:Year article header/year number
10
18949
153260
93280
2026-10-06T17:52:30Z
511KeV
8268
/* */
153260
wikitext
text/x-wiki
<includeonly> {{ordinal|{{#ifeq: {{#expr:{{#time:Y|{{{1}}}-01-01}} mod 1000}} | 0 | 1000 |{{#expr:{{#time:Y|{{{1}}}-01-01}} mod 1000}}}}}} {{#ifeq: {{#expr:{{#time:Y|{{{1}}}-01-01}} mod 1000}} | 0 | and last|}} ؤری {{dr|y|m|{{{1}}}|0|ys}}<!-- if same for century and millenium, use "and" -->{{#ifexpr:{{#time:Y|{{{1}}}-01-01}} mod 1000>=1 and {{#time:Y|{{{1}}}-01-01}} mod 1000<=99| تہٕ|، {{ordinal|{{#ifeq: {{#expr:{{#time:y|{{{1}}}-01-01}}}} | 0 | 100 |{{#expr:{{#time:y|{{{1}}}-01-01}}}}}}}} {{#ifeq: {{#expr:{{#time:y|{{{1}}}-01-01}}}} | 0 | and last|}} ؤری}} {{dr|y|c|{{{1}}}|0|y}}، تہٕ {{ordinal| {{#expr:({{#time:y|{{{1}}}-01-01}} mod 10)+1}}}} {{#ifeq: {{#expr:({{#time:y|{{{1}}}-01-01}} mod 10)+1}}|Opt1|Opt2}} {{#ifeq: {{#expr:({{#time:y|{{{1}}}-01-01}} mod 10)+1}}| 10 | تہٕ ٲخری |}} ؤری {{dr|y|d|{{{1}}}|0|ys}} دَہٲیی ہُند</includeonly><noinclude>
{{Documentation}}
</noinclude>
cf2tg1xxe5eshlnshb30kdnpjbkgofw
153271
153260
2026-10-06T18:00:39Z
511KeV
8268
/* */
153271
wikitext
text/x-wiki
<includeonly> {{ordinal|{{#ifeq: {{#expr:{{#time:Y|{{{1}}}-01-01}} mod 1000}} | 0 | 1000 |{{#expr:{{#time:Y|{{{1}}}-01-01}} mod 1000}}}}}} {{#ifeq: {{#expr:{{#time:Y|{{{1}}}-01-01}} mod 1000}} | 0 | and last|}} ؤری {{dr|y|m|{{{1}}}|0|ys}}<!-- if same for century and millenium, use "and" -->{{#ifexpr:{{#time:Y|{{{1}}}-01-01}} mod 1000>=1 and {{#time:Y|{{{1}}}-01-01}} mod 1000<=99| تہٕ|، {{ordinal|{{#ifeq: {{#expr:{{#time:y|{{{1}}}-01-01}}}} | 0 | 100 |{{#expr:{{#time:y|{{{1}}}-01-01}}}}}}}} {{#ifeq: {{#expr:{{#time:y|{{{1}}}-01-01}}}} | 0 | تہٕ ٲخری|}} ؤری}} {{dr|y|c|{{{1}}}|0|y}}، تہٕ {{ordinal| {{#expr:({{#time:y|{{{1}}}-01-01}} mod 10)+1}}}} {{#ifeq: {{#expr:({{#time:y|{{{1}}}-01-01}} mod 10)+1}}|Opt1|Opt2}} {{#ifeq: {{#expr:({{#time:y|{{{1}}}-01-01}} mod 10)+1}}| 10 | تہٕ ٲخری |}} ؤری {{dr|y|d|{{{1}}}|0|ys}} دَہٲیی ہُند</includeonly><noinclude>
{{Documentation}}
</noinclude>
5himjwth8c5bao38x63qpmonthm7i4l
153285
153271
2026-10-06T18:01:49Z
511KeV
8268
/* */
153285
wikitext
text/x-wiki
<includeonly> {{ordinal|{{#ifeq: {{#expr:{{#time:Y|{{{1}}}-01-01}} mod 1000}} | 0 | 1000 |{{#expr:{{#time:Y|{{{1}}}-01-01}} mod 1000}}}}}} {{#ifeq: {{#expr:{{#time:Y|{{{1}}}-01-01}} mod 1000}} | 0 | تہٕ ٲخری|}} ؤری {{dr|y|m|{{{1}}}|0|ys}}<!-- if same for century and millenium, use "and" -->{{#ifexpr:{{#time:Y|{{{1}}}-01-01}} mod 1000>=1 and {{#time:Y|{{{1}}}-01-01}} mod 1000<=99| تہٕ|، {{ordinal|{{#ifeq: {{#expr:{{#time:y|{{{1}}}-01-01}}}} | 0 | 100 |{{#expr:{{#time:y|{{{1}}}-01-01}}}}}}}} {{#ifeq: {{#expr:{{#time:y|{{{1}}}-01-01}}}} | 0 | تہٕ ٲخری|}} ؤری}} {{dr|y|c|{{{1}}}|0|y}}، تہٕ {{ordinal| {{#expr:({{#time:y|{{{1}}}-01-01}} mod 10)+1}}}} {{#ifeq: {{#expr:({{#time:y|{{{1}}}-01-01}} mod 10)+1}}|Opt1|Opt2}} {{#ifeq: {{#expr:({{#time:y|{{{1}}}-01-01}} mod 10)+1}}| 10 | تہٕ ٲخری |}} ؤری {{dr|y|d|{{{1}}}|0|ys}} دَہٲیی ہُند</includeonly><noinclude>
{{Documentation}}
</noinclude>
oh5kdfund47tseebdbl1cslygw6k3ms
رُکُن:Uhaas bot/last7
2
18970
153237
153234
2026-10-06T12:30:35Z
Uhaas bot
8335
Updating recent articles
153237
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اتھ پھیٛار]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
e9s88larmdy2n0srwdb6mvtd6etw6gh
153246
153237
2026-10-06T14:30:50Z
Uhaas bot
8335
Updating recent articles
153246
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اتھ پھیٛار]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[علی محمد ساگر]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
710c880zkw31fjvifk8p6bt7ifftfhm
153247
153246
2026-10-06T15:30:30Z
Uhaas bot
8335
Updating recent articles
153247
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اتھ پھیٛار]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
e9s88larmdy2n0srwdb6mvtd6etw6gh
153252
153247
2026-10-06T16:30:33Z
Uhaas bot
8335
Updating recent articles
153252
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اتھ پھیٛار]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایلیٖن وۄارنوس]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
3c0zrjpak30b2brir57d324qxyboub8
153255
153252
2026-10-06T17:30:31Z
Uhaas bot
8335
Updating recent articles
153255
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اتھ پھیٛار]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[علی محمد ساگر]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
710c880zkw31fjvifk8p6bt7ifftfhm
153397
153255
2026-10-06T18:30:33Z
Uhaas bot
8335
Updating recent articles
153397
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اتھ پھیٛار]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
noukwt9vuaxc4wa98gw41xtx8rf3drx
153408
153397
2026-10-06T19:30:36Z
Uhaas bot
8335
Updating recent articles
153408
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اتھ پھیٛار]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
owyq1e42okpwfwxuifdbozvnjnu2vgg
153410
153408
2026-10-06T20:30:34Z
Uhaas bot
8335
Updating recent articles
153410
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اتھ پھیٛار]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
jh47a24f4qx3s6c8sy87nhp37j67f3j
153411
153410
2026-10-06T21:30:32Z
Uhaas bot
8335
Updating recent articles
153411
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایشوریا راے]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
402sgcnsmoov8q75p48ruxslk8m6hgf
153412
153411
2026-10-06T23:30:47Z
Uhaas bot
8335
Updating recent articles
153412
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایلیٖن وۄارنوس]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 06 October 2026 پؠٹھ۔</small>
qtqefpd85bto5u5z4d43n14np7zpt6a
153413
153412
2026-10-07T00:30:38Z
Uhaas bot
8335
Updating recent articles
153413
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایشوریا راے]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 07 October 2026 پؠٹھ۔</small>
hxf55d1eziayn3ywruduy0yr8qdro3u
153414
153413
2026-10-07T01:30:36Z
Uhaas bot
8335
Updating recent articles
153414
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اوتھیلو]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 07 October 2026 پؠٹھ۔</small>
2s5pj4txosxnfhu6oymrkidj8xfcz2u
153428
153414
2026-10-07T03:30:33Z
Uhaas bot
8335
Updating recent articles
153428
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایشوریا راے]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 07 October 2026 پؠٹھ۔</small>
huv88p6qpz13dj3wvscfmsy96j6jvmm
153431
153428
2026-10-07T04:30:36Z
Uhaas bot
8335
Updating recent articles
153431
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اوتھیلو]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 07 October 2026 پؠٹھ۔</small>
2s5pj4txosxnfhu6oymrkidj8xfcz2u
153439
153431
2026-10-07T06:30:39Z
Uhaas bot
8335
Updating recent articles
153439
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[علی محمد ساگر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 07 October 2026 پؠٹھ۔</small>
9npae0o72rb0viko8kgiursazxqigzt
153463
153439
2026-10-07T09:30:32Z
Uhaas bot
8335
Updating recent articles
153463
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[علی محمد ساگر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 07 October 2026 پؠٹھ۔</small>
4cn2ajdi35obswytsrqnbuob5r233df
153475
153463
2026-10-07T10:30:32Z
Uhaas bot
8335
Updating recent articles
153475
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[علی محمد ساگر]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 07 October 2026 پؠٹھ۔</small>
pqscow9bts5xgm0on5hau2qjccd6z9v
153479
153475
2026-10-07T11:30:35Z
Uhaas bot
8335
Updating recent articles
153479
wikitext
text/x-wiki
{|
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(255, 0, 0); padding:0.2em; vertical-align:middle;" | 22 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مۄغَل سَلطَنَت]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(197, 57, 0); padding:0.2em; vertical-align:middle;" | 17 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[لام]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(185, 69, 0); padding:0.2em; vertical-align:middle;" | 16 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[شِوکُمار شرما]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[فٕلَے دُبَے پرواز 1073]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(162, 92, 0); padding:0.2em; vertical-align:middle;" | 14 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[ایڈولٕف ہِٹلر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(139, 115, 0); padding:0.2em; vertical-align:middle;" | 12 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[دُبَے بین الاقوٲمی ہوٲیی اڈٕ]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(127, 127, 0); padding:0.2em; vertical-align:middle;" | 11 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[مَنوٗ بھاکر]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[تَنویٖر صادِق]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(115, 139, 0); padding:0.2em; vertical-align:middle;" | 10 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[سٔیِد میٖر قاسِم]]
|-
| style="text-align:center; font-size:130%; color:white; background:rgb(104, 150, 0); padding:0.2em; vertical-align:middle;" | 9 <span style="font-size:60%">اؠڈِٹ</span>
| style="padding: 0.4em;" | [[اوتھیلو]]
|}
<small>ٲخری اَپڈیٹ [[User:Uhaas_bot|Uhaas_bot]] دٔسؠ 07 October 2026 پؠٹھ۔</small>
9fbkcesoqiodmyj4cg8roh9xppfu62z
سید محمد نقیٖب العطاس
0
19795
153254
153187
2026-10-06T17:26:00Z
511KeV
8268
/* */ اوس
153254
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{مولوٗماتھ}}
سید محمد نقیٖب ابن علی العطاس (عربی: سید محمد قیب العطاس)، پٲدٲیِش (5 سَتَمبَر 1931) اوس اَکھ ملائیشیاہک مُسلمان فلاسفر۔ سہُ چھُ تمن کینٛہہ ہم عصر سکالرزو مَنٛز اَکھ یم روٲیتی اسلامی عٕلمس مَنٛز پوٗرٕ پٲٹھؠ جڑتھ چھ تہٕ چھ الہیات، فلسفہٕ، مابعد بُھوَن زان metaphysics، تٲریخ تہٕ ادبک مطٲلعہٕ کران۔ {{citation needed|date=September 2017}}تم کر علم اسلامائزیشن کہ تصورک علمبردار۔ العطاس سُنٛد فلسفہٕ تہٕ تٲلیٖم کس طریقہٕ کارک چھِ اَکھ مقصد: ذہن، جسم تہٕ روحک اسلامائزیشن تہٕ امکہٕ ذأتی تہٕ اجتمأعی زندگی پؠٹھ مسلمانن سٟتؠ سٟتؠ دۆیمن پؠٹھ اثرات، بشمول روحأنی تہٕ جسمأنی غیر انسأنی ماحول چھِ شأمل۔
سہُ چھُ اِسلأمی فکر تہٕ تہذیٖبٕک مختلف پہلوو، خاص طور پٲنٹھ [[صوٗفیه|صوفی ازم]] کائنات، مابعد بُھون زان، فلسفہٕ تہٕ [[ملے زَبان]] تہٕ ادبس پؠٹھ 27 کامؠن ہُنٛد مصنف کران۔
==ایوارڈ تہٕ کامیٲبی==
العطاسن کوٛر اَکھ انداز تہٕ عین مطأبق الفاظ تیار یُس تہنزٕ مالے تحریرن تہٕ زبانہٕ ہنٛز خاص خصوصیت چھُ۔ تٔمؠ چھُ اِسلٲمی تہٕ مالے تہذیبَن ہُنٛد تہِ مُطالعہٕ کوٚرمُت۔ 1975 مَنٛز، آو تمس تقابلی فلسفہٕ کس میدانس مَنٛز تہنزٕ شراکت خاطرٕ امپیریل ایرانی اکیڈمی آف فلاسفی ہنٛد فیلو عطا کرنہٕ۔ سُہ اوس 1977 تھس مَنٛز مکہَس مَنٛز مُنعقد اِسلٲمی تعلیٖمہِ پؠٹھ گۄڈٕنِچہِ عالمی کانفرنسَس مَنٛز اَکھ اسپیکر تہٕ سرگرم حصہٕ نِنہٕ وول تہِ، ییٚتہِ تٔمؠ اِسلٲمی تعلیٖمہِ ہٕنٛدِ مقصد تہٕ تعریفَن پؠٹھ کمیٹی ہٕنٛز صدارت کٔر۔ 1976 پٮ۪ٹھٕ 1977 تھس تام اوس سُہ ٹیمپل یونیورسٹی، فلاڈیلفیا، امریکہَس مَنٛز اسلامک وزٹنگ پروفیسر۔ 1978 مَنٛز۔ تٔمؠ کٔر حلب، شامس مَنٛز منعقد گژھن وٲلؠ اسلامی تٲریخس پیٚٹھ ماہرینن ہٕنٛدس یونیسکو اجلاسٕچ صدارت۔
سُہٕ چھُ نیشنل یونیورسٹی آف ملائیشیا (1970–84) مَنٛز مالائی زبان تہٕ ادبُک چیئر گۄڈنیُک ہولڈر، تہٕ اوہائیو یونیورسٹی (1980–82) مَنٛز جۆنوٗب مشرقی ایشیائی مطالعک تون عبدالرزاق چیئرک گۄڈنیُٛک ہولڈر تہٕ بین الاقوامی اسلامی یونیورسٹی ملائیشیا (1987 پیٹھہٕ) مَنٛز انٹرنیشنل انسٹی ٹیوٹ آف اسلامک تھٹ اینڈ تہذیبک (آئی ایس ٹی اے سی) بانی ڈائریکٹر کس طورس پؠٹھ۔ تٔمؠ چھِ پوٗرٕ یورپ، امریکہ، جاپان، مشرق بعید تہٕ مسلم دنیاہَس مَنٛز 400 کھۄتہٕ زِیٛادٕ لیکچر دِتؠمٕتؠ۔ انور ابراہیمَن کوٚر 1993 تھس مَنٛز سُہ آئی ایس ٹی اے سی یَس مَنٛز ابو حامد الغزالی چیئر آف اسلامک تھاٹُک گۄڈنیُٛک ہولڈر مقرر۔ اردنک بادشاہ حسینن بنوو سُہٕ 1994 مَنٛز اردن کس رائل اکیڈمی ہنٛد رکن، تہٕ جون 1995 مَنٛز کوٚر خرطوم یونیورسٹی تمس آرٹس (ڈی لٹ) اعزازی ڈاکٹریٹ ڈگری عطا۔
سُہ اوس اَکھ خطاط تہِ، تہنٛز کٲم ٲس 1954 مَنٛز ایمسٹرڈیم کِس ٹروپن میوزیمس مَنٛز نُمٲیِش کرنہٕ آمٕژ۔ تیم کوٚر منصوبہٕ بندی تہٕ ڈیزائن: ISTAC عمارت۔ الغزالی چیئرک منفرد طومار (1993)۔ آئی ایس ٹی اے سی (1994) ہنٛد آڈیٹوریم تہٕ مسجد۔ سٟتؠ سٟتؠ یمن ہنٛز لینڈ سکیپنگ تہٕ اۆنٛدروٗنی سجاوٹ۔
===ملائیشیا ہُک اعزاز===
*ملائیشیا کِس تاجس سٟتؠ وفاداری ہنٛد آرڈرُک کمانڈر (P.S.M.) (2011)
== حَوالہٕ ==
[[زٲژ:1931 پٲدٲیِش]]
[[زٲژ:2026 وَفات]]
mfwgne2e3l49td6ueujwhsyd37cmmip
153279
153254
2026-10-06T18:01:20Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153279
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{مولوٗماتھ}}
سید محمد نقیٖب ابن علی العطاس (عربی: سید محمد قیب العطاس)، پٲدٲیِش (5 سَتَمبَر 1931) اوس اَکھ ملایشیاہک مُسلمان فلاسفر۔ سُہ چھُ تمن کینٛہہ ہم عصر سکالرزو مَنٛز اَکھ یم روٲیتی اسلامی عٕلمس مَنٛز پوٗرٕ پٲٹھؠ جڑتھ چھ تہٕ چھ الہیات، فلسفہٕ، مابعد بھُوَن زان metaphysics، تٲریخ تہٕ ادبک مطٲلعہٕ کران۔ {{citation needed|date=September 2017}}تم کر علم اسلامایزیشن کہ تصورک علمبردار۔ العطاس سُنٛد فلسفہٕ تہٕ تٲلیٖم کس طریقہٕ کارک چھِ اَکھ مقصد: ذہن، جسم تہٕ روحک اسلامایزیشن تہٕ امکہٕ ذأتی تہٕ اجتمأعی زندگی پؠٹھ مسلمانن سٟتؠ سٟتؠ دۆیمن پؠٹھ اثرات، بشمول روحأنی تہٕ جسمأنی غیر انسأنی ماحول چھِ شأمل۔
سُہ چھُ اِسلأمی فکر تہٕ تہذیٖبٕک مختلف پہلوو، خاص طور پٲٹھؠ [[صوٗفیه|صوفی ازم]] کاینات، مابعد بھُون زان، فلسفہٕ تہٕ [[ملے زَبان]] تہٕ ادبس پؠٹھ 27 کامؠن ہُنٛد مصنف کران۔
==ایوارڈ تہٕ کامیٲبی==
العطاسن کوٛر اَکھ انداز تہٕ عین مطأبق الفاظ تیار یُس تہنزٕ مالے تحریرن تہٕ زبانہٕ ہنٛز خاص خصوصیت چھُ۔ تٔمؠ چھُ اِسلٲمی تہٕ مالے تہذیبَن ہُنٛد تہِ مُطالعہٕ کوٚرمُت۔ 1975 مَنٛز، آو تمس تقابلی فلسفہٕ کس میدانس مَنٛز تہنزٕ شراکت خاطرٕ امپیریل ایرانی اکیڈمی آف فلاسفی ہنٛد فیلو عطا کرنہٕ۔ سُہ اوس 1977 تھس مَنٛز مکہَس مَنٛز مُنعقد اِسلٲمی تعلیٖمہِ پؠٹھ گۄڈٕنِچہِ عالمی کانفرنسَس مَنٛز اَکھ اسپیکر تہٕ سرگرم حصہٕ نِنہٕ وول تہِ، ییٚتہِ تٔمؠ اِسلٲمی تعلیٖمہِ ہٕنٛدِ مقصد تہٕ تعریفَن پؠٹھ کمیٹی ہٕنٛز صدارت کٔر۔ 1976 پؠٹھٕ 1977 تھس تام اوس سُہ ٹیمپل یوٗنِوَرسِٹی، فلاڈیلفیا، امریکہَس مَنٛز اسلامک وزٹنگ پروفیسر۔ 1978 مَنٛز۔ تٔمؠ کٔر حلب، شامس مَنٛز منعقد گژھن وٲلؠ اسلامی تٲریخس پیٚٹھ ماہرینن ہٕنٛدس یونیسکو اجلاسٕچ صدارت۔
سُہٕ چھُ نیشنل یوٗنِوَرسِٹی آف ملایشیا (1970–84) مَنٛز مالایی زبان تہٕ ادبُک چییَر گۄڈنیُک ہولڈر، تہٕ اوہایو یوٗنِوَرسِٹی (1980–82) مَنٛز جۆنوٗب مشرقی ایشیایی مطالعک تون عبدالرزاق چییَرک گۄڈنُیٛک ہولڈر تہٕ بین الاقوامی اسلامی یوٗنِوَرسِٹی ملایشیا (1987 پیٹھہٕ) مَنٛز انٹرنیشنل انسٹی ٹیوٹ آف اسلامک تھٹ اینڈ تہذیبک (اَے ایس ٹی اے سی) بانی ڈایریکٹر کس طورس پؠٹھ۔ تٔمؠ چھِ پوٗرٕ یورپ، امریکہ، جاپان، مشرق بعید تہٕ مسلم دُنؠیاہَس مَنٛز 400 کھۄتہٕ زِیٛادٕ لیکچر دِتؠمٕتؠ۔ انور ابراہیمَن کوٚر 1993 تھس مَنٛز سُہ اَے ایس ٹی اے سی یَس مَنٛز ابو حامد الغزالی چییَر آف اسلامک تھاٹُک گۄڈنُیٛک ہولڈر مقرر۔ اردنک بادشاہ حسینن بنوو سُہٕ 1994 مَنٛز اردن کس رایل اکیڈمی ہنٛد رکن، تہٕ جون 1995 مَنٛز کوٚر خرطوم یوٗنِوَرسِٹی تمس آرٹس (ڈی لٹ) اعزازی ڈاکٹریٹ ڈگری عطا۔
سُہ اوس اَکھ خطاط تہِ، تہنٛز کٲم ٲس 1954 مَنٛز ایمسٹرڈیم کِس ٹروپن میوزیمس مَنٛز نُمٲیِش کرنہٕ آمٕژ۔ تیم کوٚر منصوبہٕ بندی تہٕ ڈیزاین: ISTAC عمارت۔ الغزالی چییَرک منفرد طومار (1993)۔ اَے ایس ٹی اے سی (1994) ہنٛد آڈیٹوریم تہٕ مسجد۔ سٟتؠ سٟتؠ یمن ہنٛز لینڈ سکیپنگ تہٕ اۆنٛدروٗنی سجاوٹ۔
===ملایشیا ہُک اعزاز===
*ملایشیا کِس تاجس سٟتؠ وفاداری ہنٛد آرڈرُک کمانڈر (P.S.M.) (2011)
== حَوالہٕ ==
[[زٲژ:1931 پٲدٲیِش]]
[[زٲژ:2026 وَفات]]
tvwfxtd2rvyzyhk5jlibiabbescglvz
2025
0
22020
153284
153224
2026-10-06T18:01:45Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153284
wikitext
text/x-wiki
{{مولوٗماتھ
| صِرِف کٲشُر = آ
}}
{{Template:Year article header|2025}}
ؤریک شروٗعٲتی حصس مَنٛز چھ بٔڑؠ مسلح تصادمک تسلسل وچھنہٕ آمت، یمن مَنٛز یوکرینس پؠٹھ روسی حملہٕ، سوڈانٕچ خانہ جنگی تہٕ۔
== 2025 ہس مَنٛز واقعات ==
وُچھِو «{{Catlist|2025 واقعات}}» پوٗرٕ فہرست خٲطرٕ
{{#invoke:catlist|main|2025 واقعات}}
== 2025 ہس مَنٛز موتہٕ ==
وُچھِو «{{Catlist|2025 وَفات}}» پوٗرٕ فہرست خٲطرٕ
{{#invoke:catlist|main|2025 وَفات}}
== حَوالہٕ ==
{{حَوالہٕ وَرٲے}}
ixlsywuhmjct5aij95m1vbh7gzx6hrg
ژمر گاو
0
22517
153429
144666
2026-10-07T04:01:10Z
Humzah Rouf Phu
12982
/* */
153429
wikitext
text/x-wiki
{{زٲژ معلوٗمات ڈَبہٕ|title=ژمر گاو </br> یاک|image=File:Sarlyk Yak2.jpg|image_caption=[[روٗس]] سُک یاک|domain=[[یوٗکیریوٹ]]|kingdom=[[جانوَر]]|phylum=[[کورڈیٹا]]|class=[[مۄمَل جانور]]|family=بوویڈے|sub_family=بووینے|genus=بوس|species='''یاک (b.grunniens)'''|order=آرٹیوڈیکٹیلیا|binomial name='''Bos grunniens'''|conservative status='''پالتوٗ '''}}
یاک (بوس گرنین، یَتھ ٹارٹری دانٛد، گرنٹنگ دانٛد، مس دار گُپُن، یا '''گھریلو یاک''' یا '''زۄمبہٕ گاو'''<ref>{{کِتاب حَوالہٕ|url=https://dsal.uchicago.edu/cgi-bin/app/grierson_query.py?qs=zo%CC%86mba&searchhws=yes&matchtype=exact}}</ref> یا '''ژمر گاو'''<ref>{{https://dsal.uchicago.edu/cgi-bin/app/grierson_query.py?page=1073}}</ref> تہٕ چھ ونان، چھ زیٖٹھ مس ہنٛد پالتوٗ مویشی ہند اَکھ نسل یوس پورٕ ہمالیٲیی خطس، تبتی سطح مرتفع [[تاجیکِستان|تاجیکستان]] پامیر پہاڑ تہٕ دور شمالس مَنٛز [[منگولیا]] تہٕ [[سایبِریا]] تام لبنہٕ چھ '''یاک۔'''<ref>{{Cite journal|last=Scherf|first=Beate|date=2000|title=World Watch List for Domestic Animal Diversity|url=https://www.fao.org/3/x8750e/x8750e.pdf|journal=World Watch List for Domestic Animal Diversity|publisher=FAO|pages=653}}</ref> یہِ چھ [[جنگٕلؠ یاک]] (بوس میوٹس) پیٹھہٕ آمت۔
== حَوالہٕ ==
[[زٲژ:جانوَر]]
pb5xm8whaawexp0h4kktfgci6dk19p6
153430
153429
2026-10-07T04:01:51Z
Humzah Rouf Phu
12982
/* */
153430
wikitext
text/x-wiki
{{زٲژ معلوٗمات ڈَبہٕ|title=ژمر گاو </br> یاک|image=File:Sarlyk Yak2.jpg|image_caption=[[روٗس]] سُک یاک|domain=[[یوٗکیریوٹ]]|kingdom=[[جانوَر]]|phylum=[[کورڈیٹا]]|class=[[مۄمَل جانور]]|family=بوویڈے|sub_family=بووینے|genus=بوس|species='''یاک (b.grunniens)'''|order=آرٹیوڈیکٹیلیا|binomial name='''Bos grunniens'''|conservative status='''پالتوٗ '''}}
یاک (بوس گرنین، یَتھ ٹارٹری دانٛد، گرنٹنگ دانٛد، مس دار گُپُن، یا '''گھریلو یاک''' یا '''زۄمبہٕ گاو'''<ref>{{کِتاب حَوالہٕ|url=https://dsal.uchicago.edu/cgi-bin/app/grierson_query.py?qs=zo%CC%86mba&matchtype=default#gsc.tab=0}}</ref> یا '''ژمر گاو'''<ref>{{https://dsal.uchicago.edu/cgi-bin/app/grierson_query.py?page=1073}}</ref> تہٕ چھ ونان، چھ زیٖٹھ مس ہنٛد پالتوٗ مویشی ہند اَکھ نسل یوس پورٕ ہمالیٲیی خطس، تبتی سطح مرتفع [[تاجیکِستان|تاجیکستان]] پامیر پہاڑ تہٕ دور شمالس مَنٛز [[منگولیا]] تہٕ [[سایبِریا]] تام لبنہٕ چھ '''یاک۔'''<ref>{{Cite journal|last=Scherf|first=Beate|date=2000|title=World Watch List for Domestic Animal Diversity|url=https://www.fao.org/3/x8750e/x8750e.pdf|journal=World Watch List for Domestic Animal Diversity|publisher=FAO|pages=653}}</ref> یہِ چھ [[جنگٕلؠ یاک]] (بوس میوٹس) پیٹھہٕ آمت۔
== حَوالہٕ ==
[[زٲژ:جانوَر]]
o5qgk8472rnw52qknk4b21jt7mhor7z
فرما:Large
10
22685
153336
2023-01-16T01:12:34Z
en>Jonesey95
0
use this template's own documentation
153336
wikitext
text/x-wiki
<span style="font-size:120%">{{{1}}}</span><noinclude>
{{Documentation}}
</noinclude>
gb9jg7srxpcm0n8wv0k3unldj3qzdrc
153337
108444
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Template:Large]]: Needed locally
108444
wikitext
text/x-wiki
<span style="font-size:120%">{{{1}}}</span><noinclude>
{{Documentation}}
</noinclude>
gb9jg7srxpcm0n8wv0k3unldj3qzdrc
2000
0
23227
153396
112680
2026-10-06T18:26:04Z
511KeV
8268
/* */
153396
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{مولوٗماتھ}}
{{Template:Year article header|2000}}
{{Year in various calendars}}
2000 ہس مَنٛز آو [[کووڈ-19]] وبائی مرض کہِ شدتس مَنٛز کمی وٕچھنہٕ، ڈبلیو ایچ او ([[ورلڈ ہیلتھ آرگنائزیشن]]) کٕر مئی مَنٛز پنٕنؠ عالمی صحت ایمرجنسی سٹیٹس ختم۔ تباہ کن قدرتی آفات مَنٛز ٲس 20 مہِ صدی ہند ترکی تہٕ شام کہِ پانژِم مہلک ترین زلزلہٕ شٲمل، یَتھ مَنٛز 62,000 تام لوک ہلاک گٔیہٕ، سائیکلون فریڈی - تٲریخس مَنٛز سارِوٕے کھۄتہٕ زیٛادٕ وقتس تام روزن وول اشنکٹبندیی سمندری طوفان - یمہِ کہِ وجہ سٟتؠ ملاوی تہٕ موزمبیقس مَنٛز 1,400 کھۄتہٕ زیٛادٕ ہلاکتہٕ گٔیہٕ۔ طوفان ڈینیئل، یُس لیبیاہَس مَنٛز کم از کم 11,000 افراد ہلاک گژھنہٕ پتہٕ سمندری طوفان نرگس پتہٕ دنیاہَس مَنٛز سارِوٕے کھۄتہٕ خطرناک سمندری طوفان بنیومُت، مغربی مراکشس مَنٛز 6.8 شدت ہُنٛد بوٚڑ بُنیُل، یَتھ مَنٛز 2,960 افراد ہلاک تہٕ 6.3 شدت ہُنٛد ژۄگنہٕ بُنیُل مغربی افغانستانَس مَنٛز آو یَتھ مَنٛز 1400 کھۄتہٕ زِیٛادٕ افراد ہلاک گٔیہِ۔
cu9hrgo86h38its81qx5d361yk0et43
1992
0
23245
153258
111711
2026-10-06T17:50:21Z
511KeV
8268
/* */ Add
153258
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{Template:Year article header|1992}}
gz95s51mc4ce8fha4bmeenobb5lh2pn
1991
0
23495
153257
113040
2026-10-06T17:49:36Z
511KeV
8268
/* */ Add
153257
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{Template:Year article header|1991}}
lg4evjvq0recjgqp9qlgx47d75b9iex
اے ایچ 5
0
23809
153460
114725
2026-10-07T08:51:33Z
آیات محراج
11062
/* */
153460
wikitext
text/x-wiki
{{Infobox road|terminus_a=[[شَنٛگھاے]], [[چیٖن]]|terminus_b={{A|Istanbul}}، [[تُرکی]]|textcolor=White|headerstyle=#000080|below=[[File:AH5 Route Map.svg]]}}
'''ایشین ہائی وے 5''' ('''اے۔ ایچ۔ 5''') چھ ایشین ہائی وے نیٹ ورک اَکھ مشرقی-مغربی وتھ، یس [[شَنٛگھاے]] چیٖن پؠٹھ [[قازقستان]] [[کِرغِزستان|کرغزستان]] [[اُزبیکِستان|ازبکستان]] [[تُرٛکمانستان|ترکمانستان]] [[آذرِبایجان|آزربائیجان]]، [[جورجِیٛا (مُلٕک)|جارجیا]] کہ وتہِ [[تُرکی|ترکی]] تہٕ [[بُلغاریہ]] کہ درمیان سرحدس تام 10,380 کلومیٹر (6,450 میٖل) پکان چھ۔<ref>Economic and Social Commission for Asia and the Pacific, [http://www.unescap.org/ttdw/Publications/TIS_pubs/pub_2303/Full%20version.pdf 2003 Asian Highway Handbook] {{webarchive|url=https://web.archive.org/web/20120414184019/http://www.unescap.org/ttdw/Publications/TIS_pubs/pub_2303/Full%20version.pdf |date=2012-04-14 }}, 2003, page 32</ref>
==حَوالہٕ==
[[زٲژ:سڑکہٕ]]
peyq93f0bmiyhzz5h7mogwd8fcimozl
مِصری ہتھیار دَر فوج
0
24600
153311
130107
2026-10-06T18:14:55Z
CommonsDelinker
131
Removing [[:c:File:Egyptian_Armed_Forces_Logo.png|Egyptian_Armed_Forces_Logo.png]], it has been deleted from Commons by [[:c:User:Jameslwoodward|Jameslwoodward]] because: per [[:c:Commons:Deletion requests/File:Egyptian Armed Forces Logo.png|]].
153311
wikitext
text/x-wiki
{{مولوٗماتھ
| image =
| bgcolor = #cdff
}}
'''مِصری ہتھیار دَر فوج''' چھِ [[مِصر|عرب جمہوٗریَتھ مِصرُک]] فوج ۔<ref>{{Cite news|url=http://english.ahram.org.eg/NewsContentP/48/320871/--/Yearender--Egypts-burgeoning-domestic-arms-industr.aspx|title=Yearender 2018: Egypt's burgeoning domestic arms industry|access-date=2019-12-31|language=en}}</ref>
==حَوالہٕ==
[[زٲژ:مِصر]]
[[زٲژ:فوج]]
6m2cbv21re72f4zcrnirfmirn2tshz2
153409
153311
2026-10-06T19:33:25Z
آیات محراج
11062
/* */
153409
wikitext
text/x-wiki
{{مولوٗماتھ
| bgcolor = #cdff
}}
'''مِصری ہتھیار دَر فوج''' چھِ [[مِصر|عرب جمہوٗریَتھ مِصرُک]] فوج ۔<ref>{{Cite news|url=http://english.ahram.org.eg/NewsContentP/48/320871/--/Yearender--Egypts-burgeoning-domestic-arms-industr.aspx|title=Yearender 2018: Egypt's burgeoning domestic arms industry|access-date=2019-12-31|language=en}}</ref>
==حَوالہٕ==
[[زٲژ:مِصر]]
[[زٲژ:فوج]]
audxdyetspunfxv876ohfc0w04z3irp
فرما:Year in various calendars
10
24646
153295
2018-02-23T17:03:38Z
en>Primefac
0
Changed protection level for "[[Template:Year in various calendars]]": [[WP:HIGHRISK|high-risk]] template with 2000+ transclusions ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
153295
wikitext
text/x-wiki
<includeonly>{{#invoke:Year in various calendars|main}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
1diqm0ady3aevewz3y882c7jui67ufw
153296
119064
2026-10-06T18:10:17Z
511KeV
8268
1 revision imported from [[:en:Template:Year_in_various_calendars]]: Needed locally
119064
wikitext
text/x-wiki
<includeonly>{{#invoke:Year in various calendars|main}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
1diqm0ady3aevewz3y882c7jui67ufw
قاضی تَوقیٖر
0
24895
153235
152251
2026-10-06T12:24:54Z
آیات محراج
11062
/* */ image added
153235
wikitext
text/x-wiki
{{Infobox musical artist|name=قاضی تَوقیٖر|background=solo_singer|birth_date=1986 یا 1987|origin=[[سِریٖنَگَر]]، [[جۆم تہٕ کٔشیٖر (رِیاسَتھ)|جۆم تہٕ کٔشیٖر]]، ہِندوستان|genre={{hlist|پاپ|[[پاپ راک]]|[[الیکٹرانِک میوزک]]|نژُن}}|occupations={{hlist|گلوکار|اداکار|یوٗٹیوبر}}|years_active=2005~ازکال|label=[[سونی بی ایم جی|سونی]]|image=File:Qazi Touqeer in 2026.jpg|spouse=اِفسہ تَوقیٖر}}
'''قاضی تَوقیٖر''' چھُ اَکھ [[کٲشِرؠ لوٗکھ|کٲشُر]] گُلوکار، یٔمؠ [[رُپریٖکھا بنرجی]] یَس سٟتؠ [[فیم گُرُکُل]] شو زیوٗن۔<ref name="TOI">{{cite news|last1=Olivera|first1=Roshni K.|title=Move over Hrithik, Qazi's here! - Times of India|url=https://timesofindia.indiatimes.com/tv/news/hindi/Move-over-HrithikQazis-here/articleshow/2569287.cms|access-date=3 November 2020|work=The Times of India|date=26 November 2007|language=en}}</ref> سُہ چھُ [[کٲشِر زَبان|کٲشِرؠ]]، [[ہِندی زَبان|ہِنٛدی]] تہٕ [[اُردوٗ زَبان|اُردوٗ]] زبانَن مَنٛز گؠوان ۔ 20 اکتوبر 2005 ژس مَنٛز گوٚو سُہ [[رُپریٖکھا بنرجی]] یس سٟتہِ تھٔدِس انعام حٲصِل کرنس مَنٛز کامیاب۔ تٔمس آو ہِندوستٲنؠ عوامن "فیم اکیڈمی" ہنٛد ہنٛد ہنٛدستانُک ؤرجَن ''فیم گُرُکُل'' زیننہٕ بناونہٕ خٲطرٕ ووٹ دِنہٕ۔ صَدٕرِ بَہارَت کوٚر قاضی تَوقیٖر کِس حوالہٕ سٟتؠ تٔمس کشمیرک ہیٖرو قرار۔<ref name="Ananya Jahanara Kabir">{{کِتاب حَوالہٕ|last=Kabir|first=Ananya Jahanara|url=https://books.google.com/books?id=9JpMR9ftG4cC&q=kashmiris+and+qazi+touqeer&pg=PA12|title=Territory of desire: representing the Valley of Kashmir|publisher=U of Minnesota Press|year=2009|isbn=9780816653560|access-date=2 December 2010}}</ref><ref name="Territory of desire">{{کِتاب حَوالہٕ|last=Ananya Jahanara Kabir|url=https://books.google.com/books?id=9JpMR9ftG4cC&q=kashmiris+and+qazi+touqeer&pg=PA12|title=Territory of desire: representing the Valley of Kashmir|publisher=[[University of Minnesota Press]]|year=2009|isbn=9780816653560|access-date=2 December 2010}}</ref> قاضی سٕنٛزِ کامیٲبی ہٕنٛدِس نٔتیٖجَس مَنٛز کٔر واریاہَن کٲشِرؠ نوجوانَن [[اِنٛڈین اَیڈل]] آزمٲیشَن مَنٛز آڈِشن، یُس [[وادی کٔشیٖر|وادی کشمیر]] کِس أکِس شَہَر، [[سِریٖنَگَر|سرینگرَس]] مَنٛز مُنعقد سپدان اوس۔<ref name="BBC">{{cite news|url=https://news.bbc.co.uk/2/hi/south_asia/6382051.stm|title=Indian Idol creates Kashmir stir|author=Altaf Hussain|publisher=[[British Broadcasting Corporation]]|access-date=2 December 2010|date=21 February 2007}}</ref>
أمہِ کوٚر 2005 کِس ٲخرس مَنٛز رُپریٖکھا بنرجی یَس سٟتہِ اَکھ نوٚو البم جٲری۔ قاضیَس ٲس نہٕ شہرت گُرُکُل برٛونٛہہ کانٛہہ باقاعدٕ تربِیت حٲصِل کٔرمٕژ۔
پنٛنہِ اداکٲری ہِنٛزِ گۄڈٕنِچہِ فِلمہِ، ٹیک آف چہِ ریہرسل کران لوٚگ تٔمؠ پنُن پان زخمی۔ قاضی اوس گنیش آچاریہ سٹوڈیوَس مَنٛز ریہرسل کران ییٚلہِ سُہ پیوٚو پیٚتھ تہٕ أمؠ سٕنٛز گردن لوٚگ۔<ref>{{cite web|title=Fame Gurukul winner Qazi Tauqeer hospitalised | Bollywood News Movies|url=http://bollywood.nkut.com/fame-gurukul-winner-qazi-tauqeer-hospitalised/#sthash.58Kp6JvC.dpuf|url-status=dead|archive-url=https://web.archive.org/web/20131217224037/http://bollywood.nkut.com/fame-gurukul-winner-qazi-tauqeer-hospitalised/|archive-date=17 December 2013|access-date=17 December 2013}}</ref>
سَتَمبَر 2026 ہَس مَنٛز گوٚو قاضی توقیٖر بطور مُقابلہٕ کَرن وٲلؠ ہندی زبانہِ ہُنٛد رییَلٹی ٹیلی وِجَن شو بِگ باس کِس وُہِمِس سیزنَس مَنٛز دٲخل۔ أمؠ سٕنٛز شرکتَت گٔیہِ 2005 مَنٛز گیون رییَلٹی شو فیم گروکول زیننہٕ پتہٕ تَقریٖبَن دۄیہِ دٔہلہِ پتہٕ مرکزی دھارٕ ٹیلی وِجنَس مَنٛز واپسی۔ [[بِگ بوس 20 (ہِندی ٹی وی سیریٖز) سیزن 20|بِگ بوس 20]] ہَس مَنٛز پننِس وقتَس دوران کٔر توقیٖرَن گرَس مَنٛز پننہِ کتھ باتھ تہٕ سرگرمیَن خٲطرٕ توجہ پانس کُن پانس کُن پھِرُن، یَتھ مَنٛز اَکھ مذاق تہِ شٲمِل چھُ یُس پتہٕ میزبان [[سَلمان خان|سلمان خانَن]] خطاب کوٚر۔
==اِبتدٲے زِندگی ==
قاضی سُنٛد مول اوس ؤکیٖل تہٕ پتہٕ بنیٛوو صوٗفی۔ سُہ چھُ [[کٔشیٖر]]، [[ممبئی]]، [[دِل|دِلہِ]] تہٕ [[دُبَے|دُبَیَس]] مَنٛز روزان۔ تمہِ سٟنٛز موج چھےٚ وۄستاد، تہٕ یِمو سُنٛد پیتٕر قاضی رَفی اوس اَکھ کٲشُر گؠوَن وول۔ یہِ نوجوان بَڑیٛوو سِریٖنَگَر کِس مغل باغَس مَنٛز ہِندوستٲنؠ فلمن ہٕنٛدؠن مرکزی کِردارن ہٕنٛز نقٕل کٔرِتھ، تہٕ أمؠ سٕنٛدِس بٲے سٕنٛدِس اتھس مَنٛز ویٖڈیو کیمرہ برٛونٛہہ کنہِ پوسٹ کٔرِتھ۔ تٔمِس ٲس مٲلؠ وَتھ ہٲمٕژ یٔمِس [[موٗسیٖقی]] ہُنٛد کیٚنٛہہ عٔلِم اوس۔
[[زٲژ:کٲشِرؠ اَداکار]]
[[زٲژ:کٲشِرؠ مُسَلمان]]
== [[نَژُن|نَژَن]] سٲزی ==
=== البم ===
{| class="wikitable"
! align="left" |البمٕچ زانکٲری
! align="left" |آفیشل سنگلز
|-
| align="left" |'''یہِ پل'''<br />{{small|(as Yeh Pal)}}
* ریلیز کرنہٕ آمُت: 1 جَنؤری 2006 {{small|(India)}}
* لیبل: [[سونی بی ایم جی]]
* پیک اِنڈیا بِل بورڈ: 1
* ہِندوستانٕچ فروخت: 2,354,353
* آر اَے اے اے سرٹیفیکیشن: 2× پلاٹینم
| align="left" |
* 2005: "یہِ پل"
* 2005: "کارو کیا"
* 2005: "ہیٖرو"
* 2005: "میری محبوبہ"
* 2005: "یہِ پل ریمکس"
* 2005: "مدھم سی چاندنی"
* 2005: "کہکاشن" ہا
|}
== ٹی وی چہِ پیشی ==
{| class="wikitable"
!ؤری
!عنوان
!کِردار
|-
|2005
|''[[Fame Gurukul|فیم گُرُکُل]]''
|'''پانہٕ'''
|-
|2009
|''[[Sarkaar Ki Duniya|سرکار کی دنیا]]''
|'''پانہٕ'''
|}
تٔمؠ پھُٹرٲو تمہِ وقتہٕ کُنہِ تہِ رییَلٹی شوہس مَنٛز ساروٕے کھۄتہٕ زیٛادٕ ووٹ حٲصِل کرنُک ریکارڈ۔ سُہ آو پرؠتھ لٹہِ ییٚلہِ سُہ ہِندوستٲنؠ عوامَن خطرٕک زونَس مَنٛز گژھان اوس سُہ واپس محفوٗظ بناونہٕ خٲطرٕ ووٹ دِنہٕ۔ تٔمؠ سٕنٛزِ دلکش شکلہٕ تہٕ اِخلاص کٔر تٔمِس ٹی وی یَس پیٚٹھ گۄڑنٕچ شہرت۔<ref name="Ananya Jahanara Kabir">{{cite book|last1=Kabir|first1=Ananya Jahanara|url=https://books.google.com/books?id=9JpMR9ftG4cC&q=kashmiris+and+qazi+touqeer&pg=PA12|title=Territory of desire: representing the Valley of Kashmir|publisher=U of Minnesota Press|year=2009|isbn=9780816653560|access-date=2 December 2010}}</ref>
== فِلموگرافی ==
{| class="wikitable"
!ؤری
!عنوان
!کِردار
|-
|2009
|''ٹیک آف''
|
|-
|2015
|[[Phantom (2015 film)|''فینٹم'']]
|افغان جلبی بٲتھ
|}
==حَوالہٕ ==
{{حَوالہٕ}}
==نیٚبرِم کُنٛڈٕ==
*[https://web.archive.org/web/20060117040637/http://www.indiaglitz.com/channels/hindi/albumreview/3017.html Review of Qazi Touqeer and Ruprekha Banerjee's first album: Jodi No۔ 1]
*[https://web.archive.org/web/20060110132544/http://img278.imageshack.us/img278/9019/130e92c8b0dcad7a4752529c5cfeb3.jpg A picture of Qazi Touqeer]
[[زٲژ:زِنٛدٕ لوٗکھ]]
4ep4d81zlrzd38r1d66mjrbat4nxke3
جۆم-وَرمُل لٲن
0
26676
153405
140397
2026-10-06T19:19:39Z
آیات محراج
11062
/* */
153405
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = Route diagram template
}}
جوٚم-وَرمُل لٲن (بشمول اُدھم پور–سرینگر–وَرمُل ریل لنک (یو ایس بی آر ایل) سب سیکشن) چھِ جموں و کشمیر، ہندوستانَس مَنٛز [[جۆم]] تہٕ [[وَرمُل]] شہرَن درمیان 324 کلومیٹر زیٖٹھ ریلوے۔ یہِ چھُ 7 جوٗن 2025 تام پوٗرٕ پٲٹھؠ کٲم کَران۔ وادی کشمیر باقٕے ہِنٛدُستانس سٕتہِ رَلاوِتھ چھےٚ یہِ ریل لنک [[ہِندوستٲنؠ ہتھیار دَر فوج|ہِندوستٲنؠ ہتھیار دَر فوجن]] خٲطرٕ بٔڑ جیو سٹریٹجک اہمِیَت ۔ أمؠ چھُ [[جۆم]] تہٕ [[سرینگر|سرینگرَس]] درمیان سفرُک وَقٕت 7 گٲنٛٹہٕ پؠٹھٕ 3 گٲنٛٹہٕ تام کم کوٚرمُت۔ یہِ چھُ ماتا [[ویشنو دیوی مندر]] تہٕ [[امَرناتھ مَنٛدَر|امر ناتھ مندرٕک]] اہم مذہبی زیارت گاہَن تہِ رلاوان۔
واریاہَن مرحلَن مَنٛز مُکمل گٔمٕژ، اَتھ لنکَس مَنٛز چھِ انجینیرنگ ہٕنٛزِ واریاہ کامیٲبی شٲمِل یِمَن مَنٛز [[چیناب ریل کٔدٕل|چناب کٔدٕل]] - دُنؠیاہُک ساروٕے کھۄتہٕ تھوٚد ریلوے کٔدٕل، [[انجی کھاڈ کٔدٕل]] - ہندوستانُک گۄڈنُیٛک کیبل سٹے ریلوے کٔدٕل، [[پیٖر پَنٛجال ریلوے ٹَنَل]] (بانِہَل ریلوے ٹنل) - 2025 تام ہندوستانٕچ ساروٕے کھۄتہٕ زیوٗٹھ ریلوے [[سۄرَنٛگ]]، تہٕ ٹی 33 سرنگ، یۄس لۄکٕٹ آسنہٕ وِزِ سؠٹھاہ چلینج چھِ تِکیازِ یہِ چھُ ہمالیہ کِس مرکزی سرحدَس پؠٹھ زور دِوان۔<ref name="amar1">{{Cite web |last=Excelsior |first=Daily |date=2025-06-01 |title=PM set to flag off train to Kashmir on June 6, address rally at Katra Stadium |url=https://www.dailyexcelsior.com/pm-set-to-flag-off-train-to-kashmir-on-june-6-address-rally-at-katra-stadium/ |access-date=2025-06-02 |website=Daily Excelsior |language=en-US}}</ref>
==حَوالہٕ==
[[زٲژ: سِریٖنَگَر]]
gmg3oswwjfg3f2pcyfz32n5vfq4se0h
153407
153405
2026-10-06T19:26:07Z
آیات محراج
11062
/* */
153407
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = Route diagram template
| bgcolor =
| titleborder = 3px solid brown
}}
جوٚم-وَرمُل لٲن (بشمول اُدھم پور–سرینگر–وَرمُل ریل لنک (یو ایس بی آر ایل) سب سیکشن) چھِ جموں و کشمیر، ہندوستانَس مَنٛز [[جۆم]] تہٕ [[وَرمُل]] شہرَن درمیان 324 کلومیٹر زیٖٹھ ریلوے۔ یہِ چھُ 7 جوٗن 2025 تام پوٗرٕ پٲٹھؠ کٲم کَران۔ وادی کشمیر باقٕے ہِنٛدُستانس سٕتہِ رَلاوِتھ چھےٚ یہِ ریل لنک [[ہِندوستٲنؠ ہتھیار دَر فوج|ہِندوستٲنؠ ہتھیار دَر فوجن]] خٲطرٕ بٔڑ جیو سٹریٹجک اہمِیَت ۔ أمؠ چھُ [[جۆم]] تہٕ [[سرینگر|سرینگرَس]] درمیان سفرُک وَقٕت 7 گٲنٛٹہٕ پؠٹھٕ 3 گٲنٛٹہٕ تام کم کوٚرمُت۔ یہِ چھُ ماتا [[ویشنو دیوی مندر]] تہٕ [[امَرناتھ مَنٛدَر|امر ناتھ مندرٕک]] اہم مذہبی زیارت گاہَن تہِ رلاوان۔
واریاہَن مرحلَن مَنٛز مُکمل گٔمٕژ، اَتھ لنکَس مَنٛز چھِ انجینیرنگ ہٕنٛزِ واریاہ کامیٲبی شٲمِل یِمَن مَنٛز [[چیناب ریل کٔدٕل|چناب کٔدٕل]] - دُنؠیاہُک ساروٕے کھۄتہٕ تھوٚد ریلوے کٔدٕل، [[انجی کھاڈ کٔدٕل]] - ہندوستانُک گۄڈنُیٛک کیبل سٹے ریلوے کٔدٕل، [[پیٖر پَنٛجال ریلوے ٹَنَل]] (بانِہَل ریلوے ٹنل) - 2025 تام ہندوستانٕچ ساروٕے کھۄتہٕ زیوٗٹھ ریلوے [[سۄرَنٛگ]]، تہٕ ٹی 33 سرنگ، یۄس لۄکٕٹ آسنہٕ وِزِ سؠٹھاہ چلینج چھِ تِکیازِ یہِ چھُ ہمالیہ کِس مرکزی سرحدَس پؠٹھ زور دِوان۔<ref name="amar1">{{Cite web |last=Excelsior |first=Daily |date=2025-06-01 |title=PM set to flag off train to Kashmir on June 6, address rally at Katra Stadium |url=https://www.dailyexcelsior.com/pm-set-to-flag-off-train-to-kashmir-on-june-6-address-rally-at-katra-stadium/ |access-date=2025-06-02 |website=Daily Excelsior |language=en-US}}</ref>
==حَوالہٕ==
[[زٲژ: سِریٖنَگَر]]
ridg5vs26fdqchenqtsx2b0dk38ojrc
سیویرس سٕنیپ
0
27000
153291
153136
2026-10-06T18:02:15Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153291
wikitext
text/x-wiki
{{Infobox character}}
سیویرس سٕنیپ چھُ [[ہیری پوٹر|ہیری پوٹر ناول]] [[ہیری پوٹر (فِلِم )|سیریزُک]] اَکھ کردار، یُس [[جے کے رولِنٛگ|جے کے رولنگن]] لیکھمُت چھُ۔ سُہ چھُ [[ہاگ وارٛٹ|سکول آف ویچ کرافٹ اینڈ وزرڈری]] ہُنٛد پروفیسر۔ تٔمؠ ہیٚچھناوؠ اصلی دَوا ، مگر شیٚیمِس قٕسطس مَنٛز بنیوو سُہ کرٛہُن فنس خَلاف پانس بچاونُک وۄستاد۔ ناولن مَنٛز چھُ سنیپ سُنٛد کردار انتہٲیی تناز ۔ سُہ چھُ ہیری پوٹرس سٟتؠ واریاہ ناراضگی کران تہٕ تس چھُنہٕ تٔمِس تنگ کرنُک موقعہٕ زانہہ اَتھٕ کران۔ سُوٛ اوس گوڑنتھ شیطانی [[لارٛڈ وولڈیمورٛٹ|لارڈ وولڈیمورٹ]] سٕنٛدس گینگہٕ ہنٛد رکن، مگر پتہٕ ([[البس ڈَمبَلڈور|ڈمبلڈورس]] مطٲبق) تُل وولڈیمورٹس خَلاف پھیرنہٕ تہٕ ڈمبلڈورس سہارٕ دنہٕ خٲطرٕ پنٕنؠ زُو خطرس مَنٛز۔ ڈمبلڈور چھُ تٔمِس پؠٹھ واریاہ بروسہٕ کران، مگر سنیپ چھُ وولڈیمورٹ تہٕ تٔمؠ سٕنٛدیٚن سٲتھین سٟتؠ تہٕ رٲبطس مَنٛز۔ شیٚیمِس قسطس مَنٛز، چھ سنیپن ڈمبلڈورس قتٕل کران۔ ٲخری قسطس مَنٛز چھہ پتہ لگان زِ تمؠ اوس یہِ ڈمبلڈور سندِس اشارس پؠٹھ کورمت۔ تہٕ سُہ چھُ ہیری سٕنٛدِ رٲچھ خٲطرٕ اَکھ رٲچھدار سوزان، یُس اَکھ [[روٗسؠ کٔٹ]] چھُ۔<ref name="leakycauldron">{{cite web|date=30 July 2007|title=Transcript of webchat with J.K. Rowling|url=http://the-leaky-cauldron.org/2007/7/30/j-k-rowling-web-chat-transcript|url-status=live|archive-url=https://web.archive.org/web/20070824042509/http://www.the-leaky-cauldron.org/2007/7/30/j-k-rowling-web-chat-transcript|archive-date=24 August 2007|access-date=2 April 2008|publisher=the-leaky-cauldron.org}}</ref>
== حَوالہٕ ==
i40s3dojtkziqpugkodgdzw4h93kort
علیرضا تَنٛگسیری
0
27993
153434
134175
2026-10-07T05:48:53Z
SakuraBot
9889
[[وپ:باٹ|باٹ]] چھُ صَفَس زٲژ پؠٹھ کٲم کَران.
153434
wikitext
text/x-wiki
{{مولوٗماتھ
| bgcolor = LightSteelBlue
}}
'''کموڈور علیرضا تَنٛگسیری''' ([[فارسی زَبان|فارسی]]: علیرضا تنگسیری؛ زامُت 1962 ) چھُ اَکھ ایرانی سمندری افسر یس 2018 مَنٛز مقرر آیی آر جی سی نیوی ہنٛد کمانڈر سٕنٛدؠ پٲٹھؠ کٲم چھُ کران۔<ref name="mehr">{{Cite news|title=Leader appoints new Revolutionary Guards' Navy cmdr.|url=https://en.mehrnews.com/news/137031/Leader-appoints-new-Revolutionary-Guards-Navy-cmdr|agency=[[Mehr News Agency]]|date=23 August 2018}}</ref><ref>{{ویب حَوالہٕ|title=Ayatollah Khamenei appoints new Commander of IRGC Navy, Coordinator|url=https://english.khamenei.ir/news/5886/Ayatollah-Khamenei-appoints-new-Commander-of-IRGC-Navy-Coordinator|access-date=Aug 26, 2018|website=khamenei.ir|archive-date=August 25, 2018|archive-url=https://web.archive.org/web/20180825180724/http://english.khamenei.ir/news/5886/Ayatollah-Khamenei-appoints-new-Commander-of-IRGC-Navy-Coordinator|url-status=dead}}</ref>
==حَوالہٕ==
[[زٲژ:ایٖرٲنی لوٗکھ]]
[[زٲژ:2026 وَفات]]
guwva1ynfd0gahgnrf1jb96jat2zz3r
Module:Databox/theme
828
31968
153243
152127
2026-10-06T13:10:19Z
آیات محراج
11062
153243
Scribunto
text/plain
local p = {}
-- Q-ID Lookup Table for Colors and Icons
local themeMap = {
['Q5'] = { color = '#dce6f1', icon = '' },
['Q1221280'] = { color = '#cef2e0', icon = '' },
['Q47451145'] = { color = '#cef2e0', icon = '' },
['Q11012'] = { color = '#D3D3D3', icon = 'OOjs UI icon robot.svg' },
['Q584529'] = { color = '#D3D3D3', icon = 'OOjs UI icon robot.svg' },
['Q17444909'] = { color = '#decd87', icon = 'Galaxy_symbol_(fixed_width).svg' },
['Q15141321'] = { color = '#F2F2F2', icon = 'Train icon.svg' },
['Q7889'] = { color = '#FFDEAD', icon = 'Gamepadicon.svg' },
['Q906512'] = { color = '#cfd8dc', icon = 'Sinking-ship - Delapouite - game-icons.svg' },
['Q2235325'] = { color = '#cfd8dc', icon = 'Sinking-ship - Delapouite - game-icons.svg' },
['Q5393308'] = { color = '#800000', textcolor = '#FFFF00', icon = 'Maki7-religious-buddhist-white.svg' },
['Q1127126'] = { color = '#dce6f1', icon = 'JS Icon Edit.svg' },
['Q6934728'] = { color = '#dce6f1', icon = 'JS Icon Edit.svg' },
['Q215380'] = { color = '#B0C4DE', icon = 'Simple Music.svg' },
['Q3839081'] = { color = '#E6E6FA', icon = 'Earthquake House Icons.svg' },
['Q7944'] = { color = '#E6E6FA', icon = 'Earthquake House Icons.svg' },
['Q11032'] = { color = '#E0F2F1', icon = 'Noto Emoji KitKat 1f4f0 t.svg' },
['Q1190554'] = { color = '#E6E6FA', icon = 'Breezeicons-actions-22-view-calendar.svg' },
['Q2223653'] = { color = '#E6E6FA', icon = 'Breezeicons-actions-22-view-calendar.svg' },
['Q25917186'] = { color = '#E6E6FA', icon = 'Breezeicons-actions-22-view-calendar.svg' },
['Q8068'] = { color = '#E6E6FA', icon = 'Flood icon.png' },
['Q3914'] = { color = '#F8D7DA', icon = 'School Transparent.png' },
['Q180958'] = { color = '#F8D7DA', icon = 'School Transparent.png' },
['Q9826'] = { color = '#F8D7DA', icon = 'School Transparent.png' },
['Q11862829'] = { color = '#F8D7DA', icon = 'Noun Project science icon 334989 cc.svg' },
['Q2465832'] = { color = '#F8D7DA', icon = 'Noun Project science icon 334989 cc.svg' },
['Q12184'] = { color = '#FFCCCB', icon = 'Virus gray black.svg' },
['Q3241045'] = { color = '#FFCCCB', icon = 'Virus gray black.svg' },
['Q44512'] = { color = '#FFCCCB', icon = 'Virus gray black.svg' },
['Q5058355'] = { color = '#B7D7C2', icon = 'Noun Project cell icon 3036233.svg' },
['Q45948'] = { color = '#B7D7C2', icon = 'Noun Project cell icon 3036233.svg' },
['Q515'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q11460'] = { color = '#F5F5DC', icon = 'Map icons by Scott de Jonge - clothing-store.svg' },
['Q19832486'] = { color = '#F5F5DC', icon = 'Font Awesome 5 solid subway.svg' },
['Q870'] = { color = '#F5F5DC', icon = 'Font Awesome 5 solid subway.svg' },
['Q532'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q6256'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q4022'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q123705'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q8465'] = { color = '#CEE0F2', icon = 'Military symbol.svg' },
['Q198'] = { color = '#b0c4de', icon = 'Military symbol.svg' },
['Q178561'] = { color = '#b0c4de', icon = 'Military symbol.svg' },
['Q728'] = { color = '#b0c4de', icon = 'Military symbol.svg' },
['Q16521'] = { color = '#d0f0c0', icon = '' },
['Q729'] = { color = '#d0f0c0', icon = '' },
['Q756'] = { color = '#d0f0c0', icon = '' },
['Q11424'] = { color = '#ffc0cb', icon = '' },
['Q201658'] = { color = '#ffc0cb', icon = '' },
['Q515'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- city
['Q532'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- village
['Q467745'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- ut
['Q6256'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- country
['Q4022'] = { color = '#cdff', icon = 'Watercources resources pl icon.svg' }, -- river
['Q9430'] = { color = '#cdff', icon = 'Watercources resources pl icon.svg' },
['Q8502'] = { color = '#e7dcc3', icon = 'Mountain Icon.svg' }, -- mountain
['Q103495'] = { color = '#B0C4DE', icon = 'Battle_icon_gladii.svg' },
['Q11514315'] = { color = '#B0C4DE', icon = 'Battle_icon_gladii.svg' },
['Q123705'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- neighborhood
['Q11271835'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- provincial capital
['Q1549591'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- big city
['Q51929311'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- largest city
['Q6957341'] = { color = '#CCAA99', icon = 'ReligijneSymbole2.svg' },
['Q9174'] = { color = '#CCAA99', icon = 'ReligijneSymbole2.svg' },
['Q29517555'] = { color = '#dce6f1', icon = 'OOjs UI icon language-ltr.svg' },
['Q8192'] = { color = '#dce6f1', icon = 'OOjs UI icon language-ltr.svg' },
['Q119520394'] = { color = '#dce6f1', icon = 'OOjs UI icon language-ltr.svg' },
['Q112826905'] = { color = '#f0dbb6', icon = 'Human brain icon.svg' },
['Q103812529'] = { color = '#f0dbb6', icon = 'Human brain icon.svg' },
['Q193622'] = { color = '#cdeeff', icon = 'OOjs UI icon ribbonPrize.svg' },
['Q618779'] = { color = '#cdeeff', icon = 'OOjs UI icon ribbonPrize.svg' },
['Q2003221'] = { color = '#cdeeff', icon = 'OOjs UI icon ribbonPrize.svg' },
['Q116476516'] = { color = '#ffc0cb', icon = 'Emoji_u1f3ad-bw.svg' },
['Q5398426'] = { color = '#ffc0cb', icon = '' },
['Q482994'] = { color = '#ffc0cb', icon = '' },
['default'] = { color = '#F2F2F2', icon = '' },
['Q196600'] = { color = '#ffc0cb', icon = '' }, -- media franchise
}
-- Clean parameters passed from Template:Databox
local function cleanParam(val)
if val then
val = mw.text.trim(val)
if val ~= '' then return val end
end
return nil
end
function p.getTheme(args, item)
-- Check for manual user parameters first
local themeColor = cleanParam(args.bgcolor) or cleanParam(args['color']) or cleanParam(args['رَنٛگ'])
local themeIcon = cleanParam(args.icon) or cleanParam(args['نِشان'])
local themeTextColor = cleanParam(args.titletextcolor)
-- If all are explicitly set by the user, return them immediately
if themeColor and themeIcon and themeTextColor then
return { color = themeColor, icon = themeIcon, textcolor = themeTextColor }
end
local autoColor = nil
local autoIcon = nil
local autoTextColor = nil
-- Check Wikidata P31 (instance of) statements using the safest method
if item and item.id then
local statements = mw.wikibase.getBestStatements(item.id, 'P31')
if statements then
for _, stmt in ipairs(statements) do
if stmt.mainsnak and stmt.mainsnak.snaktype == 'value' and stmt.mainsnak.datavalue then
local qid = stmt.mainsnak.datavalue.value.id
if themeMap[qid] then
autoColor = themeMap[qid].color
autoIcon = themeMap[qid].icon
autoTextColor = themeMap[qid].textcolor
break
end
end
end
end
end
return {
color = themeColor or autoColor or themeMap['default'].color,
icon = themeIcon or autoIcon or themeMap['default'].icon,
textcolor = themeTextColor or autoTextColor or (themeMap['default'] and themeMap['default'].textcolor) or 'black'
}
end
-- The foolproof debug function!
function p.debugtest(frame)
local qid = frame.args[1] or 'Q17042539'
local item = mw.wikibase.getEntity(qid)
local found_ids = {}
if item and item.id then
local statements = mw.wikibase.getBestStatements(item.id, 'P31')
if statements then
for _, stmt in ipairs(statements) do
if stmt.mainsnak and stmt.mainsnak.snaktype == 'value' and stmt.mainsnak.datavalue then
table.insert(found_ids, stmt.mainsnak.datavalue.value.id)
end
end
end
end
local theme = p.getTheme({}, item)
return "Debug Result for " .. qid .. " -> Color: " .. tostring(theme.color) .. " | Text: " .. tostring(theme.textcolor) .. " | Found P31 IDs on Wikidata: " .. table.concat(found_ids, ", ")
end
return p
06q12124v7kpos8kxnkutjcz6f2ds1t
153406
153243
2026-10-06T19:21:10Z
آیات محراج
11062
153406
Scribunto
text/plain
local p = {}
-- Q-ID Lookup Table for Colors and Icons
local themeMap = {
['Q5'] = { color = '#dce6f1', icon = '' },
['Q1221280'] = { color = '#cef2e0', icon = '' },
['Q47451145'] = { color = '#cef2e0', icon = '' },
['Q11012'] = { color = '#D3D3D3', icon = 'OOjs UI icon robot.svg' },
['Q584529'] = { color = '#D3D3D3', icon = 'OOjs UI icon robot.svg' },
['Q17444909'] = { color = '#decd87', icon = 'Galaxy_symbol_(fixed_width).svg' },
['Q15141321'] = { color = '#F2F2F2', icon = 'Train icon.svg' },
['Q728937'] = { color = '#F2F2F2', icon = 'Train icon.svg' },
['Q7889'] = { color = '#FFDEAD', icon = 'Gamepadicon.svg' },
['Q906512'] = { color = '#cfd8dc', icon = 'Sinking-ship - Delapouite - game-icons.svg' },
['Q2235325'] = { color = '#cfd8dc', icon = 'Sinking-ship - Delapouite - game-icons.svg' },
['Q5393308'] = { color = '#800000', textcolor = '#FFFF00', icon = 'Maki7-religious-buddhist-white.svg' },
['Q1127126'] = { color = '#dce6f1', icon = 'JS Icon Edit.svg' },
['Q6934728'] = { color = '#dce6f1', icon = 'JS Icon Edit.svg' },
['Q215380'] = { color = '#B0C4DE', icon = 'Simple Music.svg' },
['Q3839081'] = { color = '#E6E6FA', icon = 'Earthquake House Icons.svg' },
['Q7944'] = { color = '#E6E6FA', icon = 'Earthquake House Icons.svg' },
['Q11032'] = { color = '#E0F2F1', icon = 'Noto Emoji KitKat 1f4f0 t.svg' },
['Q1190554'] = { color = '#E6E6FA', icon = 'Breezeicons-actions-22-view-calendar.svg' },
['Q2223653'] = { color = '#E6E6FA', icon = 'Breezeicons-actions-22-view-calendar.svg' },
['Q25917186'] = { color = '#E6E6FA', icon = 'Breezeicons-actions-22-view-calendar.svg' },
['Q8068'] = { color = '#E6E6FA', icon = 'Flood icon.png' },
['Q3914'] = { color = '#F8D7DA', icon = 'School Transparent.png' },
['Q180958'] = { color = '#F8D7DA', icon = 'School Transparent.png' },
['Q9826'] = { color = '#F8D7DA', icon = 'School Transparent.png' },
['Q11862829'] = { color = '#F8D7DA', icon = 'Noun Project science icon 334989 cc.svg' },
['Q2465832'] = { color = '#F8D7DA', icon = 'Noun Project science icon 334989 cc.svg' },
['Q12184'] = { color = '#FFCCCB', icon = 'Virus gray black.svg' },
['Q3241045'] = { color = '#FFCCCB', icon = 'Virus gray black.svg' },
['Q44512'] = { color = '#FFCCCB', icon = 'Virus gray black.svg' },
['Q5058355'] = { color = '#B7D7C2', icon = 'Noun Project cell icon 3036233.svg' },
['Q45948'] = { color = '#B7D7C2', icon = 'Noun Project cell icon 3036233.svg' },
['Q515'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q11460'] = { color = '#F5F5DC', icon = 'Map icons by Scott de Jonge - clothing-store.svg' },
['Q19832486'] = { color = '#F5F5DC', icon = 'Font Awesome 5 solid subway.svg' },
['Q870'] = { color = '#F5F5DC', icon = 'Font Awesome 5 solid subway.svg' },
['Q532'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q6256'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q4022'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q123705'] = { color = '#cdff', icon = ' Map marker font awesome.svg' },
['Q8465'] = { color = '#CEE0F2', icon = 'Military symbol.svg' },
['Q198'] = { color = '#b0c4de', icon = 'Military symbol.svg' },
['Q178561'] = { color = '#b0c4de', icon = 'Military symbol.svg' },
['Q728'] = { color = '#b0c4de', icon = 'Military symbol.svg' },
['Q16521'] = { color = '#d0f0c0', icon = '' },
['Q729'] = { color = '#d0f0c0', icon = '' },
['Q756'] = { color = '#d0f0c0', icon = '' },
['Q11424'] = { color = '#ffc0cb', icon = '' },
['Q201658'] = { color = '#ffc0cb', icon = '' },
['Q515'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- city
['Q532'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- village
['Q467745'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- ut
['Q6256'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- country
['Q4022'] = { color = '#cdff', icon = 'Watercources resources pl icon.svg' }, -- river
['Q9430'] = { color = '#cdff', icon = 'Watercources resources pl icon.svg' },
['Q8502'] = { color = '#e7dcc3', icon = 'Mountain Icon.svg' }, -- mountain
['Q103495'] = { color = '#B0C4DE', icon = 'Battle_icon_gladii.svg' },
['Q11514315'] = { color = '#B0C4DE', icon = 'Battle_icon_gladii.svg' },
['Q123705'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- neighborhood
['Q11271835'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- provincial capital
['Q1549591'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- big city
['Q51929311'] = { color = '#cdff', icon = ' Map marker font awesome.svg' }, -- largest city
['Q6957341'] = { color = '#CCAA99', icon = 'ReligijneSymbole2.svg' },
['Q9174'] = { color = '#CCAA99', icon = 'ReligijneSymbole2.svg' },
['Q29517555'] = { color = '#dce6f1', icon = 'OOjs UI icon language-ltr.svg' },
['Q8192'] = { color = '#dce6f1', icon = 'OOjs UI icon language-ltr.svg' },
['Q119520394'] = { color = '#dce6f1', icon = 'OOjs UI icon language-ltr.svg' },
['Q112826905'] = { color = '#f0dbb6', icon = 'Human brain icon.svg' },
['Q103812529'] = { color = '#f0dbb6', icon = 'Human brain icon.svg' },
['Q193622'] = { color = '#cdeeff', icon = 'OOjs UI icon ribbonPrize.svg' },
['Q618779'] = { color = '#cdeeff', icon = 'OOjs UI icon ribbonPrize.svg' },
['Q2003221'] = { color = '#cdeeff', icon = 'OOjs UI icon ribbonPrize.svg' },
['Q116476516'] = { color = '#ffc0cb', icon = 'Emoji_u1f3ad-bw.svg' },
['Q5398426'] = { color = '#ffc0cb', icon = '' },
['Q482994'] = { color = '#ffc0cb', icon = '' },
['default'] = { color = '#F2F2F2', icon = '' },
['Q196600'] = { color = '#ffc0cb', icon = '' }, -- media franchise
}
-- Clean parameters passed from Template:Databox
local function cleanParam(val)
if val then
val = mw.text.trim(val)
if val ~= '' then return val end
end
return nil
end
function p.getTheme(args, item)
-- Check for manual user parameters first
local themeColor = cleanParam(args.bgcolor) or cleanParam(args['color']) or cleanParam(args['رَنٛگ'])
local themeIcon = cleanParam(args.icon) or cleanParam(args['نِشان'])
local themeTextColor = cleanParam(args.titletextcolor)
-- If all are explicitly set by the user, return them immediately
if themeColor and themeIcon and themeTextColor then
return { color = themeColor, icon = themeIcon, textcolor = themeTextColor }
end
local autoColor = nil
local autoIcon = nil
local autoTextColor = nil
-- Check Wikidata P31 (instance of) statements using the safest method
if item and item.id then
local statements = mw.wikibase.getBestStatements(item.id, 'P31')
if statements then
for _, stmt in ipairs(statements) do
if stmt.mainsnak and stmt.mainsnak.snaktype == 'value' and stmt.mainsnak.datavalue then
local qid = stmt.mainsnak.datavalue.value.id
if themeMap[qid] then
autoColor = themeMap[qid].color
autoIcon = themeMap[qid].icon
autoTextColor = themeMap[qid].textcolor
break
end
end
end
end
end
return {
color = themeColor or autoColor or themeMap['default'].color,
icon = themeIcon or autoIcon or themeMap['default'].icon,
textcolor = themeTextColor or autoTextColor or (themeMap['default'] and themeMap['default'].textcolor) or 'black'
}
end
-- The foolproof debug function!
function p.debugtest(frame)
local qid = frame.args[1] or 'Q17042539'
local item = mw.wikibase.getEntity(qid)
local found_ids = {}
if item and item.id then
local statements = mw.wikibase.getBestStatements(item.id, 'P31')
if statements then
for _, stmt in ipairs(statements) do
if stmt.mainsnak and stmt.mainsnak.snaktype == 'value' and stmt.mainsnak.datavalue then
table.insert(found_ids, stmt.mainsnak.datavalue.value.id)
end
end
end
end
local theme = p.getTheme({}, item)
return "Debug Result for " .. qid .. " -> Color: " .. tostring(theme.color) .. " | Text: " .. tostring(theme.textcolor) .. " | Found P31 IDs on Wikidata: " .. table.concat(found_ids, ", ")
end
return p
2tkkh63llvlpu5h2qaavb1t3pczwv6o
فرٛینٛک میٚکڈونلڈ (صحافی)
0
32689
153436
151550
2026-10-07T05:58:33Z
SakuraBot
9889
[[وپ:باٹ|باٹ]] چھُ صَفَس زٲژ پؠٹھ کٲم کَران.
153436
wikitext
text/x-wiki
'''فرٛینٛک میٚکڈونلڈ''' (24 جنوری 1950-5 ستمبر 2026) اوس اکھ اَیرش [[لِکھٲرؠ]]، [[شؠچھ وٲنؠ|صحافی]]، ماحولیات دان تہٕ ''[[دی اَیرِش ٹایمز]]'' ماحولیات ایڈیٹر۔
[[زٲژ:2026 وَفات]]
6872c60i1x3g59hhf31f3b05e7zrku8
علی محمد ساگر
0
32874
153433
152544
2026-10-07T05:48:37Z
SakuraBot
9889
[[وپ:باٹ|باٹ]] چھُ صَفَس زٲژ پؠٹھ کٲم کَران.
153433
wikitext
text/x-wiki
{{دَفتَردار معلوٗمات ڈَبہٕ|office=جنرل نمبر [[جموں و کشمیر نیشنل کانفرنس]]|term_start=جوٗن 2014|children=یاسمیٖن ساگر، اِشفاق ساگر، سلمان ساگر|party=[[جموں و کشمیر نیشنل کانفرنس]]}}
علی محمد ساگر (زامُت 1958) چھُ جموں و کشمیرُک اَکھ ہِنٛدُستٲنؠ سِیاسَت دان تہٕ [[جۆم تہٕ کٔشیٖر قومی کانفرٛنٕس|جموں و کشمیر نیشنل کانفرنسُک]] رُکُن۔ ساگر چھُ [[خانیار ایٚسمبلی حلقہٕ]] پؠٹھٕ ایم ایل اے سٕنٛدِ حثیتہٕ کٲم کران۔ امہِ برٛونٛہہ اوس [[عمر عبداللہ]] سٕنٛدِس قیادتس مَنٛز کابینہٕ مَنٛز دِہٲتی ترقی ہُنٛد ؤزیٖر تہٕ 2014 ہَس مَنٛز [[جۆم تہٕ کٔشیٖر قومی کانفرٛنٕس|جۆم تہٕ کٔشیٖر قومی کانفرٛنٕسُک]] جنرل سیکرٹری مقرر کرنہٕ آمُت۔
== شُروٲتی زِنٛدگی ==
علی محمد ساگر چھُ [[حَبہٕ کٔدٕل|حبہٕ کٔدٕل]]، جۆم تہٕ کٔشیٖر ہُنٛد۔ سُہ چھُ غۄلام قٲدِر سُنٛد نیٚچُو۔ تٔمؠ کٔر 1978 مَنٛز ایم اے تہٕ 1983 مَنٛز [[یونِورسِٹی آف کَشمیٖر]] مَنٛز ایل ایل بی پوٗرٕ۔ أمؠ سٕنٛدِ نیٚچِوِ سلمان ساگرَن لوٚڑ [[2024 جۆم تہٕ کٔشیٖر قونوٗن ساز ایٚسمبلی چُناو|2024 کِس اِنتِخابَس]] مَنٛز۔
== پیشہٕ ==
ساگرَن زیٛوٗن [[2024 جۆم تہٕ کٔشیٖر قونوٗن ساز ایٚسمبلی چُناو|2024 جموں و کشمیر قونوٗن ساز اسمبلی اِنتِخابس]] تہٕ [[2014 جۆم تہٕ کٔشیٖر قونوٗن ساز ایٚسمبلی چُناو|2014 کِس جموں و کشمیر قونوٗن ساز اسمبلی اِنتِخابس]] مَنٛز جموں و کشمیر نیشنل کانفرنسٕچ نُمٲینٛدگی کٔرِتھ کھنیار اسمبلی حلقہٕ پؠٹھٕ۔ تٔمؠ کٔر 6,505 ووٹ حٲصِل تہٕ ہارنووُن پنُن ساروٕے کھۄتہٕ نزدیکی حریف جے کے پی ڈی پی کِس محمد خورشید عالمَس 1,167 ووٹن ہٕنٛدِ فرقہٕ سٟتؠ۔ سُہ آو گۄڈنِچہِ لَٹہِ [[1996 جۆم تہٕ کٔشیٖر قونوٗن ساز ایٚسمبلی چُناو|1996 کِس جموں و کشمیر قونوٗن ساز اسمبلی اِنتِخابس]] مَنٛز این سی وۄمیدوار سٕنٛدِ حثیتہٕ کھنیار سیٹہٕ پؠٹھ منتخب کرنہٕ تہٕ [[2002 جۆم تہٕ کٔشیٖر قونوٗن ساز ایٚسمبلی چُناو|2002]] تہٕ [[2008 جۆم تہٕ کٔشیٖر قونوٗن ساز ایٚسمبلی چُناو|2008]] کِس یِنہٕ والؠن دۄن چُناون مَنٛز کوٚرُن یہِ قٲیِم۔
== چُناو کارکردگی ==
{| class="wikitable sortable"
! چُناو !! حلقہٕ !! colspan="2" |پارٹی !! !! ووٹ % !! مُخٲلِف وۄمیدوار !! colspan="2" |مُخٲلِف پارٹی !! مُخٲلِف ووٹ %|| حَوالہٕ
|-
|[[2024 Jammu and Kashmir Legislative Assembly election|2024]]||[[خانیار ایٚسمبلی حلقہٕ|خانیار]]||{{party name with color|Jammu and Kashmir National Conference}}||{{Won}}||62.46%||شیخ عمران||{{party name with color|Independent politician}}||20.93%||<ref name="J&K Assembly Election Results 2024 - Khanyar">{{cite news |date=8 October 2024 |title=J&K Assembly Election Results 2024 - Khanyar |url=https://results.eci.gov.in/AcResultGenOct2024/candidateswise-U0820.htm |archive-url=https://web.archive.org/web/20250716163923/https://results.eci.gov.in/AcResultGenOct2024/candidateswise-U0820.htm |archive-date=16 July 2025 |access-date=16 July 2025 |publisher=Election Commission of India}}</ref>
|-
|[[2014 Jammu and Kashmir Legislative Assembly election|2014]]||[[خانیار ایٚسمبلی حلقہٕ|خانیار]]||{{party name with color|Jammu & Kashmir National Conference}}||{{Won}}||48.76%||محمد خورشید عالم||{{party name with color|Jammu and Kashmir People's Democratic Party}}||40.01%||<ref>{{Cite web |date= |title=Jammu & Kashmir 2014 - Jammu & Kashmir - Election Commission of India |url=https://old.eci.gov.in/files/file/3797-jammu-kashmir-2014/ |archive-url=https://web.archive.org/web/20190613150235/https://eci.gov.in/files/file/3797-jammu-kashmir-2014/ |archive-date=2019-06-13 |access-date= |website=eci.gov.in}}</ref>
|-
|[[2008 Jammu and Kashmir Legislative Assembly election|2008]]||[[خانیار ایٚسمبلی حلقہٕ|خانیار]]||{{party name with color|Jammu & Kashmir National Conference}}||{{Won}}||74.16%||شَوکت احمد حافظ||{{party name with color|Jammu and Kashmir People's Democratic Party}}||9.47%||<ref>{{cite web|publisher=[[Election Commission of India]]|title=Statistical Report on General Election, 2008 to the Legislative Assembly of Jammu and Kashmir |url=https://ceojk.nic.in/pdf/10-Detailed%20Results.pdf|archive-url=https://web.archive.org/web/20241225073739/https://ceojk.nic.in/pdf/10-Detailed%20Results.pdf|archive-date=25 December 2024|access-date=25 December 2024}}</ref>
|-
|[[2002 Jammu and Kashmir Legislative Assembly election|2002]]||[[خانیار ایٚسمبلی حلقہٕ|خانیار]]||{{party name with color|Jammu & Kashmir National Conference}}||{{Won}}||93.85%||مُشتاق احمد||{{party name with color|Indian National Congress}}||4.16%||<ref>{{cite web|publisher=[[Election Commission of India]]|title=Statistical Report on General Election, 2002 to the Legislative Assembly of Jammu and Kashmir |url=http://eci.gov.in/eci_main/StatisticalReports/SE_2002/StatRep_JK_02.pdf|archive-url=https://web.archive.org/web/20130127192246/http://eci.gov.in/eci_main/StatisticalReports/SE_2002/StatRep_JK_02.pdf|archive-date=27 January 2013|access-date=15 February 2024}}</ref>
|-
|[[1996 Jammu and Kashmir Legislative Assembly election|1996]]||[[خانیار ایٚسمبلی حلقہٕ|خانیار]]||{{party name with color|Jammu & Kashmir National Conference}}||{{Won}}||87.52%||نَذیٖر احمد||{{party name with color|Janata Dal}}||8.58%||<ref>{{cite web|publisher=[[Election Commission of India]]|title=Statistical Report on General Election, 1996 to the Legislative Assembly of Jammu and Kashmir |url=http://eci.nic.in/eci_main/StatisticalReports/SE_1996/StatisticalReport-JK96.pdf|archive-url=https://web.archive.org/web/20120117084805/http://eci.nic.in/eci_main/StatisticalReports/SE_1996/StatisticalReport-JK96.pdf |archive-date=17 January 2012|access-date=15 February 2024}}</ref>
|-
|}
== حَوالہٕ ==
[[زٲژ:کٲشِرؠ سِیاسَتدان]]
[[زٲژ:زِنٛدٕ لوٗکھ]]
ajt9dpdtpl6j0904oza4j56onik241l
رُکُن:Nadeemulhaqmir-bot/log/2026/10
2
32896
153292
153128
2026-10-06T18:02:22Z
Nadeemulhaqmir-bot
9480
باٹ چھُ اَز دۄہُک لاگ مَحفوٗظ کَران.
153292
wikitext
text/x-wiki
==1-10-2026==
==== [[2026 نؠپالس مَنٛز سٔہلاب]] - ([[Special:Diff/152599|فَرَق]]) ====
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
==== [[فٕلَے دُبَے پرواز 1073]] - ([[Special:Diff/152600|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> علاج </nowiki><b> -> </b><nowiki>یَلاج</nowiki>
# <nowiki> گۄڈٕنیُک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> ؤرۍ یہِ </nowiki><b> -> </b><nowiki>ؤرؠیہِ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <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/152601|فَرَق]]) ====
# <nowiki> دُنیاہُک </nowiki><b> -> </b><nowiki>دُنؠیاہُک</nowiki>
==== [[ایلیٖن وۄارنوس]] - ([[Special:Diff/152602|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> قتل </nowiki><b> -> </b><nowiki>قَتٕل</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/152603|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
# <nowiki> ضلعہٕ </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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-10-2026==
==== [[بَنٛگُلا]] - ([[Special:Diff/152700|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> ضلع </nowiki><b> -> </b><nowiki>ضِلہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki>
# <nowiki> ہُند </nowiki><b> -> </b><nowiki>ہُنٛد</nowiki>
# <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/152701|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[نسانجے]] - ([[Special:Diff/152702|فَرَق]]) ====
# <nowiki> شہر </nowiki><b> -> </b><nowiki>شَہَر</nowiki>
# <nowiki> ُ. </nowiki><b> -> </b><nowiki>ُ۔</nowiki>
==== [[اَمِتابھ بَچَن]] - ([[Special:Diff/152703|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> ہندوستٲنی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[دیوداس (2002 ہِندی فِلِم)]] - ([[Special:Diff/152704|فَرَق]]) ====
# <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki>
# <nowiki> معاون </nowiki><b> -> </b><nowiki>سہارٕ</nowiki>
==== [[ایشوریا راے]] - ([[Special:Diff/152705|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> دنیاہٕک </nowiki><b> -> </b><nowiki>دُنؠیاہٕک</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <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/152706|فَرَق]]) ====
# <nowiki> دنیاہک </nowiki><b> -> </b><nowiki>دُنؠیاہک</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[ڈی جی رُپاریل کالیج آف آرٹس، سایِنس اینڈ کامرس]] - ([[Special:Diff/152707|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
==== [[اَمریٖکی ساموا]] - ([[Special:Diff/152708|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> چِھ </nowiki><b> -> </b><nowiki>چھِ</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> دارالحکومت </nowiki><b> -> </b><nowiki>رازدٲنؠ</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <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/152709|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki>
# <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-10-2026==
==== [[مۄغَل سَلطَنَت]] - ([[Special:Diff/152787|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اِستعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اندرونی </nowiki><b> -> </b><nowiki>اۆنٛدروٗنی</nowiki>
# <nowiki> اسلٲمی </nowiki><b> -> </b><nowiki>اِسلٲمی</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> جنوبی </nowiki><b> -> </b><nowiki>جۆنوٗبی</nowiki>
# <nowiki> جنگس </nowiki><b> -> </b><nowiki>جَنٛگس</nowiki>
# <nowiki> حکوٗمت </nowiki><b> -> </b><nowiki>حوٚکوٗمَتھ</nowiki>
# <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki>
# <nowiki> دُنیاہٕک </nowiki><b> -> </b><nowiki>دُنؠیاہٕک</nowiki>
# <nowiki> ریاست </nowiki><b> -> </b><nowiki>رِیاسَتھ</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> سۭتہِ </nowiki><b> -> </b><nowiki>سٟتہِ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> سٕنز </nowiki><b> -> </b><nowiki>سٟنٛز</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> قتل </nowiki><b> -> </b><nowiki>قَتٕل</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مدد </nowiki><b> -> </b><nowiki>مَدَتھ</nowiki>
# <nowiki> مجموعہ </nowiki><b> -> </b><nowiki>سۆمبرُن</nowiki>
# <nowiki> نژاد </nowiki><b> -> </b><nowiki>نَسٕل</nowiki>
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
# <nowiki> ہندوستٲنۍ </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ٘ </nowiki><b> -> </b><nowiki>ٚ</nowiki>
# <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/152788|فَرَق]]) ====
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <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/152789|فَرَق]]) ====
# <nowiki> {{Databox}} </nowiki><b> -> </b><nowiki>{{مولوٗماتھ}}</nowiki>
==4-10-2026==
==== [[جَگلَر ویٖن]] - ([[Special:Diff/152884|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==== [[گیانیش کمار]] - ([[Special:Diff/152885|فَرَق]]) ====
# <nowiki> آئی </nowiki><b> -> </b><nowiki>اَے</nowiki>
# <nowiki> آی </nowiki><b> -> </b><nowiki>اَے</nowiki>
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> بیاکھ </nowiki><b> -> </b><nowiki>بیٛاکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> تنقید </nowiki><b> -> </b><nowiki>تَنقیٖد</nowiki>
# <nowiki> تعاون </nowiki><b> -> </b><nowiki>سہکٲری</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> خلاف </nowiki><b> -> </b><nowiki>خَلاف</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> شائع </nowiki><b> -> </b><nowiki>شایَع</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> قائم </nowiki><b> -> </b><nowiki>قٲیِم</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> ہندوستٲنی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <nowiki> یہ </nowiki><b> -> </b><nowiki>یہِ</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <nowiki> پٔھ </nowiki><b> -> </b><nowiki>پھٔ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <nowiki> ٘ </nowiki><b> -> </b><nowiki>ٚ</nowiki>
# <nowiki> یئ </nowiki><b> -> </b><nowiki>یئ</nowiki>
# <nowiki> ئین </nowiki><b> -> </b><nowiki>ئین</nowiki>
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
# <nowiki> {{Databox}} </nowiki><b> -> </b><nowiki>{{مولوٗماتھ}}</nowiki>
# <nowiki> ٮ۪ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
==== [[شِوکُمار شرما]] - ([[Special:Diff/152886|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعاون </nowiki><b> -> </b><nowiki>سہکٲری</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> چُھ </nowiki><b> -> </b><nowiki>چھُ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> موسیقی </nowiki><b> -> </b><nowiki>موٗسیٖقی</nowiki>
# <nowiki> ہندوستٲنی </nowiki><b> -> </b><nowiki>ہِندوستٲنؠ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ۍ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <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/152887|فَرَق]]) ====
# <nowiki> ن. </nowiki><b> -> </b><nowiki>ن۔</nowiki>
==== [[نِکولس ژے]] - ([[Special:Diff/152888|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
==== [[آوویی مِیازاکی]] - ([[Special:Diff/152889|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> سٕتؠ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
==== [[پارکنسن بؠمٲرؠ]] - ([[Special:Diff/152890|فَرَق]]) ====
# <nowiki> پٲنٹھ </nowiki><b> -> </b><nowiki>پٲٹھؠ</nowiki>
# <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki>
==== [[ہوسا زَبان]] - ([[Special:Diff/152891|فَرَق]]) ====
# <nowiki> ئی </nowiki><b> -> </b><nowiki>ئی</nowiki>
==5-10-2026==
==== [[ژار بومبا]] - ([[Special:Diff/153045|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> دُنیاہَس </nowiki><b> -> </b><nowiki>دُنؠیاہَس</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <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/153046|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> دنیاہٕکؠ </nowiki><b> -> </b><nowiki>دُنؠیاہٕکؠ</nowiki>
# <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/153047|فَرَق]]) ====
# <nowiki> پٲنٹھ </nowiki><b> -> </b><nowiki>پٲٹھؠ</nowiki>
# <nowiki> تہ </nowiki><b> -> </b><nowiki>تہٕ</nowiki>
# <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/153048|فَرَق]]) ====
# <nowiki> آبادی </nowiki><b> -> </b><nowiki>آبٲدی</nowiki>
# <nowiki> اتھ </nowiki><b> -> </b><nowiki>اَتھ</nowiki>
# <nowiki> ابتدائی </nowiki><b> -> </b><nowiki>اِبتدٲیی</nowiki>
# <nowiki> استعمال </nowiki><b> -> </b><nowiki>اِستِمال</nowiki>
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <nowiki> اگست </nowiki><b> -> </b><nowiki>اَگَست</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پٲنٹھ </nowiki><b> -> </b><nowiki>پٲٹھؠ</nowiki>
# <nowiki> تقریباً </nowiki><b> -> </b><nowiki>تَقریٖبَن</nowiki>
# <nowiki> جنوری </nowiki><b> -> </b><nowiki>جَنؤری</nowiki>
# <nowiki> جنگ </nowiki><b> -> </b><nowiki>جَنٛگ</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> دنیاہس </nowiki><b> -> </b><nowiki>دُنؠیاہس</nowiki>
# <nowiki> زیادٕ </nowiki><b> -> </b><nowiki>زیٛادٕ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <nowiki> سٕندۍ </nowiki><b> -> </b><nowiki>سٟنٛدؠ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> فروری </nowiki><b> -> </b><nowiki>فَرؤری</nowiki>
# <nowiki> قتل </nowiki><b> -> </b><nowiki>قَتٕل</nowiki>
# <nowiki> کٔرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> کرتھ </nowiki><b> -> </b><nowiki>کٔرِتھ</nowiki>
# <nowiki> کھوتہٕ </nowiki><b> -> </b><nowiki>کھۄتہٕ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> میٹر </nowiki><b> -> </b><nowiki>میٖٹَر</nowiki>
# <nowiki> نومبر </nowiki><b> -> </b><nowiki>نَوَمبَر</nowiki>
# <nowiki> ؤ </nowiki><b> -> </b><nowiki>و</nowiki>
# <nowiki> یتھ </nowiki><b> -> </b><nowiki>یَتھ</nowiki>
# <nowiki> ۍ </nowiki><b> -> </b><nowiki>ؠ</nowiki>
# <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/153049|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[ووگُر-کرٛیٖر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153050|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[وِجیپُر، جۆم تہٕ کٔشیٖر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153051|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[اوٗڑی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153052|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[اُدھم پوٗر مغربی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153053|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[اُدھم پوٗر مشرقی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153054|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[ترٕٛہ گام ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153055|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[ترٛال ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153056|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[تھانَمَنٛڈی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153057|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[سُرَنکوٹ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153058|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[سُچیتگڑھ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153059|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[سِریگۄفوور-ویٚجہِ وور ایٚسمبلی]] - ([[Special:Diff/153060|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[سوپُر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153061|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[سۄنہٕ وور ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153062|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[شرٛی ماتا ویشنوٗ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153063|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[شَنٛگس-اَنَتھ مشرقی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153064|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[سامبا ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153065|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[رِیٲسی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153066|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[رَنبیٖر سِنٛگھ پورا-جۆم جۆنوٗبی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153067|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[رام نَگَر، جۆم تہٕ کٔشیٖر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153068|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[رامگڑھ، جۆم تہٕ کٔشیٖر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153069|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[رامبَن ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153070|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[راجپوٗر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153071|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[راجوری ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153072|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[رَفیع آباد ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153073|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[پُلووم ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153074|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[پرٛوٗنٛژھ حَویلی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153075|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[پَٹَن ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153076|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[پہلگام ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153077|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[پاڈر-ناگسینا ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153078|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[نوشہرہ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153079|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[نگروٹا، جۆم تہٕ کٔشیٖر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153080|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[مینٛڈھر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153081|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[مَڑھ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153082|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[لولاب ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153083|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[لَنٛگیٹ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153084|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[لال چوک ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153085|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[کۄپوور ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153086|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[کۄلگوم ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153087|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[کۄکَرناگ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153088|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[کشٹٕوار ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153089|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[خان صٲب ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153090|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[کٹھوعہ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153091|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[کرناہ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153092|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[کَنٛگَن ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153093|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[کالاکوٹ-سُنٛدَربنی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153094|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[جسروٹا ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153095|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[جۆم مغربی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153096|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[جۆم شُمٲلؠ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153097|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[جۆم مشرقی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153098|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[اِنٛدَروَل ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153099|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[ہیٖرانَگَر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153100|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[حضرت بل ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153101|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[ہَنٛدٕوور ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153102|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[گۄلابگڑھ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153103|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[گانٛدربل ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153104|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[عیٖدگاہ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153105|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[ڈوڈہ مغربی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153106|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[ڈوڈہ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153107|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[دُیٛوسر، جۆم تہٕ کٔشیٖر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153108|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[دمھل ہٲنٛز پوٗر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153109|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[چھَمٛب ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153110|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[چیٚنانی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153111|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[چھانہٕ پوٗر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153112|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[ژوڈُر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153113|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[مَرکَزی شالٹینٛگ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153114|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[بُدھَل ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153115|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[بَڈگام ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153116|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[بِشناہ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153117|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[بِلاوَر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153118|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[بیٖرُو ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153119|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[بَسوہلی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153120|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[وَرمُل ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153121|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[بانِہال ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153122|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[بانی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153123|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[بَہوٗ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153124|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[اَنَتھ ناگ مغربی ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153125|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[اَنَتھ ناگ ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153126|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==== [[اَکھنوٗر ایٚسمبلی حلقہٕ]] - ([[Special:Diff/153127|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
==6-10-2026==
==== [[1999]] - ([[Special:Diff/153272|فَرَق]]) ====
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[1998]] - ([[Special:Diff/153273|فَرَق]]) ====
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[1997]] - ([[Special:Diff/153274|فَرَق]]) ====
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[1996]] - ([[Special:Diff/153275|فَرَق]]) ====
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[1995]] - ([[Special:Diff/153276|فَرَق]]) ====
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[1994]] - ([[Special:Diff/153277|فَرَق]]) ====
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[1993]] - ([[Special:Diff/153278|فَرَق]]) ====
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[سید محمد نقیٖب العطاس]] - ([[Special:Diff/153279|فَرَق]]) ====
# <nowiki> آئی </nowiki><b> -> </b><nowiki>اَے</nowiki>
# <nowiki> پٮ۪ٹھٕ </nowiki><b> -> </b><nowiki>پؠٹھٕ</nowiki>
# <nowiki> پٲنٹھ </nowiki><b> -> </b><nowiki>پٲٹھؠ</nowiki>
# <nowiki> دنیاہَس </nowiki><b> -> </b><nowiki>دُنؠیاہَس</nowiki>
# <nowiki> سہُ </nowiki><b> -> </b><nowiki>سُہ</nowiki>
# <nowiki> گۄڈنیُٛک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
# <nowiki> یونیورسٹی </nowiki><b> -> </b><nowiki>یوٗنِوَرسِٹی</nowiki>
# <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/153280|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/153281|فَرَق]]) ====
# <nowiki> ساروی </nowiki><b> -> </b><nowiki>سارِوٕے</nowiki>
# <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/153282|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> دوہ </nowiki><b> -> </b><nowiki>دۄہ</nowiki>
# <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/153283|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> ==حوالہٕ== </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
# <nowiki> سہُ </nowiki><b> -> </b><nowiki>سُہ</nowiki>
# <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/153284|فَرَق]]) ====
# <nowiki> ٕ. </nowiki><b> -> </b><nowiki>ٕ۔</nowiki>
==== [[تَنتھٕر]] - ([[Special:Diff/153286|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> ==حوالہٕ== </nowiki><b> -> </b><nowiki>== حَوالہٕ ==</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# [[وِکیٖپیٖڈیا:حَوالہٕ|حَوالہٕ]] وَرٲے مَضموٗن ٹیگ کَران
==== [[خواجہ شمس الدیٖن]] - ([[Special:Diff/153287|فَرَق]]) ====
# <nowiki> امہ </nowiki><b> -> </b><nowiki>اَمہِ</nowiki>
# <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/153288|فَرَق]]) ====
# <nowiki> پٮ۪ٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> حکوٗمت </nowiki><b> -> </b><nowiki>حوٚکوٗمَتھ</nowiki>
# <nowiki> دسمبر </nowiki><b> -> </b><nowiki>دَسَمبَر</nowiki>
# <nowiki> سٍتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> ستمبر </nowiki><b> -> </b><nowiki>سَتَمبَر</nowiki>
# <nowiki> شُروٗع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> منز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <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/153289|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> پیٹھ </nowiki><b> -> </b><nowiki>پؠٹھ</nowiki>
# <nowiki> تعلیٖم </nowiki><b> -> </b><nowiki>تٲلیٖم</nowiki>
# <nowiki> سۭتۍ </nowiki><b> -> </b><nowiki>سٟتؠ</nowiki>
# <nowiki> شروع </nowiki><b> -> </b><nowiki>شۆروٗع</nowiki>
# <nowiki> فلم </nowiki><b> -> </b><nowiki>فِلِم</nowiki>
# <nowiki> منٛز </nowiki><b> -> </b><nowiki>مَنٛز</nowiki>
# <nowiki> مارچ </nowiki><b> -> </b><nowiki>مارٕچ</nowiki>
# <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/153290|فَرَق]]) ====
# <nowiki> اکھ </nowiki><b> -> </b><nowiki>اَکھ</nowiki>
# <nowiki> گوڑنک </nowiki><b> -> </b><nowiki>گۄڈنُیٛک</nowiki>
==== [[سیویرس سٕنیپ]] - ([[Special:Diff/153291|فَرَق]]) ====
# <nowiki> ئ </nowiki><b> -> </b><nowiki>ئ</nowiki>
5c5rkn7iqwtiy5d6y7k1z0n3wxn983t
عیٖدگاہ ایٚسمبلی حلقہٕ
0
32960
153435
153105
2026-10-07T05:53:02Z
SakuraBot
9889
[[وپ:باٹ|باٹ]] چھُ صَفَس زٲژ پؠٹھ کٲم کَران.
153435
wikitext
text/x-wiki
'''{{PAGENAMEBASE}}''' چھُ ہِندوستان کِس شُمٲلی رِیاستَس [[جۆم تہٕ کٔشیٖر|جۆم تہٕ کٔشیٖر مَنٛز،]] [[جۆم تہٕ کٔشیٖر مَجلِسہِ قۄنوٗن سٲزی|جۆم تہٕ کٔشیٖر قوٗنون ساز ایٚسمبلی]] کِس 90 حلقَو مَنٛز اَکھ۔<ref name="JKGazette2024">{{cite web
|title=Notification No. SO-412: General Election to the Legislative Assembly of the Union Territory of Jammu and Kashmir
|url=https://rgp.jk.gov.in/pdf/SRO/SO-2024/S.%20O.%20412%20%202024%20%20%20PDF.pdf
|publisher=Jammu and Kashmir Official Gazette
|date=20 August 2024
|access-date=2026-10-05
}}</ref>
== حَوالہٕ ==
{{حَوالہٕ}}
[[زٲژ:جۆم تہٕ کٔشیٖر منٛز اسمبلی حلقہٕ]]
[[زٲژ:سِریٖنَگَر ضِلہٕ]]
9i6vyh0vrwb3u9bd7orjhidifla8xlu
لَنٛگیٹ ایٚسمبلی حلقہٕ
0
32981
153438
153084
2026-10-07T06:15:24Z
SakuraBot
9889
[[وپ:باٹ|باٹ]] چھُ صَفَس زٲژ پؠٹھ کٲم کَران.
153438
wikitext
text/x-wiki
'''{{PAGENAMEBASE}}''' چھُ ہِندوستان کِس شُمٲلی رِیاستَس [[جۆم تہٕ کٔشیٖر|جۆم تہٕ کٔشیٖر مَنٛز،]] [[جۆم تہٕ کٔشیٖر مَجلِسہِ قۄنوٗن سٲزی|جۆم تہٕ کٔشیٖر قوٗنون ساز ایٚسمبلی]] کِس 90 حلقَو مَنٛز اَکھ۔<ref name="JKGazette2024">{{cite web
|title=Notification No. SO-412: General Election to the Legislative Assembly of the Union Territory of Jammu and Kashmir
|url=https://rgp.jk.gov.in/pdf/SRO/SO-2024/S.%20O.%20412%20%202024%20%20%20PDF.pdf
|publisher=Jammu and Kashmir Official Gazette
|date=20 August 2024
|access-date=2026-10-05
}}</ref>
== حَوالہٕ ==
{{حَوالہٕ}}
[[زٲژ:جۆم تہٕ کٔشیٖر منٛز اسمبلی حلقہٕ]]
[[زٲژ:کۄپوور ضِلہٕ]]
493h7em5xiy7r5um4jmqsg4cw813q42
لولاب ایٚسمبلی حلقہٕ
0
32982
153437
153083
2026-10-07T06:13:27Z
SakuraBot
9889
[[وپ:باٹ|باٹ]] چھُ صَفَس زٲژ پؠٹھ کٲم کَران.
153437
wikitext
text/x-wiki
'''{{PAGENAMEBASE}}''' چھُ ہِندوستان کِس شُمٲلی رِیاستَس [[جۆم تہٕ کٔشیٖر|جۆم تہٕ کٔشیٖر مَنٛز،]] [[جۆم تہٕ کٔشیٖر مَجلِسہِ قۄنوٗن سٲزی|جۆم تہٕ کٔشیٖر قوٗنون ساز ایٚسمبلی]] کِس 90 حلقَو مَنٛز اَکھ۔<ref name="JKGazette2024">{{cite web
|title=Notification No. SO-412: General Election to the Legislative Assembly of the Union Territory of Jammu and Kashmir
|url=https://rgp.jk.gov.in/pdf/SRO/SO-2024/S.%20O.%20412%20%202024%20%20%20PDF.pdf
|publisher=Jammu and Kashmir Official Gazette
|date=20 August 2024
|access-date=2026-10-05
}}</ref>
== حَوالہٕ ==
{{حَوالہٕ}}
[[زٲژ:جۆم تہٕ کٔشیٖر منٛز اسمبلی حلقہٕ]]
[[زٲژ:کۄپوور ضِلہٕ]]
493h7em5xiy7r5um4jmqsg4cw813q42
شَنٛگس-اَنَتھ مشرقی ایٚسمبلی حلقہٕ
0
33001
153432
153064
2026-10-07T05:24:52Z
SakuraBot
9889
[[وپ:باٹ|باٹ]] چھُ صَفَس زٲژ پؠٹھ کٲم کَران.
153432
wikitext
text/x-wiki
'''{{PAGENAMEBASE}}''' چھُ ہِندوستان کِس شُمٲلی رِیاستَس [[جۆم تہٕ کٔشیٖر|جۆم تہٕ کٔشیٖر مَنٛز،]] [[جۆم تہٕ کٔشیٖر مَجلِسہِ قۄنوٗن سٲزی|جۆم تہٕ کٔشیٖر قوٗنون ساز ایٚسمبلی]] کِس 90 حلقَو مَنٛز اَکھ۔<ref name="JKGazette2024">{{cite web
|title=Notification No. SO-412: General Election to the Legislative Assembly of the Union Territory of Jammu and Kashmir
|url=https://rgp.jk.gov.in/pdf/SRO/SO-2024/S.%20O.%20412%20%202024%20%20%20PDF.pdf
|publisher=Jammu and Kashmir Official Gazette
|date=20 August 2024
|access-date=2026-10-05
}}</ref>
== حَوالہٕ ==
{{حَوالہٕ}}
[[زٲژ:جۆم تہٕ کٔشیٖر منٛز اسمبلی حلقہٕ]]
[[زٲژ:انَنت ناگ ضِلہٕ]]
seyt6699u7tetedgscffni18wctsmcv
لام
0
33027
153283
153227
2026-10-06T18:01:41Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153283
wikitext
text/x-wiki
{{مولوٗماتھ}}
'''لام''' <ref>{{کِتاب حَوالہٕ|url=https://dsal.uchicago.edu/cgi-bin/app/grierson_query.py?qs=l%C4%81m%201&searchhws=yes&matchtype=exact}}</ref>([[تِبتی لِکھٲرؠ نِظام|تِبتی]]:བླ་མ་) چھُ [[تِبتی بۄدمت|تِبتی بۄدمتس]] مَنٛز [[درم]] کِس أکس وُزناونہٕ آمٕتؠ کارکُنس دِنہٕ آمت لقب۔
[[Category:Articles containing Standard Tibetan-language text]]
سٲری سادٕ چھٕنہٕ لام آسان، ییٚلہ زن زنانہٕ ہؠکن تسلیم کٔرِتھ تہٕ لام آسنِک حقدار ٲستھ۔ تبتی لفظ ''لا-ما'' اُک مطلب چھُ "تھدِ پایِچ موج"، تہٕ یہِ چھُ اؠمِس شخصہٕ سندؠن خصوٗصیاتن ہنٛز عکاسی کران، یِتھِس نفرس چھُ لام وننہٕ یوان۔
تٲریخی طور تہٕ وِنکؠن چھُ، یہِ ناو یَزتھ والؠن روحٲنی مٲلکن دنہٕ یوان تہٕ یہِ ہؠکہِ اکہِ خاص بۄدٕ ذاتھُک حصہ ٲستھ یَتھ کٔنؠ زن [[دَلٲے لام|دلٲے لام]] تہٕ پَنچن لام، تھٔز تُلُک زاتھِ ہِنٛد چھِ۔<ref name="slate">{{ویب حَوالہٕ|last=Marcotte|first=Amanda|date=2000-01-14|title=Who Are the Tibetan Lamas?|url=http://www.slate.com/id/1004379/|access-date=2013-07-17|publisher=Slate.com}}</ref>
مَغربی عالِمَن یِمَن مَنٛز [[مؠلوِن گولڈسٹیٖن]] تہِ شٲمِل چھُ، تِمو سٕنٛدِ نَہ فہمی ہٕنٛدِ وجہہ سٟتؠ چھُ [[بِکشوٗ]]<ref name="brit"/><ref name="slate"/> خِطاب غَلط پٲٹھؠ سارِنٕے عام سادَن پؠٹھ لگاونہٕ آمُت، تہٕ وَنؠ وَنؠ چھُ "لام" لَفٕظ بٔڈؠ پیمانس پؠٹھ تِبتی سادن پؠٹھ غَلط پٲٹھؠ لگاونہٕ یِوان۔<ref name="slate">{{ویب حَوالہٕ|last=Marcotte|first=Amanda|date=2000-01-14|title=Who Are the Tibetan Lamas?|url=http://www.slate.com/id/1004379/|access-date=2013-07-17|publisher=Slate.com}}</ref> اِتھَے پٲٹھؠ، تِبتی بۄد درمس کۆر گولڈسٹیٖن تہٕ گۄڈٕ گۄڈِم مغربی اسکالرزو، تہٕ یورپی مسافِرو غلطی سان "لامااِزٕم" تہٕ "لَمیسٹ" ناو، یہِ سمجن ورٲے کہِ تٕمؠ یہِ وُچھان ٲسؠ سُہ اوس تبتی بۄدمت۔<ref name="brit" /> لامااِزٕم ونُن چھُ وۄنؠ سکھ غلط یِوان مانہٕ۔<ref>{{کِتاب حَوالہٕ|last=Frank J. Korom|title=Constructing Tibetan Culture: Contemporary Perspectives|publisher=World Heritage Press|year=1997|isbn=1-896064-12-4}}</ref>
تِبتی بۄد دَرم کِس [[وۄزريانہٕ]] مَنٛز چھُ اَکھ لاما اَکھ [[تَنتھٕر|تنتھٕرؠ]] روٗحٲنی وتہٕ ہاوُک، یا کٲنٛسہِ یژھن وٲلؠ بۄد ژاٹھ سُنٛد گۄرٕ، یا اَکھ [[یوگؠ]] یا [[یوگٕنؠ]]. اِتھ پٲٹھؠ چھُ لاما / گۄرٕ [[ترٛےٚ موٗل|ترٛؠن موٗلن]] مَنٛز اَکھ وُچھنہٕ یِوان، یُس [[ترٛےٚ رتَن|ترٛؠن رَتنَن]] ہُنٛد اَکھ روٗپ چھُ، یِمَن مَنٛز [[یِدام]] تہٕ [[داکٕنؠ]] شٲمِل چھِ، تہٕ [[دَرمپالہٕ]] چھٕ رٲچھ راوٹھ کرن وٲلؠ دَے۔
تٕہنٛدؠن ذاتن مُطٲبِق چھُ لام سُنٛد ذہؠن بۄد، یعنی اِنسانُک ساروٕے کھۄ تہٕ تھۆد پایہِ؛ لام سٕنٛدؠ کتھٕ چھٕ دَرم تہٕ لام سُنٛد بدن چھُ پرٛؠزلوٕنؠ پایَس پؠٹھ واتناونہٕ باپَتھ وتھٕ ہاوُک تہِ بیٚے اَکھ یار تہِ— سَنٛگہٕ۔ اؠمیُٛک مطلب چھُ یہِ زِ لام چھُ ترٛؠن رَتنَن ہُنٛد پوٗرٕ سپدیٛومُت روٗپ . لام سُنٛد اَکھ بیٛاکھ روٗپ چھُ ترٛؠن کایَن ہِنٛد دٔسؠ تہِ وؠسناونہٕ یِوان۔<ref>5th Shamarpa, Shamar Köncho Yenlak and Jamgön Kongtrul Lodrö Thayé, Translation: Artur Przybysławski, "Calling the Lama from Afar: Two Suplicaitons to the Root Teacher."Translating the Karmapas' Works, Vélez-Málaga Spain (2019)p. 11</ref>
== حَوالہٕ ==
m61r2jscfit67dd577ce2oryb0bj06x
گربہٕ زال
0
33028
153290
153159
2026-10-06T18:02:12Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153290
wikitext
text/x-wiki
''''''گربہٕ زال'''''' چھِ اَکھ زال یۄس انسٲنی تہٕ باقی مختلف جنین قریب چھ کور کران ییلہٕ تم گۄڈنُیٛک تشکیل دیوان چھ۔<ref>{{Cite journal|last=Tam|first=Timothy Theodore Ka Ki|last2=Xu|first2=Shao|last3=Li|first3=Yunfan|last4=Wang|first4=Xiao|last5=Chen|first5=Yicong|last6=Guo|first6=Jilong|last7=Feng|first7=Zhen|last8=Lan|first8=Guocheng|last9=Ruan|first9=Degong|last10=Han|first10=Dong|last11=Zhang|first11=Qingqing|date=March 2026|title=Amniogenesis in embryos and stem cell models|url=https://pubmed.ncbi.nlm.nih.gov/41776371|journal=Nature Cell Biology|volume=28|issue=3|pages=409–420|doi=10.1038/s41556-026-01873-4|issn=1476-4679|pmid=41776371}}</ref>
lu6nb8wrng0tk5vnmkima4glgvs7twa
گوکسل آرسوے
0
33029
153289
153170
2026-10-06T18:02:05Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153289
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No}}
'''گوکسل آرسوے''' (15 مارٕچ 1936-5 اکتوبر 2026) اوس اَکھ ترک اداکار، گلوکار تہٕ کھِلٲڑؠ۔<ref>{{ویب حَوالہٕ|date=5 October 2026|title=Yeşilçam'ın 'Altın Çocuk' Lakaplı Oyuncusu Göksel Arsoy Hayatını Kaybetti|url=https://www.gercekgundem.com/magazin/yesilcamin-altin-cocuk-lakapli-oyuncu-goksel-arsoy-hayatini-kaybetti-579923|access-date=5 October 2026|website=Gerçek Gündem|language=Turkish}}</ref>
== زانہِ زِنٛدگی ==
آرسوین کٔر [[اِستانبُل یوٗنِوَرسِٹی]] ہٕنٛز اکنامکس فیکلٹی مَنٛز تٲلیٖم۔ سُہ اوس موسیقار یساری عاصم آرسوے سُنٛد بابتھٕر۔ تٔمؠ کٔر نزدیٖکی یِشلکوی ہوٲیی اڈَس پؠٹھ کٲم کرٕنؠ شۆروٗع۔ 1958 مَنٛز کٔر تٔمؠ کارا گنلریمس مَنٛز پنٕنؠ فلمی شروعات یٔمِچ ہدایت کٲری سری گلٹیکن ٲس کٔرمٕژ تہٕ پتہٕ کٔر کیلیپسے تہٕ سمانیولو ہِشن فلمن مَنٛز وچھنہٕ۔ یمو مَنٛز واریاہن مَنٛز کٔر تٔمؠ اداکار بیلگن ڈوروک سٕنٛدِ مدمقابل اداکٲری۔ تٔمؠ کٔر فضایہ کس بارس مَنٛز کلٹ فِلِم "شفاق بیکیلری" مَنٛز اداکار تہٕ پروڈیوسر سنٛد کردار ادا۔
تٔمِس اوس میڈیاہن ترک سیٚنِما ہُک "گولڈن چایلڈ" ("Altın çocuk") لیبل لگٲومُت۔ ؤری وادن دوران تھٲو تٔمؠ تمہِ وقتہٕ تٔمؠ سٕنٛدِ اہم اداکٲری ہُنٛد حریف آیہان ایکس سٟتؠ قریبی دوستی قٲیم۔ تٔمؠ سٕنٛدِ گیون تہٕ کھیلن ہٕنٛدِ کیرییَرٕ کِنؠ نیو تٔمِس سنیما کیرییَر نِش وقفہٕ۔
آرسوے گُزریو 5 اکتوبر 2026 90 وُہُر وٲنٛسہِ مَنٛز۔
== فِلِم سٲزی ==
* Unutulmayanlar – 2006
* Asla Unutma – 2005
* Mirasyediler – 1995
* Dost Bildiklerim – 1978
* Sürtük – 1970
* Altın Avcıları – 1968
* Yayla Kızı Yıldız – 1967
* Ortaşark Yanıyor – 1967
* Son Kurban – 1967
* Altın Çocuk Beyrut'ta – 1967
* Kenarın Dilberi – 1966
* Altın Çocuk – 1966
* İsyancılar – 1965
* Yıldızların Altında – 1965
* Son Darbe – 1965
* Kırk Küçük Anne – 1964
* Yılların Ardından – 1964
* Evcilik Oyunu – 1964
* Kızgın Delikanlı – 1964
* Kezban – 1963
* Makber – 1963
* {{Lang|tr|Şafak Bekçileri}} – 1963
* Genç Kızların Sevgilisi – 1963
* Kahpe – 1963
* Leyla İle Mecnun Gibi – 1963
* Cicican – 1963
* Beyaz Güvercin – 1963
* Bulunmaz Uşak – 1963
* Aşka Karşı Gelinmez – 1962
* Öldüren Bahar – 1962
* Yalnızlar İçin – 1962
* Aşk Merdiveni – 1962
* Esir Kuş – 1962
* Ne Şeker Şey – 1962
* {{Lang|tr|Gençlik Hülyaları}} – 1962
* Billur Köşk – 1962
* Kiralık Koca – 1962
* Gönül Avcısı – 1962
* Gümüş Gerdanlık – 1962
* Küçük Beyefendi – 1962
* Akasyalar Açarken – 1962
* Şehirdeki Yabancı – 1962
* Biz de Arkadaş mıyız? – 1962
* Aşkın Saati Gelince – 1961
* Bir Demet Yasemen – 1961
* Bir Yaz Yağmuru – 1961
* Bülbül Yuvası – 1961
* Yaban Gülü – 1961
* Seni Kaybedersem – 1961
* Yavru Kuş – 1961
* Bir Bahar Akşamı – 1961
* Boş Yuva – 1961
* İki Aşk Arasında – 1961
* Kızıl Vazo – 1961
* Melekler Şahidimdir – 1961
* Zavallı Necdet – 1961
* Unutamadığım Kadın – 1961
* Güneş Doğmasın – 1961
* Bir Yaz Yağmuru – 1960
* Nilüfer Orman Çiçeği – 1960
* Satın Alınan Adam – 1960
* Taş Bebek – 1960
* Aşk Rüzgarı – 1960
* Ömrüm Böyle Geçti – 1959
* Samanyolu – 1959
* Kelepçe – 1958
* Ham Meyva – 1957
* Kara Günlerim / Yaşayan Ölüler – 1957
== حَوالہٕ ==
[[زٲژ:1936 پٲدٲیِش]]
[[زٲژ:2026 وَفات]]
[[زٲژ:تُرکی لوٗکھ]]
g332eh9dv5o3d8ab7u6oyfdync667ks
سٔیِد میٖر قاسِم
0
33031
153288
153198
2026-10-06T18:02:00Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153288
wikitext
text/x-wiki
{{Infobox officeholder/Wikidata|noicon=Yes}}
'''سٔیِد میٖر قاسِم''' (17 مارٕچ 1921 - 12 دَسَمبَر 2004) اوس اَکھ ہِنٛدُستٲنؠ سِیاسَت دان یِمو 1971 پؠٹھٕ 1975 تام [[جۆم تہٕ کٔشیٖر (رِیاسَتھ)|جۆم تہٕ کٔشیٖر]] ہُنٛد [[جۆم تہٕ کٔشیٖر ہُنٛد ؤزیٖر اعلیٰ|دوٚیِم ؤزیٖرِ اعلیٰ]] سٕندِ حثیتہٕ خٕدمَت انجام دِژمٕژ۔
قاسِم سٕنٛز سیٲسی پیشورانہٕ زِندگی گٔیہِ گۄڈٕ [[بَرطٲنوی راج|برطٲنوی راجس]] دوران شۆروٗع، ییٚلہِ سُہ غٲر فرقہ وارانہٕ، جموٗرِیت نواز [[جۆم تہٕ کٔشیٖر قومی کانفرٛنٕس|کشمیر ترٛوو]] سیٲسی تحریٖکُک رہنُما بنیوو۔ مہاراجہ [[ہَری سِنٛگھ]] سٕنٛزِ بادشاہت خِلاف أمؠ سٕنٛز وکالت کِس نٔتیٖجس مَنٛز آو سُہ قٲد کرنہٕ۔
ہِندوستان چہِ آزٲدی پتہٕ اوس سٔیِد میٖر قاسِم [[جۆم تہٕ کٔشیٖر ہُنٛد ٲییٖن]] تیار کرنَس مَنٛز شٲمِل۔ تٔمؠ روٗد مُختٔلِف رِیاستی تہٕ مرکزی عۄہدن پؠٹھ خٕدمَت۔ تٔمِس چھُ کٔشیٖرِ مَنٛز [[ہِندوستٲنؠ قومی کانٛگرٛیس|انڈین نیشنل کانگریس]] قٲیِم کرنُک سہرا دِنہٕ یِوان۔ [[غۄلام مُحمد صادِق]] سٕنٛدِ مرنہٕ پتہٕ کٔر تٔمؠ جموں و کشمیرُک وزیر اعلیٰ سٕنٛدِ حثیتہٕ خٕدمَت۔ حوٚکوٗمَتھ ہِنٛدُستٲنؠ سٕنٛدِ طرفہٕ مُحادٕ کرنہٕ پتہٕ دِیُت تٔمؠ [[شيخ عبدالله|شیخ عبداللہ]] سٕنٛز واپسی ہٕنٛز وتھ ہموار کرنہٕ خٲطرٕ 1975 مَنٛز عۄہدٕ پیٹھٕ اِستِفہٕ۔
سَتَمبَر 1992 مَنٛز شایع سپدن واجنہِ پننہِ خۄد زانہِ زِنٛدگی "مَے لایِف اینٛڈ ٹَیِمٕز" «میٛٲنؠ زِنٛدگی تہٕ وَقٕت» مَنٛز چھُ قاسِمن شٲہی ریاستس مَنٛز بادشاہت ہُنٛد جولہٕ تراونہٕ خٲطرٕ کٲشرؠن ہٕنزِ جدوجہد ہٕنٛز دلچسپ توٲریخی تفصیل دِژمٕژ تہٕ سٟتی پٲکِستانس مَنٛز شٲمِل گژھنہٕ بدلہٕ ہندوستانس سٟتؠ سممِلُن کِس معاملس پؠٹھ پس منظر۔
قاسِم گُزریٛوو 12 دَسَمبَر 2004 [[نٔو دِل|نیہِ دِلہِ]] مَنٛز انڈیا گیٹَس نزدیٖک أکِس ایمبولینس مَنٛز 83 ؤری وٲنٛسہِ۔ أمؠ سٕنٛزِ مرضی مُطٲبِق آو سُہ پننہِ زینہٕ کِس گام، کٔشیٖرِ کِس [[ڈوٗر شاہ آباد|ڈوٗر شاہ آبادَس]] مَنٛز دفن کرنہٕ۔ أمؠ سٕنٛدِس جنازَس مَنٛز کٔر ساسہٕ بٔدؠ لوٗکھ کُنہِ واقعہٕ ورٲے شِرکت۔ تٔمِس آو 2005 مَنٛز ہِنٛدُستٲنہِ صدر [[اے پی جے عبدالکلام]] سٕنٛدِ دٔسؠ مرنہٕ پتہٕ پدم بھوشن ، ہندوستانُک ترٛیٚیِم سارِوٕے کھۄتہٕ بوٚڈ شہری اعزاز دِنہٕ۔<ref name="Padma Awards">{{cite web|date=2015|title=Padma Awards|url=http://mha.nic.in/sites/upload_files/mha/files/LST-PDAWD-2013.pdf|access-date=21 July 2015|publisher=Ministry of Home Affairs, Government of India}}</ref>
== حَوالہٕ ==
[[زٲژ:کٲشِرؠ سِیاسَتدان]]
[[زٲژ:کٲشِرؠ مُسَلمان]]
[[زٲژ:1921 پٲدٲیِش]]
[[زٲژ:2004 وَفات]]
2659t0pn9yl1u20hzwv2nlzjk6prht9
خواجہ شمس الدیٖن
0
33034
153287
153201
2026-10-06T18:01:55Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153287
wikitext
text/x-wiki
{{Infobox officeholder/Wikidata|noicon=Yes}}
'''خواجہ شمس الدیٖن''' (1922-19 اپریل 1999) اوس 12 اکتوبر 1963 پیٹھہٕ 29 فَرؤری 1964 تام ژھۄٹ کالس خٲطرٕ [[جۆم تہٕ کٔشیٖر ہُنٛد ؤزیٖر اعلیٰ|جۆم تہٕ کٔشیٖر ہُنٛد وزیر اعظم]]۔<ref>{{ویب حَوالہٕ|title=Index Sh-Sl|url=https://www.rulers.org/indexs3.html|access-date=18 March 2018|publisher=rulers.org}}</ref> سہ آو گۄڈنچہ لٹہِ 1956 تھس مَنٛز قونوٗن ساز اسمبلی خٲطرٕ منتخب کرنہٕ تہٕ 1962، 1967 تہٕ 1972 تھس مَنٛز آو سہ دوبارٕ منتخب کرنہٕ۔<ref>{{ویب حَوالہٕ|title=tribuneindia... Jammu and Kashmir|url=https://www.tribuneindia.com/1999/99apr20/j&k.htm#3|access-date=2020-12-20|website=www.tribuneindia.com}}</ref> 26 دَسَمبَر 1963 تس مَنٛز آو تمہِ سٕنٛدِس انتظامیہ کہ دوران [[حَضرَت بَل]] [[1963 حضرت بل شرایِن ژوٗر|مُحمد صلی اللہ علیہ وسلم مویہِ مُقدس استان پیٹھہٕ ژوٗر]] کرنہٕ۔ اَمہِ واقعہٕ پتہٕ آیہ ہفتیو پتہٕ أمہ سٕنٛز جاے [[غۄلام مُحمد صادِق]] ننہٕ۔<ref>{{Cite news|url=http://news.statetimes.in/jk-suffered-politicians/|title=J&K has suffered more because of ‘politicians’|date=12 November 2014|journal=State Times|first=Daya|last=Sagar|accessdate=18 March 2018}}</ref>
== حَوالہٕ ==
[[زٲژ:کٲشِرؠ سِیاسَتدان]]
[[زٲژ:1922 پٲدٲیِش]]
[[زٲژ:1999 وَفات]]
6rv8qumex8ibyoh6g95s9ocgl07mzn3
تَنتھٕر
0
33036
153286
153209
2026-10-06T18:01:50Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153286
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{مولوٗماتھ}}
'''تَنتھٕر''' ([[سَنَسکرٕٛت زَبان|سنٛسکرِٛت]]:तन्त्र ، لفظی طور پٲٹھؠ 'وۄٕرؠ دورٕ') چھُ اَکھ خاص [[یوگ|یوگؠ]] روایت۔ یہِ اوس [[بَرِصَغیٖر ہِنٛد|برصغیر پاک و ہند]] مَنٛز تیار کرنہٕ آمت، یؠمیُٛک آغاز گۄڈنِچ صدی عیسوی کہِ مَنٛز باگ گۄڈٕ گۄڈ شیو مت تہٕ شکتی متک طریقن مَنٛز، تہٕ پتہٕ [[گوتم بۄد|بدھ مت]] تہٕ ویشنو مت مَنٛز اوس۔{{Sfnp|Gray|2016}}
== حَوالہٕ ==
o6del77rhb2ugp4tl2jnl3zcjjh3my7
کلسٹر یوٗنِوَرسِٹی جموں
0
33043
153282
153230
2026-10-06T18:01:35Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153282
wikitext
text/x-wiki
{{Infobox university/Wikidata|image=CLU_Jammu_GGM_Science_college_01.jpg}}
[[File:CLU_Jammu_GGM_Science_college_01.jpg|thumb|سی ایل یو جموں جی جی ایم ساینس کالیج کیمپس]]
کلسٹر یوٗنِوَرسِٹی آف جموں (سی ایل یو جے) چھِ اَکھ کالجیٹ پبلک سٹیٹ یوٗنِوَرسِٹی یوٚس [[جۆم|جموس]] مَنٛز مرکزی زیر انتظام علاقہٕ [[جۆم تہٕ کٔشیٖر (مَرکَزی عَلاقہٕ)|جموں و کشمیر]] [[ہِندوستان]] مَنٛز واقعہٕ چھُ۔ یہِ چھ جموں شہرٕکہ پانژن کالجن تہٕ پانژن سکوٗلن ہنٛد اَکھ مجموٗع۔ یہِ آو 2016 ہس مَنٛز سری نگر تہٕ جموں کلسٹر یوٗنِوَرسِٹی ایکٹ 2016 ہس تحت [[کلسٹر یونیورسٹی سِریٖنَگَر]] سٟتؠ ملتھ مرکزی سرپرستی مَنٛز بنن واجنہ سکیم، آر یو ایس اے کہ پہل قدمی تحت قٲیم کرنہٕ۔<ref>{{ویب حَوالہٕ|date=20 January 2017|title=Jammu Kashmir: 2 cluster universities to be operational from current academic session : News|url=http://indiatoday.intoday.in/education/story/jammu-kashmir-cluster-universities/1/862023.html|url-status=dead|archive-url=https://web.archive.org/web/20170121013221/http://indiatoday.intoday.in/education/story/jammu-kashmir-cluster-universities/1/862023.html|archive-date=21 January 2017|access-date=2017-07-08|website=indiatoday.intoday.in|publisher=[[India Today]]}}</ref><ref>{{ویب حَوالہٕ|title=RUSA J&K - Higher Education Department - J & K|url=http://www.jkhighereducation.nic.in/rusa_jandk.html|access-date=2017-07-08|website=www.jkhighereducation.nic.in|publisher=Higher Education Department, Jammu & Kashmir|language=en}}</ref> جموں کلسٹر یوٗنِوَرسِٹی تہٕ سری نگر کلسٹر یوٗنِوَرسِٹی ہند افتتاح کوٚر 17 اپریل 2017 دۄہ تمہ وقتہٕ ہند [[ہِندوستٲنؠ سَرکار|حکومت ہند]] کس وزیر: ایچ آر ڈی پرکاش جاوڈیکر<ref>{{ویب حَوالہٕ|title=HRD Minister inaugurates JK Cluster Universities|url=http://www.greaterkashmir.com/news/jammu/hrd-minister-inaugurates-jk-cluster-universities/246805.html|access-date=17 July 2017|website=greater kashmir}}</ref>
== حَوالہٕ ==
[[زٲژ:یونِورسِٹی]]
8rd0lzrdteylusgcsarh7k5u9xu60ay
اوتھیلو
0
33044
153236
2026-10-06T12:26:31Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1370440836|Othello]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
153236
wikitext
text/x-wiki
[[File:Othello_et_Desdémone_à_Venise_-_Théodore_Chassériau_-_Musée_du_Louvre_Peintures_RF_3897.jpg|thumb|اوتھیلو تہٕ ڈیسڈیمونا وینس منٛز تھیوڈور چیسریو، 1850]]
.
ovh5mw2g2hxurii6557fcnybjmrgv1c
153238
153236
2026-10-06T12:44:43Z
آیات محراج
11062
153238
wikitext
text/x-wiki
[[File:Othello_et_Desdémone_à_Venise_-_Théodore_Chassériau_-_Musée_du_Louvre_Peintures_RF_3897.jpg|thumb|اوتھیلو تہٕ ڈیسڈیمونا وینس منٛز تھیوڈور چیسریو، 1850]]
دی ٹریجڈی آف اوتھیلو، دی موٗر آف وینس، یَتھ عام طور پیٚٹھ لۄکٹ کٔرِتھ اوتھیلو وننہٕ چھُ یِوان، چھِ اَکھ المیہ (tragedy) یۄس ولِیم شیکسپیرن لگ بَگ 1603 عیسویس مَنٛز لؠکھ۔ وینس تہٕ سائپرسس مَنٛز قٲئم یہِ ڈرٛامہ چھُ موری فوجی کمانڈر اوتھیلوس پیش کَران، ییٚلہِ تٔمؠ سُنٛد نائب (ensign) ایٖیاگو سُہ پنٛنہِ خانٛدارِنہِ ڈیسڈیمونا ہٕنٛزِ بے وفٲئی پیٚٹھ شَک کَرنس پیٚٹھ مجبوٗر چھُ کَران۔
اوتھیلو چھُ بٔڑِس پیمانس پیٚٹھ شیکسپیر سٕنٛدؠن مایہِ ناز ترین شہکارَن مَنٛز شُمار گژھان تہٕ اَمِچ گِنتی چھِ أمؠ سٕنٛدؠن بٔڑؠن المیہ ڈرامَن مَنٛز میکبیتھ، کِنگ لِیَر تہٕ ہیملیٹ سٟتؠ یِوان کَرنہٕ۔ مُصنف سٕنٛزِ زِنٛدگی مَنٛز غٲر شایع شُدٕ، یہِ ڈرٛامہ چھُ 1622 کِس اکہِ کوارٹو ایڈیشن تہٕ پتہٕ فرسٹ فولیو مَنٛز مۄحفوٗظ روٗدمُت۔
پَنٛنہِ گۄڈنچہِ پیشکَشہِ پؠٹھٕ چھُ یہِ ناظرینَن تہٕ اَدبی نقادَن دۄشونی مَنٛز شیکسپیر سُنٛد سارِوٕے کھۄتہٕ مَشہوٗر ڈرٛامہ روٗدمُت، یَمہٕ پتہٕ اَتھ پیٚٹھ واریاہ سٹیج، فِلم تہٕ اوپیرا بَناونہٕ آیہِ۔ فنکارَن مَنٛز چھِ اوتھیلو، ایٖیاگو، ڈیسڈیمونا تہٕ امیلیا (ایٖیاگو ہٕنٛز خانٛدارِنؠ) ہٕنٛدؠ کردار نَہایت دِقَت طلب تہٕ پَسَندِیدٕ سَمجنہٕ یِوان۔
شیکسپیر سُنٛد اَمِچ کٔہٲنی خٲطرٕ بٔڑ مأخذ اوس سِنتھیو سُنٛد 1565 ہُنٛد اَکھ ناوَل (novella)، یَمِچ کٔہٲنی شیکسپیرن رٔٹِتھ واریٛاہ کینٛہہ بدلاو کٔرِتھ پیش کٔر۔
== کِردار ==
*اوتھیلو: وینس ہٕنٛزِ فوجہِ مَنٛز جنرل، اَکھ عٔظیٖم موٗر (Moor)
*ڈیسڈیمونا: اوتھیلو ہٕنٛز خانٛدارِنؠ؛ برابانشیو ہٕنٛز کوٗر
*ایٖیاگو: اوتھیلو سُنٛد قٲبِلِ اِعتِماد، مَگَر کِینہٕ پَرور تہٕ دَغا باز نائب (ensign)
*کیسیو: اوتھیلو سُنٛد وفادار تہٕ سارِوٕے کھۄتہٕ پیارو لؠفٹیننٹ
*امیلیا: ایٖیاگو ہٕنٛز خانٛدارِنؠ تہٕ ڈیسڈیمونا ہٕنٛز خِدمَت گار
*بیانکا: کیسیو ہٕنٛز محبوٗبہ
*برابانشیو: وینس سُنٛد سینیٹر تہٕ ڈیسڈیمونا سُنٛد مول
*روڈریگو: وینس سُنٛد اَکھ بَدچَلَن اَمیر، یُس ڈیسڈیمونا سٟتؠ مۆحَبَت اوس کَران
*گریشیانو: برابانشیو سُنٛد بٲے
*لوڈوویکو: برابانشیو سُنٛد رِشتہ دار تہٕ ڈیسڈیمونا سُنٛد پِتُر بٲے
*مونٹانو: سائپرس کِس حکومتس مَنٛز اوتھیلو کھۄتہٕ برٛونٛہہ حٲکِم
== پلاٹ خُلاصہٕ ==
===ایکٹ ۱===
روڈریگو چھُ پَنٛنِس دوست ایٖیاگوس شِکایَتھ کَران کہِ تٔمؠ کٔر نہٕ تٔمس ڈیسڈیمونا تہٕ اوتھیلو سٕنٛزِ خُفیہ خانٛدرٕ بابتھ آگاہ۔ ایٖیاگو چھُ اوتھیلو خٕلاف بَدلہٕ نِنُک سوچان تِکیازِ اوتھیلو اوس کیسیو لؠفٹیننٹ عۄہدس پیٚٹھ پرموٹ کوٚرمُت۔ برابانشیو چھُ اوتھیلوس پیٚٹھ جادوٗگری سٟتؠ کوٗر بہکاونُک اِلزام تَرٛاوان، مگر اوتھیلو تہٕ ڈیسڈیمونا چھِ سینیٹس مَنٛز پَنٛنِہ مۆحَبَتچ پزر واضع کَران۔ اوتھیلوس چھُ ترک حملہٕ آورَن خٕلاف سائپرسس کُن کَمَان سمبھالنہٕ خٲطرٕ بھیجنہٕ یِوان۔
===ایکٹ ۲===
قافلہٕ چھُ سائپرس واتان ییٚتہِ طوٗفانس مَنٛز ترک کٹھ تباہ گژھان چھُ۔ ایٖیاگو چھُ کیسیوس شراب چَوان تہٕ روڈریگوس سٟتؠ لڑٲے مَنٛز گِرِفتار کَراوان، یَمہٕ سٟتؠ ناراض گٔژھِتھ اوتھیلو چھُ کیسیو سُنٛد عۄہدس کھسَن۔
===ایکٹ ۳===
ایٖیاگو چھُ اوتھیلو سٕنٛدِس زِہنس مَنٛز کیسیو تہٕ ڈیسڈیمونا کِس تعلُق بابتھ شَکھ پٲدٕ کَران۔ ییٚلہِ ڈیسڈیمونا سُنٛد رُمال (ہُنٛد اَکھ توٗحفہٕ) بیٚیہِ کٔنٛہہ ترٛاوتھ لوسان چھُ، ایٖیاگو چھُ پنٛنہِ خانٛدارِنہِ امیلیا نِش سُہ ژوٗرِ تھاوان۔ اوتھیلو چھُ ایٖیاگو سٕنٛدِس جالس مَنٛز پھَسان تہٕ دۄشونی مارنُک عۄہد کَران۔
===ایکٹ ۴===
ایٖیاگو چھُ سُہ رُمال کیسیو کِس کَمبرس مَنٛز تھاوان۔ اوتھیلو چھُ دوٗرِ پؠٹھ کیسیوس بیانکا بابتھ کتھ کَران وِچھان مَگَر ایٖیاگو ہٕنٛزِ چالاکی کِنؠ چھُ سَمجھان کہِ کتھ چھِ ڈیسڈیمونا بابتھ گژھان۔ اوتھیلو چھُ شرارتھس مَنٛز اوٚن گٔژھِتھ ڈیسڈیمونا مارنُک فٲصلہٕ کَران۔
===ایکٹ ۵===
لڑٲے مَنٛز چھُ ایٖیاگو روڈریگوس زبردستی قتل کَران تاکہِ تٔمؠ سٕنٛز سَازِش کھلنہٕ نَہ یِیہِ۔ دٔپھ دٔپھ پیٚٹھ چھُ اوتھیلو خواب گاہس مَنٛز پَنٛنہِ خانٛدارِنہِ ڈیسڈیمونا سُنٛد ساہ دَباوِتھ تَس ماران۔ امیلیا چھِ واتِتھ ایٖیاگو سُنٛد ساروی مَکر و فریب نَنٛگہٕ کَران۔ ییٚلہِ اوتھیلوس حقیقت معلوٗم چھِ گژھان کہِ ڈیسڈیمونا ٲس بےٚ گناہ، سُہ چھُ گۄڈٕ ایٖیاگوس زَخمی کَران تہٕ پَتہٕ پَنُن پان خۄدکشی کٔرِتھ ماران۔ لوڈوویکو چھُ کیسیو حٲکِم مُقرَر کَران تہٕ ایٖیاگوس سخت سَزا دِنُک حُکُم جٲری کَران۔
hxs9y6r5c1ovc3nl0gfpv76uqdt7xub
153239
153238
2026-10-06T12:52:24Z
آیات محراج
11062
153239
wikitext
text/x-wiki
[[File:Othello_et_Desdémone_à_Venise_-_Théodore_Chassériau_-_Musée_du_Louvre_Peintures_RF_3897.jpg|thumb|اوتھیلو تہٕ ڈیسڈیمونا وینس منٛز تھیوڈور چیسریو، 1850]]
دی ٹریجڈی آف اوتھیلو، دی موٗر آف وینس، یَتھ عام طور پیٚٹھ لۄکٹ کٔرِتھ اوتھیلو وننہٕ چھُ یِوان، چھِ اَکھ المیہ (tragedy) یۄس ولِیم شیکسپیرن لگ بَگ 1603 عیسویس مَنٛز لؠکھ۔ وینس تہٕ سائپرسس مَنٛز قٲئم یہِ ڈرٛامہ چھُ موری فوجی کمانڈر اوتھیلوس پیش کَران، ییٚلہِ تٔمؠ سُنٛد نائب (ensign) ایٖیاگو سُہ پنٛنہِ خانٛدارِنہِ ڈیسڈیمونا ہٕنٛزِ بے وفٲئی پیٚٹھ شَک کَرنس پیٚٹھ مجبوٗر چھُ کَران۔
اوتھیلو چھُ بٔڑِس پیمانس پیٚٹھ شیکسپیر سٕنٛدؠن مایہِ ناز ترین شہکارَن مَنٛز شُمار گژھان تہٕ اَمِچ گِنتی چھِ أمؠ سٕنٛدؠن بٔڑؠن المیہ ڈرامَن مَنٛز میکبیتھ، کِنگ لِیَر تہٕ ہیملیٹ سٟتؠ یِوان کَرنہٕ۔ مُصنف سٕنٛزِ زِنٛدگی مَنٛز غٲر شایع شُدٕ، یہِ ڈرٛامہ چھُ 1622 کِس اکہِ کوارٹو ایڈیشن تہٕ پتہٕ فرسٹ فولیو مَنٛز مۄحفوٗظ روٗدمُت۔
پَنٛنہِ گۄڈنچہِ پیشکَشہِ پؠٹھٕ چھُ یہِ ناظرینَن تہٕ اَدبی نقادَن دۄشونی مَنٛز شیکسپیر سُنٛد سارِوٕے کھۄتہٕ مَشہوٗر ڈرٛامہ روٗدمُت، یَمہٕ پتہٕ اَتھ پیٚٹھ واریاہ سٹیج، فِلم تہٕ اوپیرا بَناونہٕ آیہِ۔ فنکارَن مَنٛز چھِ اوتھیلو، ایٖیاگو، ڈیسڈیمونا تہٕ امیلیا (ایٖیاگو ہٕنٛز خانٛدارِنؠ) ہٕنٛدؠ کردار نَہایت دِقَت طلب تہٕ پَسَندِیدٕ سَمجنہٕ یِوان۔
شیکسپیر سُنٛد اَمِچ کٔہٲنی خٲطرٕ بٔڑ مأخذ اوس سِنتھیو سُنٛد 1565 ہُنٛد اَکھ ناوَل (novella)، یَمِچ کٔہٲنی شیکسپیرن رٔٹِتھ واریٛاہ کینٛہہ بدلاو کٔرِتھ پیش کٔر۔
== کِردار ==
*اوتھیلو: وینس ہٕنٛزِ فوجہِ مَنٛز جنرل، اَکھ عٔظیٖم موٗر (Moor)
*ڈیسڈیمونا: اوتھیلو ہٕنٛز خانٛدارِنؠ؛ برابانشیو ہٕنٛز کوٗر
*ایٖیاگو: اوتھیلو سُنٛد قٲبِلِ اِعتِماد، مَگَر کِینہٕ پَرور تہٕ دَغا باز نائب (ensign)
*کیسیو: اوتھیلو سُنٛد وفادار تہٕ سارِوٕے کھۄتہٕ پیارو لؠفٹیننٹ
*امیلیا: ایٖیاگو ہٕنٛز خانٛدارِنؠ تہٕ ڈیسڈیمونا ہٕنٛز خِدمَت گار
*بیانکا: کیسیو ہٕنٛز محبوٗبہ
*برابانشیو: وینس سُنٛد سینیٹر تہٕ ڈیسڈیمونا سُنٛد مول
*روڈریگو: وینس سُنٛد اَکھ بَدچَلَن اَمیر، یُس ڈیسڈیمونا سٟتؠ مۆحَبَت اوس کَران
*گریشیانو: برابانشیو سُنٛد بٲے
*لوڈوویکو: برابانشیو سُنٛد رِشتہ دار تہٕ ڈیسڈیمونا سُنٛد پِتُر بٲے
*مونٹانو: سائپرس کِس حکومتس مَنٛز اوتھیلو کھۄتہٕ برٛونٛہہ حٲکِم
== پلاٹ خُلاصہٕ ==
===ایکٹ ۱===
روڈریگو چھُ پَنٛنِس دوست ایٖیاگوس شِکایَتھ کَران کہِ تٔمؠ کٔر نہٕ تٔمس ڈیسڈیمونا تہٕ اوتھیلو سٕنٛزِ خُفیہ خانٛدرٕ بابتھ آگاہ۔ ایٖیاگو چھُ اوتھیلو خٕلاف بَدلہٕ نِنُک سوچان تِکیازِ اوتھیلو اوس کیسیو لؠفٹیننٹ عۄہدس پیٚٹھ پرموٹ کوٚرمُت۔ برابانشیو چھُ اوتھیلوس پیٚٹھ جادوٗگری سٟتؠ کوٗر بہکاونُک اِلزام تَرٛاوان، مگر اوتھیلو تہٕ ڈیسڈیمونا چھِ سینیٹس مَنٛز پَنٛنِہ مۆحَبَتچ پزر واضع کَران۔ اوتھیلوس چھُ ترک حملہٕ آورَن خٕلاف سائپرسس کُن کَمَان سمبھالنہٕ خٲطرٕ بھیجنہٕ یِوان۔
===ایکٹ ۲===
قافلہٕ چھُ سائپرس واتان ییٚتہِ طوٗفانس مَنٛز ترک کٹھ تباہ گژھان چھُ۔ ایٖیاگو چھُ کیسیوس شراب چَوان تہٕ روڈریگوس سٟتؠ لڑٲے مَنٛز گِرِفتار کَراوان، یَمہٕ سٟتؠ ناراض گٔژھِتھ اوتھیلو چھُ کیسیو سُنٛد عۄہدس کھسَن۔
===ایکٹ ۳===
ایٖیاگو چھُ اوتھیلو سٕنٛدِس زِہنس مَنٛز کیسیو تہٕ ڈیسڈیمونا کِس تعلُق بابتھ شَکھ پٲدٕ کَران۔ ییٚلہِ ڈیسڈیمونا سُنٛد رُمال (ہُنٛد اَکھ توٗحفہٕ) بیٚیہِ کٔنٛہہ ترٛاوتھ لوسان چھُ، ایٖیاگو چھُ پنٛنہِ خانٛدارِنہِ امیلیا نِش سُہ ژوٗرِ تھاوان۔ اوتھیلو چھُ ایٖیاگو سٕنٛدِس جالس مَنٛز پھَسان تہٕ دۄشونی مارنُک عۄہد کَران۔
===ایکٹ ۴===
ایٖیاگو چھُ سُہ رُمال کیسیو کِس کَمبرس مَنٛز تھاوان۔ اوتھیلو چھُ دوٗرِ پؠٹھ کیسیوس بیانکا بابتھ کتھ کَران وِچھان مَگَر ایٖیاگو ہٕنٛزِ چالاکی کِنؠ چھُ سَمجھان کہِ کتھ چھِ ڈیسڈیمونا بابتھ گژھان۔ اوتھیلو چھُ شرارتھس مَنٛز اوٚن گٔژھِتھ ڈیسڈیمونا مارنُک فٲصلہٕ کَران۔
===ایکٹ ۵===
لڑٲے مَنٛز چھُ ایٖیاگو روڈریگوس زبردستی قتل کَران تاکہِ تٔمؠ سٕنٛز سَازِش کھلنہٕ نَہ یِیہِ۔ دٔپھ دٔپھ پیٚٹھ چھُ اوتھیلو خواب گاہس مَنٛز پَنٛنہِ خانٛدارِنہِ ڈیسڈیمونا سُنٛد ساہ دَباوِتھ تَس ماران۔ امیلیا چھِ واتِتھ ایٖیاگو سُنٛد ساروی مَکر و فریب فاش کَران۔ ییٚلہِ اوتھیلوس حقیقت معلوٗم چھِ گژھان کہِ ڈیسڈیمونا ٲس بےٚ گناہ، سُہ چھُ گۄڈٕ ایٖیاگوس زَخمی کَران تہٕ پَتہٕ پَنُن پان خۄدکشی کٔرِتھ ماران۔ لوڈوویکو چھُ کیسیو حٲکِم مُقرَر کَران تہٕ ایٖیاگوس سخت سَزا دِنُک حُکُم جٲری کَران۔
rtw7mkrzsmmetj53ym7u3ecdz2lgj01
153240
153239
2026-10-06T12:57:18Z
آیات محراج
11062
/* */
153240
wikitext
text/x-wiki
{{مولوٗماتھ}}
[[File:Othello_et_Desdémone_à_Venise_-_Théodore_Chassériau_-_Musée_du_Louvre_Peintures_RF_3897.jpg|thumb|اوتھیلو تہٕ ڈیسڈیمونا وینس منٛز تھیوڈور چیسریو، 1850]]
دی ٹریجڈی آف اوتھیلو، دی موٗر آف وینس، یَتھ عام طور پیٚٹھ لۄکٹ کٔرِتھ اوتھیلو وننہٕ چھُ یِوان، چھِ اَکھ المیہ (tragedy) یۄس ولِیم شیکسپیرن لگ بَگ 1603 عیسویس مَنٛز لؠکھ۔ وینس تہٕ سائپرسس مَنٛز قٲئم یہِ ڈرٛامہ چھُ موری فوجی کمانڈر اوتھیلوس پیش کَران، ییٚلہِ تٔمؠ سُنٛد نائب (ensign) ایٖیاگو سُہ پنٛنہِ خانٛدارِنہِ ڈیسڈیمونا ہٕنٛزِ بے وفٲئی پیٚٹھ شَک کَرنس پیٚٹھ مجبوٗر چھُ کَران۔
اوتھیلو چھُ بٔڑِس پیمانس پیٚٹھ شیکسپیر سٕنٛدؠن مایہِ ناز ترین شہکارَن مَنٛز شُمار گژھان تہٕ اَمِچ گِنتی چھِ أمؠ سٕنٛدؠن بٔڑؠن المیہ ڈرامَن مَنٛز میکبیتھ، کِنگ لِیَر تہٕ ہیملیٹ سٟتؠ یِوان کَرنہٕ۔ مُصنف سٕنٛزِ زِنٛدگی مَنٛز غٲر شایع شُدٕ، یہِ ڈرٛامہ چھُ 1622 کِس اکہِ کوارٹو ایڈیشن تہٕ پتہٕ فرسٹ فولیو مَنٛز مۄحفوٗظ روٗدمُت۔
پَنٛنہِ گۄڈنچہِ پیشکَشہِ پؠٹھٕ چھُ یہِ ناظرینَن تہٕ اَدبی نقادَن دۄشونی مَنٛز شیکسپیر سُنٛد سارِوٕے کھۄتہٕ مَشہوٗر ڈرٛامہ روٗدمُت، یَمہٕ پتہٕ اَتھ پیٚٹھ واریاہ سٹیج، فِلم تہٕ اوپیرا بَناونہٕ آیہِ۔ فنکارَن مَنٛز چھِ اوتھیلو، ایٖیاگو، ڈیسڈیمونا تہٕ امیلیا (ایٖیاگو ہٕنٛز خانٛدارِنؠ) ہٕنٛدؠ کردار نَہایت دِقَت طلب تہٕ پَسَندِیدٕ سَمجنہٕ یِوان۔
شیکسپیر سُنٛد اَمِچ کٔہٲنی خٲطرٕ بٔڑ مأخذ اوس سِنتھیو سُنٛد 1565 ہُنٛد اَکھ ناوَل (novella)، یَمِچ کٔہٲنی شیکسپیرن رٔٹِتھ واریٛاہ کینٛہہ بدلاو کٔرِتھ پیش کٔر۔
== کِردار ==
*اوتھیلو: وینس ہٕنٛزِ فوجہِ مَنٛز جنرل، اَکھ عٔظیٖم موٗر (Moor)
*ڈیسڈیمونا: اوتھیلو ہٕنٛز خانٛدارِنؠ؛ برابانشیو ہٕنٛز کوٗر
*ایٖیاگو: اوتھیلو سُنٛد قٲبِلِ اِعتِماد، مَگَر کِینہٕ پَرور تہٕ دَغا باز نائب (ensign)
*کیسیو: اوتھیلو سُنٛد وفادار تہٕ سارِوٕے کھۄتہٕ پیارو لؠفٹیننٹ
*امیلیا: ایٖیاگو ہٕنٛز خانٛدارِنؠ تہٕ ڈیسڈیمونا ہٕنٛز خِدمَت گار
*بیانکا: کیسیو ہٕنٛز محبوٗبہ
*برابانشیو: وینس سُنٛد سینیٹر تہٕ ڈیسڈیمونا سُنٛد مول
*روڈریگو: وینس سُنٛد اَکھ بَدچَلَن اَمیر، یُس ڈیسڈیمونا سٟتؠ مۆحَبَت اوس کَران
*گریشیانو: برابانشیو سُنٛد بٲے
*لوڈوویکو: برابانشیو سُنٛد رِشتہ دار تہٕ ڈیسڈیمونا سُنٛد پِتُر بٲے
*مونٹانو: سائپرس کِس حکومتس مَنٛز اوتھیلو کھۄتہٕ برٛونٛہہ حٲکِم
== پلاٹ خُلاصہٕ ==
===ایکٹ ۱===
روڈریگو چھُ پَنٛنِس دوست ایٖیاگوس شِکایَتھ کَران کہِ تٔمؠ کٔر نہٕ تٔمس ڈیسڈیمونا تہٕ اوتھیلو سٕنٛزِ خُفیہ خانٛدرٕ بابتھ آگاہ۔ ایٖیاگو چھُ اوتھیلو خٕلاف بَدلہٕ نِنُک سوچان تِکیازِ اوتھیلو اوس کیسیو لؠفٹیننٹ عۄہدس پیٚٹھ پرموٹ کوٚرمُت۔ برابانشیو چھُ اوتھیلوس پیٚٹھ جادوٗگری سٟتؠ کوٗر بہکاونُک اِلزام تَرٛاوان، مگر اوتھیلو تہٕ ڈیسڈیمونا چھِ سینیٹس مَنٛز پَنٛنِہ مۆحَبَتچ پزر واضع کَران۔ اوتھیلوس چھُ ترک حملہٕ آورَن خٕلاف سائپرسس کُن کَمَان سمبھالنہٕ خٲطرٕ بھیجنہٕ یِوان۔
===ایکٹ ۲===
قافلہٕ چھُ سائپرس واتان ییٚتہِ طوٗفانس مَنٛز ترک کٹھ تباہ گژھان چھُ۔ ایٖیاگو چھُ کیسیوس شراب چَوان تہٕ روڈریگوس سٟتؠ لڑٲے مَنٛز گِرِفتار کَراوان، یَمہٕ سٟتؠ ناراض گٔژھِتھ اوتھیلو چھُ کیسیو سُنٛد عۄہدس کھسَن۔
===ایکٹ ۳===
ایٖیاگو چھُ اوتھیلو سٕنٛدِس زِہنس مَنٛز کیسیو تہٕ ڈیسڈیمونا کِس تعلُق بابتھ شَکھ پٲدٕ کَران۔ ییٚلہِ ڈیسڈیمونا سُنٛد رُمال (ہُنٛد اَکھ توٗحفہٕ) بیٚیہِ کٔنٛہہ ترٛاوتھ لوسان چھُ، ایٖیاگو چھُ پنٛنہِ خانٛدارِنہِ امیلیا نِش سُہ ژوٗرِ تھاوان۔ اوتھیلو چھُ ایٖیاگو سٕنٛدِس جالس مَنٛز پھَسان تہٕ دۄشونی مارنُک عۄہد کَران۔
===ایکٹ ۴===
ایٖیاگو چھُ سُہ رُمال کیسیو کِس کَمبرس مَنٛز تھاوان۔ اوتھیلو چھُ دوٗرِ پؠٹھ کیسیوس بیانکا بابتھ کتھ کَران وِچھان مَگَر ایٖیاگو ہٕنٛزِ چالاکی کِنؠ چھُ سَمجھان کہِ کتھ چھِ ڈیسڈیمونا بابتھ گژھان۔ اوتھیلو چھُ شرارتھس مَنٛز اوٚن گٔژھِتھ ڈیسڈیمونا مارنُک فٲصلہٕ کَران۔
===ایکٹ ۵===
لڑٲے مَنٛز چھُ ایٖیاگو روڈریگوس زبردستی قتل کَران تاکہِ تٔمؠ سٕنٛز سَازِش کھلنہٕ نَہ یِیہِ۔ دٔپھ دٔپھ پیٚٹھ چھُ اوتھیلو خواب گاہس مَنٛز پَنٛنہِ خانٛدارِنہِ ڈیسڈیمونا سُنٛد ساہ دَباوِتھ تَس ماران۔ امیلیا چھِ واتِتھ ایٖیاگو سُنٛد ساروی مَکر و فریب فاش کَران۔ ییٚلہِ اوتھیلوس حقیقت معلوٗم چھِ گژھان کہِ ڈیسڈیمونا ٲس بےٚ گناہ، سُہ چھُ گۄڈٕ ایٖیاگوس زَخمی کَران تہٕ پَتہٕ پَنُن پان خۄدکشی کٔرِتھ ماران۔ لوڈوویکو چھُ کیسیو حٲکِم مُقرَر کَران تہٕ ایٖیاگوس سخت سَزا دِنُک حُکُم جٲری کَران۔
r5vgzsbmdrzcxc0xi08yq4i6kasb1i6
153241
153240
2026-10-06T13:02:35Z
آیات محراج
11062
/* */
153241
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = Has version, edition or translation
}}
[[File:Othello_et_Desdémone_à_Venise_-_Théodore_Chassériau_-_Musée_du_Louvre_Peintures_RF_3897.jpg|thumb|اوتھیلو تہٕ ڈیسڈیمونا وینس منٛز تھیوڈور چیسریو، 1850]]
دی ٹریجڈی آف اوتھیلو، دی موٗر آف وینس، یَتھ عام طور پیٚٹھ لۄکٹ کٔرِتھ اوتھیلو وننہٕ چھُ یِوان، چھِ اَکھ المیہ (tragedy) یۄس ولِیم شیکسپیرن لگ بَگ 1603 عیسویس مَنٛز لؠکھ۔ وینس تہٕ سائپرسس مَنٛز قٲئم یہِ ڈرٛامہ چھُ موری فوجی کمانڈر اوتھیلوس پیش کَران، ییٚلہِ تٔمؠ سُنٛد نائب (ensign) ایٖیاگو سُہ پنٛنہِ خانٛدارِنہِ ڈیسڈیمونا ہٕنٛزِ بے وفٲئی پیٚٹھ شَک کَرنس پیٚٹھ مجبوٗر چھُ کَران۔
اوتھیلو چھُ بٔڑِس پیمانس پیٚٹھ شیکسپیر سٕنٛدؠن مایہِ ناز ترین شہکارَن مَنٛز شُمار گژھان تہٕ اَمِچ گِنتی چھِ أمؠ سٕنٛدؠن بٔڑؠن المیہ ڈرامَن مَنٛز میکبیتھ، کِنگ لِیَر تہٕ ہیملیٹ سٟتؠ یِوان کَرنہٕ۔ مُصنف سٕنٛزِ زِنٛدگی مَنٛز غٲر شایع شُدٕ، یہِ ڈرٛامہ چھُ 1622 کِس اکہِ کوارٹو ایڈیشن تہٕ پتہٕ فرسٹ فولیو مَنٛز مۄحفوٗظ روٗدمُت۔
پَنٛنہِ گۄڈنچہِ پیشکَشہِ پؠٹھٕ چھُ یہِ ناظرینَن تہٕ اَدبی نقادَن دۄشونی مَنٛز شیکسپیر سُنٛد سارِوٕے کھۄتہٕ مَشہوٗر ڈرٛامہ روٗدمُت، یَمہٕ پتہٕ اَتھ پیٚٹھ واریاہ سٹیج، فِلم تہٕ اوپیرا بَناونہٕ آیہِ۔ فنکارَن مَنٛز چھِ اوتھیلو، ایٖیاگو، ڈیسڈیمونا تہٕ امیلیا (ایٖیاگو ہٕنٛز خانٛدارِنؠ) ہٕنٛدؠ کردار نَہایت دِقَت طلب تہٕ پَسَندِیدٕ سَمجنہٕ یِوان۔
شیکسپیر سُنٛد اَمِچ کٔہٲنی خٲطرٕ بٔڑ مأخذ اوس سِنتھیو سُنٛد 1565 ہُنٛد اَکھ ناوَل (novella)، یَمِچ کٔہٲنی شیکسپیرن رٔٹِتھ واریٛاہ کینٛہہ بدلاو کٔرِتھ پیش کٔر۔
== کِردار ==
*اوتھیلو: وینس ہٕنٛزِ فوجہِ مَنٛز جنرل، اَکھ عٔظیٖم موٗر (Moor)
*ڈیسڈیمونا: اوتھیلو ہٕنٛز خانٛدارِنؠ؛ برابانشیو ہٕنٛز کوٗر
*ایٖیاگو: اوتھیلو سُنٛد قٲبِلِ اِعتِماد، مَگَر کِینہٕ پَرور تہٕ دَغا باز نائب (ensign)
*کیسیو: اوتھیلو سُنٛد وفادار تہٕ سارِوٕے کھۄتہٕ پیارو لؠفٹیننٹ
*امیلیا: ایٖیاگو ہٕنٛز خانٛدارِنؠ تہٕ ڈیسڈیمونا ہٕنٛز خِدمَت گار
*بیانکا: کیسیو ہٕنٛز محبوٗبہ
*برابانشیو: وینس سُنٛد سینیٹر تہٕ ڈیسڈیمونا سُنٛد مول
*روڈریگو: وینس سُنٛد اَکھ بَدچَلَن اَمیر، یُس ڈیسڈیمونا سٟتؠ مۆحَبَت اوس کَران
*گریشیانو: برابانشیو سُنٛد بٲے
*لوڈوویکو: برابانشیو سُنٛد رِشتہ دار تہٕ ڈیسڈیمونا سُنٛد پِتُر بٲے
*مونٹانو: سائپرس کِس حکومتس مَنٛز اوتھیلو کھۄتہٕ برٛونٛہہ حٲکِم
== پلاٹ خُلاصہٕ ==
===ایکٹ ۱===
روڈریگو چھُ پَنٛنِس دوست ایٖیاگوس شِکایَتھ کَران کہِ تٔمؠ کٔر نہٕ تٔمس ڈیسڈیمونا تہٕ اوتھیلو سٕنٛزِ خُفیہ خانٛدرٕ بابتھ آگاہ۔ ایٖیاگو چھُ اوتھیلو خٕلاف بَدلہٕ نِنُک سوچان تِکیازِ اوتھیلو اوس کیسیو لؠفٹیننٹ عۄہدس پیٚٹھ پرموٹ کوٚرمُت۔ برابانشیو چھُ اوتھیلوس پیٚٹھ جادوٗگری سٟتؠ کوٗر بہکاونُک اِلزام تَرٛاوان، مگر اوتھیلو تہٕ ڈیسڈیمونا چھِ سینیٹس مَنٛز پَنٛنِہ مۆحَبَتچ پزر واضع کَران۔ اوتھیلوس چھُ ترک حملہٕ آورَن خٕلاف سائپرسس کُن کَمَان سمبھالنہٕ خٲطرٕ بھیجنہٕ یِوان۔
===ایکٹ ۲===
قافلہٕ چھُ سائپرس واتان ییٚتہِ طوٗفانس مَنٛز ترک کٹھ تباہ گژھان چھُ۔ ایٖیاگو چھُ کیسیوس شراب چَوان تہٕ روڈریگوس سٟتؠ لڑٲے مَنٛز گِرِفتار کَراوان، یَمہٕ سٟتؠ ناراض گٔژھِتھ اوتھیلو چھُ کیسیو سُنٛد عۄہدس کھسَن۔
===ایکٹ ۳===
ایٖیاگو چھُ اوتھیلو سٕنٛدِس زِہنس مَنٛز کیسیو تہٕ ڈیسڈیمونا کِس تعلُق بابتھ شَکھ پٲدٕ کَران۔ ییٚلہِ ڈیسڈیمونا سُنٛد رُمال (ہُنٛد اَکھ توٗحفہٕ) بیٚیہِ کٔنٛہہ ترٛاوتھ لوسان چھُ، ایٖیاگو چھُ پنٛنہِ خانٛدارِنہِ امیلیا نِش سُہ ژوٗرِ تھاوان۔ اوتھیلو چھُ ایٖیاگو سٕنٛدِس جالس مَنٛز پھَسان تہٕ دۄشونی مارنُک عۄہد کَران۔
===ایکٹ ۴===
ایٖیاگو چھُ سُہ رُمال کیسیو کِس کَمبرس مَنٛز تھاوان۔ اوتھیلو چھُ دوٗرِ پؠٹھ کیسیوس بیانکا بابتھ کتھ کَران وِچھان مَگَر ایٖیاگو ہٕنٛزِ چالاکی کِنؠ چھُ سَمجھان کہِ کتھ چھِ ڈیسڈیمونا بابتھ گژھان۔ اوتھیلو چھُ شرارتھس مَنٛز اوٚن گٔژھِتھ ڈیسڈیمونا مارنُک فٲصلہٕ کَران۔
===ایکٹ ۵===
لڑٲے مَنٛز چھُ ایٖیاگو روڈریگوس زبردستی قتل کَران تاکہِ تٔمؠ سٕنٛز سَازِش کھلنہٕ نَہ یِیہِ۔ دٔپھ دٔپھ پیٚٹھ چھُ اوتھیلو خواب گاہس مَنٛز پَنٛنہِ خانٛدارِنہِ ڈیسڈیمونا سُنٛد ساہ دَباوِتھ تَس ماران۔ امیلیا چھِ واتِتھ ایٖیاگو سُنٛد ساروی مَکر و فریب فاش کَران۔ ییٚلہِ اوتھیلوس حقیقت معلوٗم چھِ گژھان کہِ ڈیسڈیمونا ٲس بےٚ گناہ، سُہ چھُ گۄڈٕ ایٖیاگوس زَخمی کَران تہٕ پَتہٕ پَنُن پان خۄدکشی کٔرِتھ ماران۔ لوڈوویکو چھُ کیسیو حٲکِم مُقرَر کَران تہٕ ایٖیاگوس سخت سَزا دِنُک حُکُم جٲری کَران۔
lhjh6oscag0u059fblr6k207vu54u3n
153242
153241
2026-10-06T13:03:29Z
آیات محراج
11062
/* */
153242
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = P747
}}
[[File:Othello_et_Desdémone_à_Venise_-_Théodore_Chassériau_-_Musée_du_Louvre_Peintures_RF_3897.jpg|thumb|اوتھیلو تہٕ ڈیسڈیمونا وینس منٛز تھیوڈور چیسریو، 1850]]
دی ٹریجڈی آف اوتھیلو، دی موٗر آف وینس، یَتھ عام طور پیٚٹھ لۄکٹ کٔرِتھ اوتھیلو وننہٕ چھُ یِوان، چھِ اَکھ المیہ (tragedy) یۄس ولِیم شیکسپیرن لگ بَگ 1603 عیسویس مَنٛز لؠکھ۔ وینس تہٕ سائپرسس مَنٛز قٲئم یہِ ڈرٛامہ چھُ موری فوجی کمانڈر اوتھیلوس پیش کَران، ییٚلہِ تٔمؠ سُنٛد نائب (ensign) ایٖیاگو سُہ پنٛنہِ خانٛدارِنہِ ڈیسڈیمونا ہٕنٛزِ بے وفٲئی پیٚٹھ شَک کَرنس پیٚٹھ مجبوٗر چھُ کَران۔
اوتھیلو چھُ بٔڑِس پیمانس پیٚٹھ شیکسپیر سٕنٛدؠن مایہِ ناز ترین شہکارَن مَنٛز شُمار گژھان تہٕ اَمِچ گِنتی چھِ أمؠ سٕنٛدؠن بٔڑؠن المیہ ڈرامَن مَنٛز میکبیتھ، کِنگ لِیَر تہٕ ہیملیٹ سٟتؠ یِوان کَرنہٕ۔ مُصنف سٕنٛزِ زِنٛدگی مَنٛز غٲر شایع شُدٕ، یہِ ڈرٛامہ چھُ 1622 کِس اکہِ کوارٹو ایڈیشن تہٕ پتہٕ فرسٹ فولیو مَنٛز مۄحفوٗظ روٗدمُت۔
پَنٛنہِ گۄڈنچہِ پیشکَشہِ پؠٹھٕ چھُ یہِ ناظرینَن تہٕ اَدبی نقادَن دۄشونی مَنٛز شیکسپیر سُنٛد سارِوٕے کھۄتہٕ مَشہوٗر ڈرٛامہ روٗدمُت، یَمہٕ پتہٕ اَتھ پیٚٹھ واریاہ سٹیج، فِلم تہٕ اوپیرا بَناونہٕ آیہِ۔ فنکارَن مَنٛز چھِ اوتھیلو، ایٖیاگو، ڈیسڈیمونا تہٕ امیلیا (ایٖیاگو ہٕنٛز خانٛدارِنؠ) ہٕنٛدؠ کردار نَہایت دِقَت طلب تہٕ پَسَندِیدٕ سَمجنہٕ یِوان۔
شیکسپیر سُنٛد اَمِچ کٔہٲنی خٲطرٕ بٔڑ مأخذ اوس سِنتھیو سُنٛد 1565 ہُنٛد اَکھ ناوَل (novella)، یَمِچ کٔہٲنی شیکسپیرن رٔٹِتھ واریٛاہ کینٛہہ بدلاو کٔرِتھ پیش کٔر۔
== کِردار ==
*اوتھیلو: وینس ہٕنٛزِ فوجہِ مَنٛز جنرل، اَکھ عٔظیٖم موٗر (Moor)
*ڈیسڈیمونا: اوتھیلو ہٕنٛز خانٛدارِنؠ؛ برابانشیو ہٕنٛز کوٗر
*ایٖیاگو: اوتھیلو سُنٛد قٲبِلِ اِعتِماد، مَگَر کِینہٕ پَرور تہٕ دَغا باز نائب (ensign)
*کیسیو: اوتھیلو سُنٛد وفادار تہٕ سارِوٕے کھۄتہٕ پیارو لؠفٹیننٹ
*امیلیا: ایٖیاگو ہٕنٛز خانٛدارِنؠ تہٕ ڈیسڈیمونا ہٕنٛز خِدمَت گار
*بیانکا: کیسیو ہٕنٛز محبوٗبہ
*برابانشیو: وینس سُنٛد سینیٹر تہٕ ڈیسڈیمونا سُنٛد مول
*روڈریگو: وینس سُنٛد اَکھ بَدچَلَن اَمیر، یُس ڈیسڈیمونا سٟتؠ مۆحَبَت اوس کَران
*گریشیانو: برابانشیو سُنٛد بٲے
*لوڈوویکو: برابانشیو سُنٛد رِشتہ دار تہٕ ڈیسڈیمونا سُنٛد پِتُر بٲے
*مونٹانو: سائپرس کِس حکومتس مَنٛز اوتھیلو کھۄتہٕ برٛونٛہہ حٲکِم
== پلاٹ خُلاصہٕ ==
===ایکٹ ۱===
روڈریگو چھُ پَنٛنِس دوست ایٖیاگوس شِکایَتھ کَران کہِ تٔمؠ کٔر نہٕ تٔمس ڈیسڈیمونا تہٕ اوتھیلو سٕنٛزِ خُفیہ خانٛدرٕ بابتھ آگاہ۔ ایٖیاگو چھُ اوتھیلو خٕلاف بَدلہٕ نِنُک سوچان تِکیازِ اوتھیلو اوس کیسیو لؠفٹیننٹ عۄہدس پیٚٹھ پرموٹ کوٚرمُت۔ برابانشیو چھُ اوتھیلوس پیٚٹھ جادوٗگری سٟتؠ کوٗر بہکاونُک اِلزام تَرٛاوان، مگر اوتھیلو تہٕ ڈیسڈیمونا چھِ سینیٹس مَنٛز پَنٛنِہ مۆحَبَتچ پزر واضع کَران۔ اوتھیلوس چھُ ترک حملہٕ آورَن خٕلاف سائپرسس کُن کَمَان سمبھالنہٕ خٲطرٕ بھیجنہٕ یِوان۔
===ایکٹ ۲===
قافلہٕ چھُ سائپرس واتان ییٚتہِ طوٗفانس مَنٛز ترک کٹھ تباہ گژھان چھُ۔ ایٖیاگو چھُ کیسیوس شراب چَوان تہٕ روڈریگوس سٟتؠ لڑٲے مَنٛز گِرِفتار کَراوان، یَمہٕ سٟتؠ ناراض گٔژھِتھ اوتھیلو چھُ کیسیو سُنٛد عۄہدس کھسَن۔
===ایکٹ ۳===
ایٖیاگو چھُ اوتھیلو سٕنٛدِس زِہنس مَنٛز کیسیو تہٕ ڈیسڈیمونا کِس تعلُق بابتھ شَکھ پٲدٕ کَران۔ ییٚلہِ ڈیسڈیمونا سُنٛد رُمال (ہُنٛد اَکھ توٗحفہٕ) بیٚیہِ کٔنٛہہ ترٛاوتھ لوسان چھُ، ایٖیاگو چھُ پنٛنہِ خانٛدارِنہِ امیلیا نِش سُہ ژوٗرِ تھاوان۔ اوتھیلو چھُ ایٖیاگو سٕنٛدِس جالس مَنٛز پھَسان تہٕ دۄشونی مارنُک عۄہد کَران۔
===ایکٹ ۴===
ایٖیاگو چھُ سُہ رُمال کیسیو کِس کَمبرس مَنٛز تھاوان۔ اوتھیلو چھُ دوٗرِ پؠٹھ کیسیوس بیانکا بابتھ کتھ کَران وِچھان مَگَر ایٖیاگو ہٕنٛزِ چالاکی کِنؠ چھُ سَمجھان کہِ کتھ چھِ ڈیسڈیمونا بابتھ گژھان۔ اوتھیلو چھُ شرارتھس مَنٛز اوٚن گٔژھِتھ ڈیسڈیمونا مارنُک فٲصلہٕ کَران۔
===ایکٹ ۵===
لڑٲے مَنٛز چھُ ایٖیاگو روڈریگوس زبردستی قتل کَران تاکہِ تٔمؠ سٕنٛز سَازِش کھلنہٕ نَہ یِیہِ۔ دٔپھ دٔپھ پیٚٹھ چھُ اوتھیلو خواب گاہس مَنٛز پَنٛنہِ خانٛدارِنہِ ڈیسڈیمونا سُنٛد ساہ دَباوِتھ تَس ماران۔ امیلیا چھِ واتِتھ ایٖیاگو سُنٛد ساروی مَکر و فریب فاش کَران۔ ییٚلہِ اوتھیلوس حقیقت معلوٗم چھِ گژھان کہِ ڈیسڈیمونا ٲس بےٚ گناہ، سُہ چھُ گۄڈٕ ایٖیاگوس زَخمی کَران تہٕ پَتہٕ پَنُن پان خۄدکشی کٔرِتھ ماران۔ لوڈوویکو چھُ کیسیو حٲکِم مُقرَر کَران تہٕ ایٖیاگوس سخت سَزا دِنُک حُکُم جٲری کَران۔
j6451r7r69q4o5rpa96mwmi7jxy4qs6
153244
153242
2026-10-06T13:12:13Z
آیات محراج
11062
/* */
153244
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = P747
}}
[[File:Othello_et_Desdémone_à_Venise_-_Théodore_Chassériau_-_Musée_du_Louvre_Peintures_RF_3897.jpg|thumb|اوتھیلو تہٕ ڈیسڈیمونا وینس منٛز تھیوڈور چیسریو، 1850]]
دی ٹریجڈی آف اوتھیلو، دی موٗر آف وینس، یَتھ عام طور پیٚٹھ لۄکٹ کٔرِتھ اوتھیلو وننہٕ چھُ یِوان، چھِ اَکھ المیہ (tragedy) یۄس ولِیم شیکسپیرن لگ بَگ 1603 عیسویس مَنٛز لؠکھ۔ وینس تہٕ سائپرسس مَنٛز قٲئم یہِ ڈرٛامہ چھُ موری فوجی کمانڈر اوتھیلوس پیش کَران، ییٚلہِ تٔمؠ سُنٛد نائب (ensign) ایٖیاگو سُہ پنٛنہِ خانٛدارِنہِ ڈیسڈیمونا ہٕنٛزِ بے وفٲئی پیٚٹھ شَک کَرنس پیٚٹھ مجبوٗر چھُ کَران۔
اوتھیلو چھُ بٔڑِس پیمانس پیٚٹھ شیکسپیر سٕنٛدؠن مایہِ ناز ترین شہکارَن مَنٛز شُمار گژھان تہٕ اَمِچ گِنتی چھِ أمؠ سٕنٛدؠن بٔڑؠن المیہ ڈرامَن مَنٛز میکبیتھ، کِنگ لِیَر تہٕ ہیملیٹ سٟتؠ یِوان کَرنہٕ۔ مُصنف سٕنٛزِ زِنٛدگی مَنٛز غٲر شایع شُدٕ، یہِ ڈرٛامہ چھُ 1622 کِس اکہِ کوارٹو ایڈیشن تہٕ پتہٕ فرسٹ فولیو مَنٛز مۄحفوٗظ روٗدمُت۔
پَنٛنہِ گۄڈنچہِ پیشکَشہِ پؠٹھٕ چھُ یہِ ناظرینَن تہٕ اَدبی نقادَن دۄشونی مَنٛز شیکسپیر سُنٛد سارِوٕے کھۄتہٕ مَشہوٗر ڈرٛامہ روٗدمُت، یَمہٕ پتہٕ اَتھ پیٚٹھ واریاہ سٹیج، فِلم تہٕ اوپیرا بَناونہٕ آیہِ۔ فنکارَن مَنٛز چھِ اوتھیلو، ایٖیاگو، ڈیسڈیمونا تہٕ امیلیا (ایٖیاگو ہٕنٛز خانٛدارِنؠ) ہٕنٛدؠ کردار نَہایت دِقَت طلب تہٕ پَسَندِیدٕ سَمجنہٕ یِوان۔
شیکسپیر سُنٛد اَمِچ کٔہٲنی خٲطرٕ بٔڑ مأخذ اوس سِنتھیو سُنٛد 1565 ہُنٛد اَکھ ناوَل (novella)، یَمِچ کٔہٲنی شیکسپیرن رٔٹِتھ واریٛاہ کینٛہہ بدلاو کٔرِتھ پیش کٔر۔<ref>{{ویب حَوالہٕ|date=2026-09-26|title=Othello {{!}} Shakespeare, Plot, Summary, & Characters {{!}} Britannica|url=https://www.britannica.com/topic/Othello-by-Shakespeare|access-date=2026-10-06|website=www.britannica.com|language=en}}</ref>
== کِردار ==
*اوتھیلو: وینس ہٕنٛزِ فوجہِ مَنٛز جنرل، اَکھ عٔظیٖم موٗر (Moor)
*ڈیسڈیمونا: اوتھیلو ہٕنٛز خانٛدارِنؠ؛ برابانشیو ہٕنٛز کوٗر
*ایٖیاگو: اوتھیلو سُنٛد قٲبِلِ اِعتِماد، مَگَر کِینہٕ پَرور تہٕ دَغا باز نائب (ensign)
*کیسیو: اوتھیلو سُنٛد وفادار تہٕ سارِوٕے کھۄتہٕ پیارو لؠفٹیننٹ
*امیلیا: ایٖیاگو ہٕنٛز خانٛدارِنؠ تہٕ ڈیسڈیمونا ہٕنٛز خِدمَت گار
*بیانکا: کیسیو ہٕنٛز محبوٗبہ
*برابانشیو: وینس سُنٛد سینیٹر تہٕ ڈیسڈیمونا سُنٛد مول
*روڈریگو: وینس سُنٛد اَکھ بَدچَلَن اَمیر، یُس ڈیسڈیمونا سٟتؠ مۆحَبَت اوس کَران
*گریشیانو: برابانشیو سُنٛد بٲے
*لوڈوویکو: برابانشیو سُنٛد رِشتہ دار تہٕ ڈیسڈیمونا سُنٛد پِتُر بٲے
*مونٹانو: سائپرس کِس حکومتس مَنٛز اوتھیلو کھۄتہٕ برٛونٛہہ حٲکِم
== پلاٹ خُلاصہٕ ==
===ایکٹ ۱===
روڈریگو چھُ پَنٛنِس دوست ایٖیاگوس شِکایَتھ کَران کہِ تٔمؠ کٔر نہٕ تٔمس ڈیسڈیمونا تہٕ اوتھیلو سٕنٛزِ خُفیہ خانٛدرٕ بابتھ آگاہ۔ ایٖیاگو چھُ اوتھیلو خٕلاف بَدلہٕ نِنُک سوچان تِکیازِ اوتھیلو اوس کیسیو لؠفٹیننٹ عۄہدس پیٚٹھ پرموٹ کوٚرمُت۔ برابانشیو چھُ اوتھیلوس پیٚٹھ جادوٗگری سٟتؠ کوٗر بہکاونُک اِلزام تَرٛاوان، مگر اوتھیلو تہٕ ڈیسڈیمونا چھِ سینیٹس مَنٛز پَنٛنِہ مۆحَبَتچ پزر واضع کَران۔ اوتھیلوس چھُ ترک حملہٕ آورَن خٕلاف سائپرسس کُن کَمَان سمبھالنہٕ خٲطرٕ بھیجنہٕ یِوان۔
===ایکٹ ۲===
قافلہٕ چھُ سائپرس واتان ییٚتہِ طوٗفانس مَنٛز ترک کٹھ تباہ گژھان چھُ۔ ایٖیاگو چھُ کیسیوس شراب چَوان تہٕ روڈریگوس سٟتؠ لڑٲے مَنٛز گِرِفتار کَراوان، یَمہٕ سٟتؠ ناراض گٔژھِتھ اوتھیلو چھُ کیسیو سُنٛد عۄہدس کھسَن۔
===ایکٹ ۳===
ایٖیاگو چھُ اوتھیلو سٕنٛدِس زِہنس مَنٛز کیسیو تہٕ ڈیسڈیمونا کِس تعلُق بابتھ شَکھ پٲدٕ کَران۔ ییٚلہِ ڈیسڈیمونا سُنٛد رُمال (ہُنٛد اَکھ توٗحفہٕ) بیٚیہِ کٔنٛہہ ترٛاوتھ لوسان چھُ، ایٖیاگو چھُ پنٛنہِ خانٛدارِنہِ امیلیا نِش سُہ ژوٗرِ تھاوان۔ اوتھیلو چھُ ایٖیاگو سٕنٛدِس جالس مَنٛز پھَسان تہٕ دۄشونی مارنُک عۄہد کَران۔
===ایکٹ ۴===
ایٖیاگو چھُ سُہ رُمال کیسیو کِس کَمبرس مَنٛز تھاوان۔ اوتھیلو چھُ دوٗرِ پؠٹھ کیسیوس بیانکا بابتھ کتھ کَران وِچھان مَگَر ایٖیاگو ہٕنٛزِ چالاکی کِنؠ چھُ سَمجھان کہِ کتھ چھِ ڈیسڈیمونا بابتھ گژھان۔ اوتھیلو چھُ شرارتھس مَنٛز اوٚن گٔژھِتھ ڈیسڈیمونا مارنُک فٲصلہٕ کَران۔
===ایکٹ ۵===
لڑٲے مَنٛز چھُ ایٖیاگو روڈریگوس زبردستی قتل کَران تاکہِ تٔمؠ سٕنٛز سَازِش کھلنہٕ نَہ یِیہِ۔ دٔپھ دٔپھ پیٚٹھ چھُ اوتھیلو خواب گاہس مَنٛز پَنٛنہِ خانٛدارِنہِ ڈیسڈیمونا سُنٛد ساہ دَباوِتھ تَس ماران۔ امیلیا چھِ واتِتھ ایٖیاگو سُنٛد ساروی مَکر و فریب فاش کَران۔ ییٚلہِ اوتھیلوس حقیقت معلوٗم چھِ گژھان کہِ ڈیسڈیمونا ٲس بےٚ گناہ، سُہ چھُ گۄڈٕ ایٖیاگوس زَخمی کَران تہٕ پَتہٕ پَنُن پان خۄدکشی کٔرِتھ ماران۔ لوڈوویکو چھُ کیسیو حٲکِم مُقرَر کَران تہٕ ایٖیاگوس سخت سَزا دِنُک حُکُم جٲری کَران۔
nbiegee5k9zj4b28hpr6ulm0dx10ov0
153245
153244
2026-10-06T13:13:00Z
آیات محراج
11062
مِلاوُن [[زٲژ:ڈرٛامہ]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
153245
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = P747
}}
[[File:Othello_et_Desdémone_à_Venise_-_Théodore_Chassériau_-_Musée_du_Louvre_Peintures_RF_3897.jpg|thumb|اوتھیلو تہٕ ڈیسڈیمونا وینس منٛز تھیوڈور چیسریو، 1850]]
دی ٹریجڈی آف اوتھیلو، دی موٗر آف وینس، یَتھ عام طور پیٚٹھ لۄکٹ کٔرِتھ اوتھیلو وننہٕ چھُ یِوان، چھِ اَکھ المیہ (tragedy) یۄس ولِیم شیکسپیرن لگ بَگ 1603 عیسویس مَنٛز لؠکھ۔ وینس تہٕ سائپرسس مَنٛز قٲئم یہِ ڈرٛامہ چھُ موری فوجی کمانڈر اوتھیلوس پیش کَران، ییٚلہِ تٔمؠ سُنٛد نائب (ensign) ایٖیاگو سُہ پنٛنہِ خانٛدارِنہِ ڈیسڈیمونا ہٕنٛزِ بے وفٲئی پیٚٹھ شَک کَرنس پیٚٹھ مجبوٗر چھُ کَران۔
اوتھیلو چھُ بٔڑِس پیمانس پیٚٹھ شیکسپیر سٕنٛدؠن مایہِ ناز ترین شہکارَن مَنٛز شُمار گژھان تہٕ اَمِچ گِنتی چھِ أمؠ سٕنٛدؠن بٔڑؠن المیہ ڈرامَن مَنٛز میکبیتھ، کِنگ لِیَر تہٕ ہیملیٹ سٟتؠ یِوان کَرنہٕ۔ مُصنف سٕنٛزِ زِنٛدگی مَنٛز غٲر شایع شُدٕ، یہِ ڈرٛامہ چھُ 1622 کِس اکہِ کوارٹو ایڈیشن تہٕ پتہٕ فرسٹ فولیو مَنٛز مۄحفوٗظ روٗدمُت۔
پَنٛنہِ گۄڈنچہِ پیشکَشہِ پؠٹھٕ چھُ یہِ ناظرینَن تہٕ اَدبی نقادَن دۄشونی مَنٛز شیکسپیر سُنٛد سارِوٕے کھۄتہٕ مَشہوٗر ڈرٛامہ روٗدمُت، یَمہٕ پتہٕ اَتھ پیٚٹھ واریاہ سٹیج، فِلم تہٕ اوپیرا بَناونہٕ آیہِ۔ فنکارَن مَنٛز چھِ اوتھیلو، ایٖیاگو، ڈیسڈیمونا تہٕ امیلیا (ایٖیاگو ہٕنٛز خانٛدارِنؠ) ہٕنٛدؠ کردار نَہایت دِقَت طلب تہٕ پَسَندِیدٕ سَمجنہٕ یِوان۔
شیکسپیر سُنٛد اَمِچ کٔہٲنی خٲطرٕ بٔڑ مأخذ اوس سِنتھیو سُنٛد 1565 ہُنٛد اَکھ ناوَل (novella)، یَمِچ کٔہٲنی شیکسپیرن رٔٹِتھ واریٛاہ کینٛہہ بدلاو کٔرِتھ پیش کٔر۔<ref>{{ویب حَوالہٕ|date=2026-09-26|title=Othello {{!}} Shakespeare, Plot, Summary, & Characters {{!}} Britannica|url=https://www.britannica.com/topic/Othello-by-Shakespeare|access-date=2026-10-06|website=www.britannica.com|language=en}}</ref>
== کِردار ==
*اوتھیلو: وینس ہٕنٛزِ فوجہِ مَنٛز جنرل، اَکھ عٔظیٖم موٗر (Moor)
*ڈیسڈیمونا: اوتھیلو ہٕنٛز خانٛدارِنؠ؛ برابانشیو ہٕنٛز کوٗر
*ایٖیاگو: اوتھیلو سُنٛد قٲبِلِ اِعتِماد، مَگَر کِینہٕ پَرور تہٕ دَغا باز نائب (ensign)
*کیسیو: اوتھیلو سُنٛد وفادار تہٕ سارِوٕے کھۄتہٕ پیارو لؠفٹیننٹ
*امیلیا: ایٖیاگو ہٕنٛز خانٛدارِنؠ تہٕ ڈیسڈیمونا ہٕنٛز خِدمَت گار
*بیانکا: کیسیو ہٕنٛز محبوٗبہ
*برابانشیو: وینس سُنٛد سینیٹر تہٕ ڈیسڈیمونا سُنٛد مول
*روڈریگو: وینس سُنٛد اَکھ بَدچَلَن اَمیر، یُس ڈیسڈیمونا سٟتؠ مۆحَبَت اوس کَران
*گریشیانو: برابانشیو سُنٛد بٲے
*لوڈوویکو: برابانشیو سُنٛد رِشتہ دار تہٕ ڈیسڈیمونا سُنٛد پِتُر بٲے
*مونٹانو: سائپرس کِس حکومتس مَنٛز اوتھیلو کھۄتہٕ برٛونٛہہ حٲکِم
== پلاٹ خُلاصہٕ ==
===ایکٹ ۱===
روڈریگو چھُ پَنٛنِس دوست ایٖیاگوس شِکایَتھ کَران کہِ تٔمؠ کٔر نہٕ تٔمس ڈیسڈیمونا تہٕ اوتھیلو سٕنٛزِ خُفیہ خانٛدرٕ بابتھ آگاہ۔ ایٖیاگو چھُ اوتھیلو خٕلاف بَدلہٕ نِنُک سوچان تِکیازِ اوتھیلو اوس کیسیو لؠفٹیننٹ عۄہدس پیٚٹھ پرموٹ کوٚرمُت۔ برابانشیو چھُ اوتھیلوس پیٚٹھ جادوٗگری سٟتؠ کوٗر بہکاونُک اِلزام تَرٛاوان، مگر اوتھیلو تہٕ ڈیسڈیمونا چھِ سینیٹس مَنٛز پَنٛنِہ مۆحَبَتچ پزر واضع کَران۔ اوتھیلوس چھُ ترک حملہٕ آورَن خٕلاف سائپرسس کُن کَمَان سمبھالنہٕ خٲطرٕ بھیجنہٕ یِوان۔
===ایکٹ ۲===
قافلہٕ چھُ سائپرس واتان ییٚتہِ طوٗفانس مَنٛز ترک کٹھ تباہ گژھان چھُ۔ ایٖیاگو چھُ کیسیوس شراب چَوان تہٕ روڈریگوس سٟتؠ لڑٲے مَنٛز گِرِفتار کَراوان، یَمہٕ سٟتؠ ناراض گٔژھِتھ اوتھیلو چھُ کیسیو سُنٛد عۄہدس کھسَن۔
===ایکٹ ۳===
ایٖیاگو چھُ اوتھیلو سٕنٛدِس زِہنس مَنٛز کیسیو تہٕ ڈیسڈیمونا کِس تعلُق بابتھ شَکھ پٲدٕ کَران۔ ییٚلہِ ڈیسڈیمونا سُنٛد رُمال (ہُنٛد اَکھ توٗحفہٕ) بیٚیہِ کٔنٛہہ ترٛاوتھ لوسان چھُ، ایٖیاگو چھُ پنٛنہِ خانٛدارِنہِ امیلیا نِش سُہ ژوٗرِ تھاوان۔ اوتھیلو چھُ ایٖیاگو سٕنٛدِس جالس مَنٛز پھَسان تہٕ دۄشونی مارنُک عۄہد کَران۔
===ایکٹ ۴===
ایٖیاگو چھُ سُہ رُمال کیسیو کِس کَمبرس مَنٛز تھاوان۔ اوتھیلو چھُ دوٗرِ پؠٹھ کیسیوس بیانکا بابتھ کتھ کَران وِچھان مَگَر ایٖیاگو ہٕنٛزِ چالاکی کِنؠ چھُ سَمجھان کہِ کتھ چھِ ڈیسڈیمونا بابتھ گژھان۔ اوتھیلو چھُ شرارتھس مَنٛز اوٚن گٔژھِتھ ڈیسڈیمونا مارنُک فٲصلہٕ کَران۔
===ایکٹ ۵===
لڑٲے مَنٛز چھُ ایٖیاگو روڈریگوس زبردستی قتل کَران تاکہِ تٔمؠ سٕنٛز سَازِش کھلنہٕ نَہ یِیہِ۔ دٔپھ دٔپھ پیٚٹھ چھُ اوتھیلو خواب گاہس مَنٛز پَنٛنہِ خانٛدارِنہِ ڈیسڈیمونا سُنٛد ساہ دَباوِتھ تَس ماران۔ امیلیا چھِ واتِتھ ایٖیاگو سُنٛد ساروی مَکر و فریب فاش کَران۔ ییٚلہِ اوتھیلوس حقیقت معلوٗم چھِ گژھان کہِ ڈیسڈیمونا ٲس بےٚ گناہ، سُہ چھُ گۄڈٕ ایٖیاگوس زَخمی کَران تہٕ پَتہٕ پَنُن پان خۄدکشی کٔرِتھ ماران۔ لوڈوویکو چھُ کیسیو حٲکِم مُقرَر کَران تہٕ ایٖیاگوس سخت سَزا دِنُک حُکُم جٲری کَران۔
== حَوالہٕ ==
[[زٲژ:ڈرٛامہ]]
iyh27647wgp04ymwgfgbfl15gem0adc
153281
153245
2026-10-06T18:01:30Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153281
wikitext
text/x-wiki
{{مولوٗماتھ
| کھٔٹِتھ = P747
}}
[[File:Othello_et_Desdémone_à_Venise_-_Théodore_Chassériau_-_Musée_du_Louvre_Peintures_RF_3897.jpg|thumb|اوتھیلو تہٕ ڈیسڈیمونا وینس منٛز تھیوڈور چیسریو، 1850]]
دی ٹریجڈی آف اوتھیلو، دی موٗر آف وینس، یَتھ عام طور پیٚٹھ لۄکٹ کٔرِتھ اوتھیلو وننہٕ چھُ یِوان، چھِ اَکھ المیہ (tragedy) یۄس ولِیم شیکسپیرن لگ بَگ 1603 عیسویس مَنٛز لؠکھ۔ وینس تہٕ سایپرسس مَنٛز قٲیم یہِ ڈرٛامہ چھُ موری فوجی کمانڈر اوتھیلوس پیش کَران، ییٚلہِ تٔمؠ سُنٛد نایب (ensign) ایٖیاگو سُہ پنٛنہِ خانٛدارِنہِ ڈیسڈیمونا ہٕنٛزِ بے وفٲیی پیٚٹھ شَک کَرنس پیٚٹھ مجبوٗر چھُ کَران۔
اوتھیلو چھُ بٔڑِس پیمانس پیٚٹھ شیکسپیر سٕنٛدؠن مایہِ ناز ترین شہکارَن مَنٛز شُمار گژھان تہٕ اَمِچ گِنتی چھِ أمؠ سٕنٛدؠن بٔڑؠن المیہ ڈرامَن مَنٛز میکبیتھ، کِنگ لِیَر تہٕ ہیملیٹ سٟتؠ یِوان کَرنہٕ۔ مُصنف سٕنٛزِ زِنٛدگی مَنٛز غٲر شایع شُدٕ، یہِ ڈرٛامہ چھُ 1622 کِس اکہِ کوارٹو ایڈیشن تہٕ پتہٕ فرسٹ فولیو مَنٛز مۄحفوٗظ روٗدمُت۔
پَنٛنہِ گۄڈنچہِ پیشکَشہِ پؠٹھٕ چھُ یہِ ناظرینَن تہٕ اَدبی نقادَن دۄشونی مَنٛز شیکسپیر سُنٛد سارِوٕے کھۄتہٕ مَشہوٗر ڈرٛامہ روٗدمُت، یَمہٕ پتہٕ اَتھ پیٚٹھ واریاہ سٹیج، فِلِم تہٕ اوپیرا بَناونہٕ آیہِ۔ فنکارَن مَنٛز چھِ اوتھیلو، ایٖیاگو، ڈیسڈیمونا تہٕ امیلیا (ایٖیاگو ہٕنٛز خانٛدارِنؠ) ہٕنٛدؠ کردار نَہایت دِقَت طلب تہٕ پَسَندِیدٕ سَمجنہٕ یِوان۔
شیکسپیر سُنٛد اَمِچ کٔہٲنی خٲطرٕ بٔڑ مأخذ اوس سِنتھیو سُنٛد 1565 ہُنٛد اَکھ ناوَل (novella)، یَمِچ کٔہٲنی شیکسپیرن رٔٹِتھ واریٛاہ کینٛہہ بدلاو کٔرِتھ پیش کٔر۔<ref>{{ویب حَوالہٕ|date=2026-09-26|title=Othello {{!}} Shakespeare, Plot, Summary, & Characters {{!}} Britannica|url=https://www.britannica.com/topic/Othello-by-Shakespeare|access-date=2026-10-06|website=www.britannica.com|language=en}}</ref>
== کِردار ==
*اوتھیلو: وینس ہٕنٛزِ فوجہِ مَنٛز جنرل، اَکھ عٔظیٖم موٗر (Moor)
*ڈیسڈیمونا: اوتھیلو ہٕنٛز خانٛدارِنؠ؛ برابانشیو ہٕنٛز کوٗر
*ایٖیاگو: اوتھیلو سُنٛد قٲبِلِ اِعتِماد، مَگَر کِینہٕ پَرور تہٕ دَغا باز نایب (ensign)
*کیسیو: اوتھیلو سُنٛد وفادار تہٕ سارِوٕے کھۄتہٕ پیارو لؠفٹیننٹ
*امیلیا: ایٖیاگو ہٕنٛز خانٛدارِنؠ تہٕ ڈیسڈیمونا ہٕنٛز خِدمَت گار
*بیانکا: کیسیو ہٕنٛز محبوٗبہ
*برابانشیو: وینس سُنٛد سینیٹر تہٕ ڈیسڈیمونا سُنٛد مول
*روڈریگو: وینس سُنٛد اَکھ بَدچَلَن اَمیر، یُس ڈیسڈیمونا سٟتؠ مۆحَبَت اوس کَران
*گریشیانو: برابانشیو سُنٛد بٲے
*لوڈوویکو: برابانشیو سُنٛد رِشتہ دار تہٕ ڈیسڈیمونا سُنٛد پِتُر بٲے
*مونٹانو: سایپرس کِس حکومتس مَنٛز اوتھیلو کھۄتہٕ برٛونٛہہ حٲکِم
== پلاٹ خُلاصہٕ ==
===ایکٹ ۱===
روڈریگو چھُ پَنٛنِس دوست ایٖیاگوس شِکایَتھ کَران کہِ تٔمؠ کٔر نہٕ تٔمس ڈیسڈیمونا تہٕ اوتھیلو سٕنٛزِ خُفیہ خانٛدرٕ بابتھ آگاہ۔ ایٖیاگو چھُ اوتھیلو خٕلاف بَدلہٕ نِنُک سوچان تِکیازِ اوتھیلو اوس کیسیو لؠفٹیننٹ عۄہدس پیٚٹھ پرموٹ کوٚرمُت۔ برابانشیو چھُ اوتھیلوس پیٚٹھ جادوٗگری سٟتؠ کوٗر بہکاونُک اِلزام تَرٛاوان، مگر اوتھیلو تہٕ ڈیسڈیمونا چھِ سینیٹس مَنٛز پَنٛنہِ مۆحَبَتچ پزر واضع کَران۔ اوتھیلوس چھُ ترک حملہٕ آورَن خٕلاف سایپرسس کُن کَمَان سمبھالنہٕ خٲطرٕ بھیجنہٕ یِوان۔
===ایکٹ ۲===
قافلہٕ چھُ سایپرس واتان ییٚتہِ طوٗفانس مَنٛز ترک کٹھ تباہ گژھان چھُ۔ ایٖیاگو چھُ کیسیوس شراب چَوان تہٕ روڈریگوس سٟتؠ لڑٲے مَنٛز گِرِفتار کَراوان، یَمہٕ سٟتؠ ناراض گٔژھِتھ اوتھیلو چھُ کیسیو سُنٛد عۄہدس کھسَن۔
===ایکٹ ۳===
ایٖیاگو چھُ اوتھیلو سٕنٛدِس زِہنس مَنٛز کیسیو تہٕ ڈیسڈیمونا کِس تعلُق بابتھ شَکھ پٲدٕ کَران۔ ییٚلہِ ڈیسڈیمونا سُنٛد رُمال (ہُنٛد اَکھ توٗحفہٕ) بیٚیہِ کٔنٛہہ ترٛاوتھ لوسان چھُ، ایٖیاگو چھُ پنٛنہِ خانٛدارِنہِ امیلیا نِش سُہ ژوٗرِ تھاوان۔ اوتھیلو چھُ ایٖیاگو سٕنٛدِس جالس مَنٛز پھَسان تہٕ دۄشونی مارنُک عۄہد کَران۔
===ایکٹ ۴===
ایٖیاگو چھُ سُہ رُمال کیسیو کِس کَمبرس مَنٛز تھاوان۔ اوتھیلو چھُ دوٗرِ پؠٹھ کیسیوس بیانکا بابتھ کتھ کَران وِچھان مَگَر ایٖیاگو ہٕنٛزِ چالاکی کِنؠ چھُ سَمجھان کہِ کتھ چھِ ڈیسڈیمونا بابتھ گژھان۔ اوتھیلو چھُ شرارتھس مَنٛز اوٚن گٔژھِتھ ڈیسڈیمونا مارنُک فٲصلہٕ کَران۔
===ایکٹ ۵===
لڑٲے مَنٛز چھُ ایٖیاگو روڈریگوس زبردستی قَتٕل کَران تاکہِ تٔمؠ سٕنٛز سَازِش کھلنہٕ نَہ یِیہِ۔ دٔپھ دٔپھ پیٚٹھ چھُ اوتھیلو خواب گاہس مَنٛز پَنٛنہِ خانٛدارِنہِ ڈیسڈیمونا سُنٛد ساہ دَباوِتھ تَس ماران۔ امیلیا چھِ واتِتھ ایٖیاگو سُنٛد سارِوٕے مَکر و فریب فاش کَران۔ ییٚلہِ اوتھیلوس حقیقت معلوٗم چھِ گژھان کہِ ڈیسڈیمونا ٲس بےٚ گناہ، سُہ چھُ گۄڈٕ ایٖیاگوس زَخمی کَران تہٕ پَتہٕ پَنُن پان خۄدکشی کٔرِتھ ماران۔ لوڈوویکو چھُ کیسیو حٲکِم مُقرَر کَران تہٕ ایٖیاگوس سخت سَزا دِنُک حُکُم جٲری کَران۔
== حَوالہٕ ==
[[زٲژ:ڈرٛامہ]]
9o3guelfyroawob0hlxws2uf1w7k3eu
مِساکی دویی
0
33045
153248
2026-10-06T15:33:10Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1363475161|Misaki Doi]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
153248
wikitext
text/x-wiki
مِساکی دویی (土居 美咲، دویی مِساکی؛ زامٕژ 29 اپریل 1991) چھُ اَکھ جاپٲنۍ سٲبِقہٕ پرو ٹینس کھِلٲڑۍ۔ تٔمۍ سٕنٛز سارِوٕے کھۄتہٕ زِیٛادٕ ڈبلیو ٹی اے درجہِ بندی ٲس سنگلزَس منٛز 30 نمبر تہٕ ڈبلزَس منٛز 77 نمبر۔ ڈوئی ووت زٕ جونیئر گرینڈ سلیم ڈبلز فَینَلَس منٛز- 2007 منٛز ومبلڈنس منٛز کُرومی نارا ہَس سۭتۍ، تہٕ 2008 منٛز آسٹریلین اوپنَس منٛز ایلینا بوگدانَس سۭتۍ، دۄشوے ہٲرۍ۔ سۄ ووت ترٛٮ۪ن ڈبلیو ٹی اے ٹورنامنٹ فَینَلَن منٛز، صرف اکھ زیٛوٗن۔ تٔمۍ سُنٛد انتظام چھُ ٹوکیوَس منٛز اکھ سپورٹس مارکیٹنگ ایجنسی میوز گروپ کران۔
t7htcc668jgleo0rwv1krtng12c8gvm
153249
153248
2026-10-06T15:34:45Z
آیات محراج
11062
/* */
153249
wikitext
text/x-wiki
'''مِساکی دویی''' (土居 美咲، دویی مِساکی؛ زامٕژ 29 اپریل 1991) چھُ اَکھ جاپٲنۍ سٲبِقہٕ پرو ٹینس کھِلٲڑۍ۔ تٔمۍ سٕنٛز سارِوٕے کھۄتہٕ زِیٛادٕ ڈبلیو ٹی اے درجہِ بندی ٲس سِنٛگلزَس مَنٛز 30 نمبر تہٕ ڈبلزَس منٛز 77 نمبر۔
دویی ووت زٕ جونیئر گرینڈ سلیم ڈبلز فَینَلَس منٛز- 2007 منٛز ومبلڈنس منٛز کُرومی نارا ہَس سۭتۍ، تہٕ 2008 منٛز آسٹریلین اوپنَس منٛز ایلینا بوگدانَس سۭتۍ، دۄشوے ہٲرۍ۔ سۄ ووت ترٛٮ۪ن ڈبلیو ٹی اے ٹورنامنٹ فَینَلَن منٛز، صرف اکھ زیٛوٗن۔ تٔمۍ سُنٛد انتظام چھُ ٹوکیوَس منٛز اکھ سپورٹس مارکیٹِنٛگ ایجنسی میٛوٗز گروپ کران۔
r1ksi5vk9296cd7k1hnxbkbq0f030sj
153250
153249
2026-10-06T15:36:30Z
آیات محراج
11062
/* */
153250
wikitext
text/x-wiki
{{Infobox person ca/catalan}}
'''مِساکی دویی''' (土居 美咲، دویی مِساکی؛ زامٕژ 29 اپریل 1991) چھُ اَکھ جاپٲنۍ سٲبِقہٕ پرو ٹینس کھِلٲڑۍ۔ تٔمۍ سٕنٛز سارِوٕے کھۄتہٕ زِیٛادٕ ڈبلیو ٹی اے درجہِ بَنٛدی ٲس سِنٛگلزَس مَنٛز 30 نمبر تہٕ ڈبلزَس منٛز 77 نمبر۔<ref>{{cite web|title=Misaki Doi|url=https://www.wtatennis.com/players/314237/misaki-doi|publisher=[[Women's Tennis Association|WTA]]}}</ref>
دویی ووت زٕ جونیئر گرٛینٛڈ سلیم ڈبلز فَینَلَس منٛز- 2007 منٛز ومبلڈنس منٛز کُرومی نارا ہَس سۭتۍ، تہٕ 2008 منٛز آسٹریلین اوپنَس منٛز ایلینا بوگدانَس سۭتۍ، دۄشوے ہٲرۍ۔ سۄ ووت ترٛٮ۪ن ڈبلیو ٹی اے ٹورنامنٹ فَینَلَن منٛز، صرف اکھ زیٛوٗن۔ تٔمۍ سُنٛد انتظام چھُ ٹوکیوَس منٛز اکھ سپورٹس مارکیٹِنٛگ ایجنسی میٛوٗز گروپ کران۔
== حَوالہٕ ==
7gnjk82bw86xjc3tipjstnqy590v2h2
153251
153250
2026-10-06T15:37:09Z
آیات محراج
11062
+[[زٲژ:1991 پٲدٲیِش]]; +[[زٲژ:جاپٲنؠ لوٗکھ]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
153251
wikitext
text/x-wiki
{{Infobox person ca/catalan}}
'''مِساکی دویی''' (土居 美咲، دویی مِساکی؛ زامٕژ 29 اپریل 1991) چھُ اَکھ جاپٲنۍ سٲبِقہٕ پرو ٹینس کھِلٲڑۍ۔ تٔمۍ سٕنٛز سارِوٕے کھۄتہٕ زِیٛادٕ ڈبلیو ٹی اے درجہِ بَنٛدی ٲس سِنٛگلزَس مَنٛز 30 نمبر تہٕ ڈبلزَس منٛز 77 نمبر۔<ref>{{cite web|title=Misaki Doi|url=https://www.wtatennis.com/players/314237/misaki-doi|publisher=[[Women's Tennis Association|WTA]]}}</ref>
دویی ووت زٕ جونیئر گرٛینٛڈ سلیم ڈبلز فَینَلَس منٛز- 2007 منٛز ومبلڈنس منٛز کُرومی نارا ہَس سۭتۍ، تہٕ 2008 منٛز آسٹریلین اوپنَس منٛز ایلینا بوگدانَس سۭتۍ، دۄشوے ہٲرۍ۔ سۄ ووت ترٛٮ۪ن ڈبلیو ٹی اے ٹورنامنٹ فَینَلَن منٛز، صرف اکھ زیٛوٗن۔ تٔمۍ سُنٛد انتظام چھُ ٹوکیوَس منٛز اکھ سپورٹس مارکیٹِنٛگ ایجنسی میٛوٗز گروپ کران۔
== حَوالہٕ ==
[[زٲژ:1991 پٲدٲیِش]]
[[زٲژ:جاپٲنؠ لوٗکھ]]
r5a3h2yeqtdbmf9raa9p54urlli5tp5
153280
153251
2026-10-06T18:01:25Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153280
wikitext
text/x-wiki
{{Infobox person ca/catalan}}
'''مِساکی دویی''' (土居 美咲، دویی مِساکی؛ زامٕژ 29 اپریل 1991) چھُ اَکھ جاپٲنؠ سٲبِقہٕ پرو ٹینس کھِلٲڑؠ۔ تٔمؠ سٕنٛز سارِوٕے کھۄتہٕ زِیٛادٕ ڈبلیو ٹی اے درجہِ بَنٛدی ٲس سِنٛگلزَس مَنٛز 30 نمبر تہٕ ڈبلزَس مَنٛز 77 نمبر۔<ref>{{cite web|title=Misaki Doi|url=https://www.wtatennis.com/players/314237/misaki-doi|publisher=[[Women's Tennis Association|WTA]]}}</ref>
دویی ووت زٕ جونییَر گرٛینٛڈ سلیم ڈبلز فَینَلَس مَنٛز- 2007 مَنٛز ومبلڈنس مَنٛز کُرومی نارا ہَس سٟتؠ، تہٕ 2008 مَنٛز آسٹریلین اوپنَس مَنٛز ایلینا بوگدانَس سٟتؠ، دۄشوے ہٲرؠ۔ سۄ ووت ترٛؠن ڈبلیو ٹی اے ٹورنامنٹ فَینَلَن مَنٛز، صرف اَکھ زیٛوٗن۔ تٔمؠ سُنٛد انتظام چھُ ٹوکیوَس مَنٛز اَکھ سپورٹس مارکیٹِنٛگ ایجنسی میٛوٗز گروپ کران۔
== حَوالہٕ ==
[[زٲژ:1991 پٲدٲیِش]]
[[زٲژ:جاپٲنؠ لوٗکھ]]
81kzrs53uri40i3tyn4pi9vc6hawv70
1993
0
33046
153261
2026-10-06T17:53:15Z
511KeV
8268
/* */ Add
153261
wikitext
text/x-wiki
{{Template:Year article header|1993}}
e7dcg2nu1hl410r5ar4ifh5tt7cn9ie
153278
153261
2026-10-06T18:01:15Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153278
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{Template:Year article header|1993}}
18vybst6md77wdel8yjg68ma6b2myvq
1994
0
33047
153263
2026-10-06T17:53:39Z
511KeV
8268
/* */
153263
wikitext
text/x-wiki
{{Template:Year article header|1994}}
kdz51hw8owxh6rneghayf7qrpd8h59a
153277
153263
2026-10-06T18:01:10Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153277
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{Template:Year article header|1994}}
55encniyz802cd6ikgszu345423qds2
1995
0
33048
153264
2026-10-06T17:54:14Z
511KeV
8268
/* */
153264
wikitext
text/x-wiki
{{Template:Year article header|1995}}
l0ivs7kf7p08cirgtjj9j0ru7jcmnh5
153276
153264
2026-10-06T18:01:05Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153276
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{Template:Year article header|1995}}
55d94b502w1ezsw30j2v23cy8f0xe29
1996
0
33049
153265
2026-10-06T17:54:37Z
511KeV
8268
/* */
153265
wikitext
text/x-wiki
{{Template:Year article header|1996}}
bkbce1tfkn1ueoqmrioj8olx0t8b9xw
153275
153265
2026-10-06T18:01:00Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153275
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{Template:Year article header|1996}}
dwsiaceqipg8rd737o89ayz3q8gpbo5
1997
0
33050
153266
2026-10-06T17:54:59Z
511KeV
8268
/* */
153266
wikitext
text/x-wiki
{{Template:Year article header|1997}}
5tx7kdn76cza5u1jgezglyzhe8r4k1t
153274
153266
2026-10-06T18:00:55Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153274
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{Template:Year article header|1997}}
7o9aqrf8zv1p13fknh30tzvkxw573cx
1998
0
33051
153267
2026-10-06T17:55:22Z
511KeV
8268
/* */
153267
wikitext
text/x-wiki
{{Template:Year article header|1998}}
njqq0mzgujd3o726do8kzbd9kpt0259
153273
153267
2026-10-06T18:00:50Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153273
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{Template:Year article header|1998}}
3t8gex5wynhtkvobxwdry34n0vrdzb3
1999
0
33052
153268
2026-10-06T17:55:52Z
511KeV
8268
/* */
153268
wikitext
text/x-wiki
{{Template:Year article header|1999}}
cnymivolwh2pjxq6f1ges6jgylfab8v
153272
153268
2026-10-06T18:00:45Z
Nadeemulhaqmir-bot
9480
باٹ چھُ غَلطی ٹھیٖکھ کَران [[وِکیٖپیٖڈیا:AutoWikiBrowser/Typos|غَلطی فِہرِست مُطٲبِق]]
153272
wikitext
text/x-wiki
{{حَوالہٕ وَرٲے}}
{{Template:Year article header|1999}}
a9enssyey4hyxx334z8mv4zdmreo4l5
Module:Year in various calendars
828
33053
153297
2026-03-22T06:44:13Z
en>Santiago Claudio
0
Implemented sandbox changes as requested
153297
Scribunto
text/plain
-- Load dependencies.
local getArgs = require('Module:Arguments').getArgs
local infoboxBuilder = require('Module:InfoboxBuilder').InfoboxBuilder
local numToRoman = require( 'Module:Roman' ).main
local getOlympiad = require( 'Module:Ancient Olympiads' )._main
local getDynasty = require( 'Module:Ancient Egypt era' )._main
local getPharaoh = require( 'Module:Ancient Egypt kings' )._main
local numToArmenian = require( 'Module:Armenian' ).main
local getRegnal = require( 'Module:British regnal year' ).main
local japaneseEra = require( 'Module:Japanese calendar' ).era()
-- Define constants.
local lang = mw.language.getContentLanguage()
local currentYear = tonumber( lang:formatDate( 'Y' ) )
--------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------
local function isInteger( num )
-- Checks if a value is an integer. If so, returns the value converted to a number.
-- If not, returns false.
num = tonumber( num )
if num and math.floor( num ) == num and num ~= math.huge then
return num
else
return false
end
end
local function BCToNum( s )
-- Converts strings of the format "n BC" to their corresponding
-- numerical values.
if type( s ) ~= 'string' then
return nil
end
s = mw.ustring.match( mw.ustring.upper( s ), '^([1-9]%d*)%s*BC$' )
if not s then
return nil
end
local num = tonumber( s )
num = ( num - 1 ) * -1
return num
end
local function numToBC( num )
-- For BC years, returns a string with the year name appended with " BC".
-- Otherwise returns nil.
num = isInteger( num )
if not num then return end
if num <= 0 then
return string.format( '%d BC', 1 - num )
end
end
local function ADToNum( s )
-- Converts strings of the format "AD n"
-- to their corresponding numerical values.
if type( s ) ~= 'string' then
return nil
end
s = mw.ustring.match( mw.ustring.upper( s ), '^AD%s*([1-9]%d*)$' )
if not s then
return nil
end
local num = tonumber( s )
return num
end
local function numToAD( num )
-- For AD years up to 100, returns a string with the year name prepended with "AD ".
-- Otherwise returns nil.
num = isInteger( num )
if not num then return end
if (num <= 100) then
return string.format( 'AD %d', num )
end
end
local function formatNegative(s)
-- Replaces hyphens in a string with minus signs if the hyphen comes before a number.
s = mw.ustring.gsub( s, '%-(%d)', '−%1' )
return s
end
--------------------------------------------------------------------
-- Calendar box class definition
--------------------------------------------------------------------
local calendarBox = {}
calendarBox.__index = calendarBox
function calendarBox:new( init )
init = type( init ) == 'table' and init or {}
local obj = {}
local pagename = mw.title.getCurrentTitle().text
-- Set the year. If the year is specified as an argument, use that.
-- Otherwise, use the page name if it is valid. If the pagename isn't
-- valid, use the current year.
local yearNum = isInteger( init.year )
local yearBC = BCToNum( init.year )
local yearAD = ADToNum( init.year )
local pageNum = isInteger( pagename )
local pageBC = BCToNum( pagename )
local pageAD = ADToNum( pagename )
if yearNum then -- First, see if the year parameter is a number.
self.year = yearNum
elseif yearBC then -- Second, see if the year parameter is a "yyyy BC" string.
self.year = yearBC
elseif yearAD then -- Third, see if the year parameter is an AD/CE/year string.
self.year = yearAD
elseif pageNum then -- Fourth, see if the pagename is an integer.
self.year = pageNum
elseif pageBC then -- Fifth, see if the pagename is a "yyyy BC" string.
self.year = pageBC
elseif pageAD then -- Sixth, see if the pagename is an AD/CE/year string.
self.year = pageAD
else
self.year = currentYear -- If none of the above apply, use the current year.
end
-- Set year text values.
self.BCYearName = numToBC( self.year )
self.ADYearName = numToAD( self.year )
if self.BCYearName then
self.yearText = self.BCYearName
elseif self.ADYearName then
self.yearText = self.ADYearName
else
self.yearText = tostring( self.year )
end
-- Set other fields.
self.caption = self.yearText
self.footnotes = init.footnotes
return setmetatable( obj, {
__index = self
})
end
function calendarBox:setCaption( s )
-- Sets the calendar box caption.
if type( s ) ~= 'string' or s == '' then return end
self.caption = s
end
function calendarBox:addCalendar( obj )
-- Adds a calendar or a calendar group.
if type( obj ) ~= 'table' and type( obj.new ) ~= 'function' then return end -- Exit if the object is invalid.
self.calendars = self.calendars or {}
table.insert( self.calendars, obj )
end
-- Add an alias for adding calendar groups. The function is the same, but it might be confusing for users
-- to have to use the name "addCalendar" for a calendar group.
calendarBox.addCalendarGroup = calendarBox.addCalendar
function calendarBox:export()
local builder = infoboxBuilder.new()
builder
:bodyclass( 'vevent' )
:titleclass( 'summary dtstart' )
:title( self.caption )
:labelstyle ( 'font-weight: normal;' )
-- Export the calendars and calendar groups. "calendar:export()" works for both kinds
-- of objects. Some export functions can return nil, so we need to check for that.
if type( self.calendars ) == 'table' then
for _, calendar in ipairs( self.calendars ) do
local calendarRows = calendar:export()
if type( calendarRows ) == 'table' then
for _, row in ipairs( calendarRows ) do
builder:row( row[2], row[1] )
end
end
end
end
-- Add footnotes.
if type( self.footnotes ) == 'string' and self.footnotes ~= '' then
builder:row{
data = string.format( '%s', self.footnotes ),
rowcellstyle = "text-align: left;"
}
end
return builder:build()
end
--------------------------------------------------------------------
-- Calendar group class definition
--------------------------------------------------------------------
-- Calendar groups are used to group different calendars together.
-- Previously, the template did this by including a table row with
-- no year value. By using objects we can do the same thing more
-- semantically.
local calendarGroup = {}
calendarGroup.__index = calendarGroup
function calendarGroup:new( init )
init = type( init ) == 'table' and init or {}
local obj = {}
-- Get the heading and throw an error if it is invalid.
obj.heading = init.heading
if type( obj.heading ) ~= 'string' then
error( 'calendarGroup: no heading detected' )
end
-- Set the metatable and return the object.
self.__index = self
return setmetatable( obj, {
__index = self
})
end
function calendarGroup:addCalendar( calendar )
-- Adds a calendar object to the calendar group.
self.calendars = self.calendars or {}
if type( calendar ) == 'table' and type( calendar.getLink ) == 'function' then
table.insert( self.calendars, calendar )
end
end
function calendarGroup:export()
-- Exports the calendar group's wikitext.
-- Indent and italicise each calendar's link if it exists.
for i, calendar in ipairs( self.calendars ) do
local link = calendar:getLink()
if type( link ) == 'string' then
self.calendars[ i ]:setRawLink( string.format( " - ''%s''", link ) )
end
end
-- Create the heading row and append each calendar
local ret = {{ self.heading, '<!-- -->' }} -- needs a comment in order to show a label without data
for _, calendar in ipairs( self.calendars ) do
for _, exported in ipairs ( calendar:export() ) do
ret[#ret + 1] = exported
end
end
return ret
end
--------------------------------------------------------------------
-- Calendar class definition
--------------------------------------------------------------------
local calendar = {}
calendar.__index = calendar
calendar.type = 'calendar'
function calendar:new()
local obj = {}
return setmetatable( obj, {
__index = self
})
end
function calendar:setLink( link, display )
-- Sets the calendar's wikilink, with optional display text and italics.
if type( link ) ~= 'string' or link == '' then return end
display = type( display ) == 'string' and display ~= '' and display
if display then
self.link = string.format( '[[%s|%s]]', link, display )
else
self.link = string.format( '[[%s]]', link )
end
end
function calendar:setRawLink( s )
-- Sets the calendar's wikilink as raw wikitext.
if type( s ) ~= 'string' or s == '' then return end
self.link = s
end
function calendar:getLink()
-- Returns the calendar's link value.
return self.link
end
function calendar:setYear( year )
-- Sets a single year. Can be passed either a string or a number.
-- If passed as a number, it is formatted with minus signs instead of hyphens.
-- If passed as a string, no minus-sign formatting occurs; this should be done in the individual calendar definitions.
if type( year ) == 'number' then
year = tostring( year )
self.year = formatNegative( year )
elseif type( year ) == 'string' then
self.year = year
end
end
function calendar:setYearRange( year1, year2 )
-- Sets a year range. Must be passed two numbers.
if type( year1 ) == 'number' and type( year2 ) == 'number' then
local year
if year1 < 0 or year2 < 0 then -- Leave a gap for negative years to avoid having a minus sign and a dash right next to each other.
year = string.format( '%d – %d', year1, year2 )
year = formatNegative( year )
else
year = string.format( '%d–%d', year1, year2 )
end
self.year = year
end
end
function calendar:setYearCouple( year1, year2, addtext )
-- Same as setYearRange, only with a slash (/) in the middle. Must be passed two numbers.
-- Additional text possible, must be defined as follows: addtext = string.format( 'additional text or link')
-- See example in Seleucid era calendar
if type( year1 ) == 'number' and type( year2 ) == 'number' then
local year
if year1 < 0 or year2 < 0 then -- Leave no gap for negative years.
year = string.format( '%d/%d %s', year1, year2, addtext )
year = formatNegative( year )
else
year = string.format( '%d/%d %s', year1, year2, addtext )
end
self.year = year
end
end
function calendar:export()
-- Outputs the calendar wikitext.
-- Exit if no link has been specified.
local link = self.link
if type( link ) ~= 'string' or link == '' then return end
-- If no year has been specified, set the year value to N/A.
local year = self.year
if type( year ) ~= 'string' or year == '' then
year = "''N/A''"
end
-- Pass link and year upwards
return {{ link, year }}
end
--------------------------------------------------------------------
-- Build the box
--------------------------------------------------------------------
local function makeCalendarBox( args )
-- Initiate the box and get the year values.
local init = args
local box = calendarBox:new( init )
local year = box.year
local yearText = box.yearText
-- Set the caption.
box:setCaption( box.caption .. ' in various [[Calendar era|calendars]]' )
----------------------------------------------------------------------
-- Gregorian calendar
----------------------------------------------------------------------
local gregorian = calendar:new()
gregorian:setLink( 'Gregorian calendar' )
-- Get the year link.
local gregcal = args.gregcal
if type( gregcal ) == 'string' and gregcal ~= '' then
gregorian.yearLink = string.format( '[[%s|%s]]', gregcal, yearText )
else
gregorian.yearLink = yearText
end
-- Set the year.
if year <= 0 then
gregorian.romanYear = numToRoman{-(year-1)} .. ' BC'
else
gregorian.romanYear = numToRoman{year}
end
if gregorian.romanYear then
gregorian:setYear( string.format(
[[%s<br /><span style="font-family: serif;">''%s''</span>]],
gregorian.yearLink, gregorian.romanYear
) )
else
gregorian:setYear( gregorian.yearLink )
end
box:addCalendar( gregorian )
----------------------------------------------------------------------
-- French Republican calendar
-- displays only in years 1793 - 1805 and 1871
-- This calendar was in use and had defined years only for the short period on display.
-- Its importance during these few years is also the reason why it should stay out of the alphabetic order.
-- See discussion on talk page.
----------------------------------------------------------------------
if year >= 1792 and year < 1806 or year == 1871 then
local republican = calendar:new()
republican:setLink('French Republican calendar')
if year == 1792 then
local republicanYear = year - 1791
republican:setYear( string.format(
[[%s<br /><span style="font-family: serif;">''%s''</span>]],
republicanYear, numToRoman{republicanYear}
) ) -- year I, September to December, retroactive
elseif year <= 1870 then
local republicanYear1 = year - 1792
local republicanYear2 = year - 1791
republican:setYear( string.format(
[[%s–%s<br /><span style="font-family: serif;">''%s–%s''</span>]],
republicanYear1, republicanYear2, numToRoman{republicanYear1}, numToRoman{republicanYear2}
) )
elseif year == 1871 then
local republicanYear = year - 1792
republican:setYear( string.format(
[[%s<br /><span style="font-family: serif;">''%s''</span>]],
republicanYear, numToRoman{republicanYear}
) ) -- Paris Commune, May
end
box:addCalendar( republican )
end
----------------------------------------------------------------------
-- Ab urbe condita
-- Varro's correlation, from 1 AUC
----------------------------------------------------------------------
if year >= -752 then
local abUrbe = calendar:new()
abUrbe:setLink( 'Ab urbe condita' )
abUrbe:setYear( year + 753 )
box:addCalendar( abUrbe )
end
----------------------------------------------------------------------
-- Ancient Egypt era
-- Displays dynasty between 1549 BC and 30 BC
-- Displays pharaoh or king between 752 BC and 30 BC
----------------------------------------------------------------------
if year > -1549 and year <= -29 then
local ancEgypt = calendar:new()
ancEgypt:setLink(
'Egyptian chronology',
'Ancient Egypt era'
)
ancEgypt:setYear( getDynasty( year ) )
box:addCalendar( ancEgypt )
end
if year > - 752 and year <= -29 then
local ancPharaoh = calendar:new()
ancPharaoh:setLink(
'List of pharaohs',
'<i>- Pharaoh</i>'
)
ancPharaoh:setYear( getPharaoh( year ) )
box:addCalendar( ancPharaoh )
end
----------------------------------------------------------------------
-- Ancient Olympiads
-- Currently only the first 194 Olympiads
-- May be expanded until 394 AD when data available
----------------------------------------------------------------------
if year >= -1300 and year < 1 then
local ancOlympiads = calendar:new()
ancOlympiads:setLink(
'Olympiad',
'Ancient Greek Olympiad (summer)'
)
ancOlympiads:setYear( getOlympiad( year ) )
box:addCalendar( ancOlympiads )
end
----------------------------------------------------------------------
-- Armenian calendar
----------------------------------------------------------------------
if year > 551 then
local armenian = calendar:new()
armenian:setLink( 'Armenian calendar' )
local armenianYear = year - 551
armenian:setYear( string.format( '%s<br />ԹՎ %s', armenianYear, numToArmenian( armenianYear ) ) )
box:addCalendar( armenian )
end
----------------------------------------------------------------------
-- Assyrian calendar
----------------------------------------------------------------------
local assyrian = calendar:new()
assyrian:setLink( 'Assyrian calendar' )
assyrian:setYear( year + 4750 )
box:addCalendar( assyrian )
----------------------------------------------------------------------
-- Bahá'í calendar
-- displays only after 1843
----------------------------------------------------------------------
if year >= 1844 then
local bahai = calendar:new()
bahai:setLink( "Baháʼí calendar" )
bahai:setYearRange( year - 1844, year - 1843 )
box:addCalendar( bahai )
end
----------------------------------------------------------------------
-- Balinese saka calendar
----------------------------------------------------------------------
local balinese = calendar:new()
balinese:setLink( 'Balinese saka calendar' )
if year - 76 > 0 then
balinese:setYearRange( year - 79, year - 78 )
end
box:addCalendar( balinese )
----------------------------------------------------------------------
-- Bengali calendar
----------------------------------------------------------------------
local bengali = calendar:new()
bengali:setLink( 'Bengali calendar' )
bengali:setYearRange( year - 594, year - 593 )
box:addCalendar( bengali )
----------------------------------------------------------------------
-- Berber calendar
----------------------------------------------------------------------
local berber = calendar:new()
berber:setLink( 'Berber calendar' )
berber:setYear( year + 950 )
box:addCalendar( berber )
----------------------------------------------------------------------
-- Regnal year
----------------------------------------------------------------------
if year >= 1000 then
local regnal = calendar:new()
local regnalName
if year > 1706 then
regnalName = 'British'
else
regnalName = 'English'
end
regnal:setLink( 'Regnal years of English and British monarchs', regnalName .. ' Regnal year' )
regnal:setYear( getRegnal( year ) )
box:addCalendar( regnal )
end
----------------------------------------------------------------------
-- Buddhist calendar
----------------------------------------------------------------------
local buddhist = calendar:new()
buddhist:setLink( 'Buddhist calendar' )
buddhist:setYear( year + 544 )
box:addCalendar( buddhist )
----------------------------------------------------------------------
-- Burmese calendar
----------------------------------------------------------------------
local burmese = calendar:new()
burmese:setLink( 'Burmese calendar' )
burmese:setYear( year - 638 )
box:addCalendar( burmese )
----------------------------------------------------------------------
-- Byzantine calendar
----------------------------------------------------------------------
local byzantine = calendar:new()
byzantine:setLink( 'Byzantine calendar' )
byzantine:setYearRange( year + 5508, year + 5509 )
box:addCalendar( byzantine )
----------------------------------------------------------------------
-- Chinese calendar
----------------------------------------------------------------------
local chinese = calendar:new()
chinese:setLink( 'Chinese calendar' )
-- Define the information for the "heavenly stems" and "earthly branches" year cycles.
-- See [[Chinese calendar#Cycle of years]] for information.
local heavenlyStems = {
{ '甲', 'Wood' }, -- 1
{ '乙', 'Wood' }, -- 2
{ '丙', 'Fire' }, -- 3
{ '丁', 'Fire' }, -- 4
{ '戊', 'Earth' }, -- 5
{ '己', 'Earth' }, -- 6
{ '庚', 'Metal' }, -- 7
{ '辛', 'Metal' }, -- 8
{ '壬', 'Water' }, -- 9
{ '癸', 'Water' } -- 10
}
local earthlyBranches = {
{ '子', '[[Rat (zodiac)|Rat]]' }, -- 1
{ '丑', '[[Ox (zodiac)|Ox]]' }, -- 2
{ '寅', '[[Tiger (zodiac)|Tiger]]' }, -- 3
{ '卯', '[[Rabbit (zodiac)|Rabbit]]' }, -- 4
{ '辰', '[[Dragon (zodiac)|Dragon]]' }, -- 5
{ '巳', '[[Snake (zodiac)|Snake]]' }, -- 6
{ '午', '[[Horse (zodiac)|Horse]]' }, -- 7
{ '未', '[[Goat (zodiac)|Goat]]' }, -- 8
{ '申', '[[Monkey (zodiac)|Monkey]]' }, -- 9
{ '酉', '[[Rooster (zodiac)|Rooster]]' }, -- 10
{ '戌', '[[Dog (zodiac)|Dog]]' }, -- 11
{ '亥', '[[Pig (zodiac)|Pig]]' } -- 12
}
-- Calculate the cycle numbers from the year. The first sexagenary year corresponds to the ''previous'' year's entry
-- in [[Chinese calendar correspondence table]], as the Chinese New Year doesn't happen until Jan/Feb in
-- Gregorian years.
local sexagenaryYear1 = ( year - 4 ) % 60
local sexagenaryYear2 = ( year - 3 ) % 60
local heavenlyNum1 = (sexagenaryYear1 - 1) % 10 + 1 -- amod, since lua arrays are 1-indexed
local heavenlyNum2 = (sexagenaryYear2 - 1) % 10 + 1
local earthlyNum1 = (sexagenaryYear1 - 1) % 12 + 1
local earthlyNum2 = (sexagenaryYear2 - 1) % 12 + 1
-- Get the data tables for each permutation.
local heavenlyTable1 = heavenlyStems[ heavenlyNum1 ]
local heavenlyTable2 = heavenlyStems[ heavenlyNum2 ]
local earthlyTable1 = earthlyBranches[ earthlyNum1 ]
local earthlyTable2 = earthlyBranches[ earthlyNum2 ]
-- Work out the continously-numbered year. (See [[Chinese calendar#Continuously numbered years]].)
local year1 = year + 2697
local year2 = year + 2698
local year1Alt = year1 - 207
local year2Alt = year2 - 207
-- Format any negative numbers.
year1 = formatNegative( tostring( year1 ) )
year2 = formatNegative( tostring( year2 ) )
year1Alt = formatNegative( tostring( year1Alt ) )
year2Alt = formatNegative( tostring( year2Alt ) )
-- Return all of that data in a (hopefully) reader-friendly format.
chinese:setYear( string.format(
[=[[[Sexagenary cycle|%s%s]]年 (%s %s)<br />%s or %s<br /> ''— to —''<br />%s%s年 (%s %s)<br />%s or %s]=],
heavenlyTable1[ 1 ],
earthlyTable1[ 1 ],
heavenlyTable1[ 2 ],
earthlyTable1[ 2 ],
year1,
year1Alt,
heavenlyTable2[ 1 ],
earthlyTable2[ 1 ],
heavenlyTable2[ 2 ],
earthlyTable2[ 2 ],
year2,
year2Alt
) )
box:addCalendar( chinese )
----------------------------------------------------------------------
-- Coptic calendar
----------------------------------------------------------------------
local coptic = calendar:new()
coptic:setLink( 'Coptic calendar' )
coptic:setYearRange( year - 284, year - 283 )
box:addCalendar( coptic )
----------------------------------------------------------------------
-- Discordian calendar
----------------------------------------------------------------------
local discordian = calendar:new()
discordian:setLink( 'Discordian calendar' )
discordian:setYear( year + 1166 )
box:addCalendar( discordian )
----------------------------------------------------------------------
-- Ethiopian calendar
----------------------------------------------------------------------
local ethiopian = calendar:new()
ethiopian:setLink( 'Ethiopian calendar' )
ethiopian:setYearRange( year - 8, year - 7 )
box:addCalendar( ethiopian )
----------------------------------------------------------------------
-- Hebrew calendar
----------------------------------------------------------------------
local hebrew = calendar:new()
hebrew:setLink( 'Hebrew calendar' )
hebrew:setYearRange( year + 3760, year + 3761 )
box:addCalendar( hebrew )
----------------------------------------------------------------------
-- Hindu calendars
----------------------------------------------------------------------
local hindu = calendarGroup:new{ heading = '[[Hindu calendar]]s' }
-- Vikram Samvat
local vikramSamvat = calendar:new()
vikramSamvat:setLink( 'Vikram Samvat' )
vikramSamvat:setYearRange( year + 56, year + 57 )
hindu:addCalendar( vikramSamvat )
-- Shaka Samvat
local shakaSamvat = calendar:new()
shakaSamvat:setLink( 'Indian national calendar', 'Shaka Samvat' )
if year >= 78 then
shakaSamvat:setYearRange( year - 79, year - 78 )
end
hindu:addCalendar( shakaSamvat )
-- Kali Yuga
local kaliYuga = calendar:new()
kaliYuga:setLink( 'Kali Yuga' ) -- use italics
kaliYuga:setYearRange( year + 3100, year + 3101 )
hindu:addCalendar( kaliYuga )
box:addCalendarGroup( hindu )
----------------------------------------------------------------------
-- Holocene calendar
----------------------------------------------------------------------
local holocene = calendar:new()
holocene:setLink( 'Holocene calendar' )
holocene:setYear( year + 10000 )
box:addCalendar( holocene )
----------------------------------------------------------------------
-- Igbo calendar
----------------------------------------------------------------------
-- In the old template this was a calendar group with just one calendar; intentionally adding this as a single
-- calendar here, as the previous behaviour looked like a mistake.
if year >= 1000 then
local igbo = calendar:new()
igbo:setLink( 'Igbo calendar' )
igbo:setYearRange( year - 1000, year - 999 )
box:addCalendar( igbo )
end
----------------------------------------------------------------------
-- Iranian calendar
----------------------------------------------------------------------
local iranian = calendar:new()
iranian:setLink( 'Iranian calendars', 'Iranian calendar' )
if year - 621 > 0 then
iranian:setYearRange( year - 622, year - 621 )
else
iranian:setYear( string.format( '%d BP – %d BP', 622 - year, 621 - year ) )
end
box:addCalendar( iranian )
----------------------------------------------------------------------
-- Islamic calendar
----------------------------------------------------------------------
local islamic = calendar:new()
islamic:setLink( 'Islamic calendar' )
local islamicMult = 1.030684 -- the factor to multiply by
local islamicSub = 621.5643 -- the factor to subtract by
if year - 621 > 0 then
local year1 = math.floor( islamicMult * ( year - islamicSub ) )
local year2 = math.floor( islamicMult * ( year - islamicSub + 1 ) )
islamic:setYearRange( year1, year2 )
else
local year1 = math.ceil( -islamicMult * ( year - islamicSub ) )
local year2 = math.ceil( -islamicMult * ( year - islamicSub + 1 ) )
islamic:setYear( string.format( '%d BH – %d BH', year1, year2 ) )
end
box:addCalendar( islamic )
----------------------------------------------------------------------
-- Japanese calendar
-- starting 600
----------------------------------------------------------------------
if year >= 600 then
local japanese = calendar:new()
japanese:setLink( 'Japanese calendar' )
japanese.thisEra = japaneseEra:new{ year = year }
if japanese.thisEra then
local japaneseYearText = {}
japanese.oldEra = japanese.thisEra:getOldEra()
if japanese.oldEra and japanese.oldEra.eraYear and japanese.thisEra.article ~= japanese.oldEra.article then
japanese.oldText = string.format( '%s %d', japanese.oldEra.link, japanese.oldEra.eraYear )
table.insert( japaneseYearText, japanese.oldText )
table.insert( japaneseYearText, ' / ' )
end
if japanese.thisEra.eraYear then
table.insert( japaneseYearText, string.format( '%s %d', japanese.thisEra.link, japanese.thisEra.eraYear ) )
end
table.insert( japaneseYearText, string.format( '<br />(%s%s年)', japanese.thisEra.kanji, japanese.thisEra.eraYearKanji ) )
japanese:setYear( table.concat( japaneseYearText ) )
end
box:addCalendar( japanese )
end
----------------------------------------------------------------------
-- Javanese calendar
----------------------------------------------------------------------
local javanese = calendar:new()
javanese:setLink( 'Javanese calendar' )
local javaneseMult = 1.030684 -- the factor to multiply by
local javaneseSub = 124.9 -- the factor to subtract by
if year - 124 > 0 then
local year1 = math.floor( javaneseMult * ( year - javaneseSub ) )
local year2 = math.floor( javaneseMult * ( year - javaneseSub + 1 ) )
javanese:setYearRange( year1, year2 )
else
local year1 = math.ceil( -javaneseMult * ( year - javaneseSub ) )
local year2 = math.ceil( -javaneseMult * ( year - javaneseSub + 1 ) )
end
box:addCalendar( javanese )
----------------------------------------------------------------------
-- Juche calendar
-- displays only after 1910
----------------------------------------------------------------------
if year >= 1910 then
local juche = calendar:new()
juche:setLink( 'Juche calendar' )
if year > 1911 then
juche:setYear( year - 1911 )
end
box:addCalendar( juche )
end
----------------------------------------------------------------------
-- Julian calendar
----------------------------------------------------------------------
local julian = calendar:new()
julian:setLink( 'Julian calendar' )
if year >= -45 and year < 1582 then
julian:setYear(gregorian.year)
elseif year >= 1582 then
local diff = math.floor(year/100-2) - math.floor(year/400)
if year % 100 == 0 and year % 400 ~= 0 then
julian:setYear('Gregorian minus ' .. diff-1 .. ' or ' .. diff .. ' days')
else
julian:setYear('Gregorian minus ' .. diff .. ' days')
end
end
box:addCalendar( julian )
----------------------------------------------------------------------
-- Korean calendar
----------------------------------------------------------------------
local korean = calendar:new()
korean:setLink( 'Korean calendar' )
korean:setYear( year + 2333 )
box:addCalendar( korean )
----------------------------------------------------------------------
-- Minguo calendar
----------------------------------------------------------------------
local minguo = calendar:new()
minguo:setLink( 'Minguo calendar' )
if year > 1949 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Taiwan|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
elseif year > 1911 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Republic of China (1912–1949)|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
else
local minguoYear = 1911 - year + 1
minguo:setYear( string.format( '%d before [[Republic of China (1912–1949)|ROC]]<br />民前%d年', minguoYear, minguoYear ) )
end
box:addCalendar( minguo )
----------------------------------------------------------------------
-- Nanakshahi calendar
----------------------------------------------------------------------
local nanakshahi = calendar:new()
nanakshahi:setLink( 'Nanakshahi calendar' )
nanakshahi:setYear( year - 1468 )
box:addCalendar( nanakshahi )
----------------------------------------------------------------------
-- Seleucid era
-- displays from 312 BC until 1200 AD
----------------------------------------------------------------------
if year >= -311 and year < 1200 then
local seleucid = calendar:new()
seleucid:setLink( 'Seleucid era' )
local addtext = string.format( '[[Anno Graecorum|AG]]')
seleucid:setYearCouple( year + 311, year + 312, addtext )
box:addCalendar( seleucid )
end
----------------------------------------------------------------------
-- Thai solar calendar
----------------------------------------------------------------------
local thai = calendar:new()
thai:setLink( 'Thai solar calendar' )
if year >= 1941 then
thai:setYear( year + 543 )
else -- if year >= 1912 or year <= 1887 -- year started in March/April
thai:setYearRange( year + 542, year + 543 )
-- else -- Rattanakosin Era, 1888?-1912
-- thai:setYear( string.format( '%d – %d ([[Rattanakosin Kingdom|Rattanakosin Era]])', year - 1782 , year - 1781 ) )
end
box:addCalendar( thai )
----------------------------------------------------------------------
-- Tibetan calendar
----------------------------------------------------------------------
local tibetan = calendar:new()
tibetan:setLink( 'Tibetan calendar' )
-- Define the information for the "heavenly stems" and "earthly branches" year cycles.
-- See [[Tibetan calendar#Years]] for information.
local heavenlyStems = {
{ 'ཤིང་ཕོ་', 'male Wood' }, -- 1
{ 'ཤིང་མོ་', 'female Wood' }, -- 2
{ 'མེ་ཕོ་', 'male Fire' }, -- 3
{ 'མེ་མོ་', 'female Fire' }, -- 4
{ 'ས་ཕོ་', 'male Earth' }, -- 5
{ 'ས་མོ་', 'female Earth' }, -- 6
{ 'ལྕགས་ཕོ་', 'male Iron' }, -- 7
{ 'ལྕགས་མོ་', 'female Iron' }, -- 8
{ 'ཆུ་ཕོ་', 'male Water' }, -- 9
{ 'ཆུ་མོ་', 'female Water' } -- 10
}
local earthlyBranches = {
{ 'བྱི་བ་', '[[Rat (zodiac)|Rat]]' }, -- 1
{ 'གླང་', '[[Ox (zodiac)|Ox]]' }, -- 2
{ 'སྟག་', '[[Tiger (zodiac)|Tiger]]' }, -- 3
{ 'ཡོས་', '[[Rabbit (zodiac)|Hare]]' }, -- 4
{ 'འབྲུག་', '[[Dragon (zodiac)|Dragon]]' }, -- 5
{ 'སྦྲུལ་', '[[Snake (zodiac)|Snake]]' }, -- 6
{ 'རྟ་', '[[Horse (zodiac)|Horse]]' }, -- 7
{ 'ལུག་', '[[Goat (zodiac)|Sheep]]' }, -- 8
{ 'སྤྲེ་', '[[Monkey (zodiac)|Monkey]]' }, -- 9
{ 'བྱ་', '[[Rooster (zodiac)|Bird]]' }, -- 10
{ 'ཁྱི་', '[[Dog (zodiac)|Dog]]' }, -- 11
{ 'ཕག་', '[[Pig (zodiac)|Boar]]' } -- 12
}
-- Calculate the cycle numbers from the year. The first sexagenary year corresponds to the ''previous'' year's entry
-- in [[Tibetan calendar correspondence table]], as the Tibetan New Year doesn't happen until Feb/Mar in
-- Gregorian years.
local sexagenaryYear1 = ( year - 4 ) % 60
local sexagenaryYear2 = ( year - 3 ) % 60
local heavenlyNum1 = (sexagenaryYear1 - 1) % 10 + 1 -- amod, since lua arrays are 1-indexed
local heavenlyNum2 = (sexagenaryYear2 - 1) % 10 + 1
local earthlyNum1 = (sexagenaryYear1 - 1) % 12 + 1
local earthlyNum2 = (sexagenaryYear2 - 1) % 12 + 1
-- Get the data tables for each permutation.
local heavenlyTable1 = heavenlyStems[ heavenlyNum1 ]
local heavenlyTable2 = heavenlyStems[ heavenlyNum2 ]
local earthlyTable1 = earthlyBranches[ earthlyNum1 ]
local earthlyTable2 = earthlyBranches[ earthlyNum2 ]
-- Work out the continously-numbered year. (See [[Tibetan calendar#Years with cardinal numbers]].)
local year1 = year + 126
local year2 = year + 127
local year1Alt1 = year1 - 381
local year1Alt2 = year1 - 1153
local year2Alt1 = year2 - 381
local year2Alt2 = year2 - 1153
-- Format any negative numbers.
year1 = formatNegative( tostring( year1 ) )
year2 = formatNegative( tostring( year2 ) )
year1Alt1 = formatNegative( tostring( year1Alt1 ) )
year1Alt2 = formatNegative( tostring( year1Alt2 ) )
year2Alt1 = formatNegative( tostring( year2Alt1 ) )
year2Alt2 = formatNegative( tostring( year2Alt2 ) )
-- Return all of that data in a (hopefully) reader-friendly format.
tibetan:setYear( string.format(
[=[%s%sལོ་<br />(%s-%s)<br />%s or %s or %s<br /> ''— to —''<br />%s%sལོ་<br />(%s-%s)<br />%s or %s or %s]=],
heavenlyTable1[ 1 ],
earthlyTable1[ 1 ],
heavenlyTable1[ 2 ],
earthlyTable1[ 2 ],
year1,
year1Alt1,
year1Alt2,
heavenlyTable2[ 1 ],
earthlyTable2[ 1 ],
heavenlyTable2[ 2 ],
earthlyTable2[ 2 ],
year2,
year2Alt1,
year2Alt2
) )
box:addCalendar( tibetan )
----------------------------------------------------------------------
-- Unix time
----------------------------------------------------------------------
local unix = calendar:new()
local function getUnixTime( year )
if year < 1970 then return end
local noError, unixTime = pcall( lang.formatDate, lang, 'U', '1 Jan ' .. tostring( year ) )
if not noError or noError and not unixTime then return end
unixTime = tonumber( unixTime )
if unixTime and unixTime >= 0 then
return unixTime - 1
end
end
unix.thisYear = getUnixTime( year )
unix.nextYear = getUnixTime( year + 1 )
if unix.thisYear and unix.nextYear then
unix:setLink( 'Unix time' )
unix:setYear( (unix.thisYear + 1) .. " – " .. unix.nextYear )
end
box:addCalendar( unix )
return box:export()
end
--------------------------------------------------------------------
-- Process arguments from #invoke
--------------------------------------------------------------------
local p = {}
function p.main( frame )
-- Process the arguments and pass them to the box-building function.
local args = getArgs( frame )
-- Pass year argument with 'year' parameter or without any name but first argument
args.year = args.year or args[1]
return makeCalendarBox( args )
end
return p
3yogfueyz54rr29qsx7e8rhje61dfld
153298
153297
2026-10-06T18:10:47Z
511KeV
8268
1 revision imported from [[:en:Module:Year_in_various_calendars]]: Needed locally
153297
Scribunto
text/plain
-- Load dependencies.
local getArgs = require('Module:Arguments').getArgs
local infoboxBuilder = require('Module:InfoboxBuilder').InfoboxBuilder
local numToRoman = require( 'Module:Roman' ).main
local getOlympiad = require( 'Module:Ancient Olympiads' )._main
local getDynasty = require( 'Module:Ancient Egypt era' )._main
local getPharaoh = require( 'Module:Ancient Egypt kings' )._main
local numToArmenian = require( 'Module:Armenian' ).main
local getRegnal = require( 'Module:British regnal year' ).main
local japaneseEra = require( 'Module:Japanese calendar' ).era()
-- Define constants.
local lang = mw.language.getContentLanguage()
local currentYear = tonumber( lang:formatDate( 'Y' ) )
--------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------
local function isInteger( num )
-- Checks if a value is an integer. If so, returns the value converted to a number.
-- If not, returns false.
num = tonumber( num )
if num and math.floor( num ) == num and num ~= math.huge then
return num
else
return false
end
end
local function BCToNum( s )
-- Converts strings of the format "n BC" to their corresponding
-- numerical values.
if type( s ) ~= 'string' then
return nil
end
s = mw.ustring.match( mw.ustring.upper( s ), '^([1-9]%d*)%s*BC$' )
if not s then
return nil
end
local num = tonumber( s )
num = ( num - 1 ) * -1
return num
end
local function numToBC( num )
-- For BC years, returns a string with the year name appended with " BC".
-- Otherwise returns nil.
num = isInteger( num )
if not num then return end
if num <= 0 then
return string.format( '%d BC', 1 - num )
end
end
local function ADToNum( s )
-- Converts strings of the format "AD n"
-- to their corresponding numerical values.
if type( s ) ~= 'string' then
return nil
end
s = mw.ustring.match( mw.ustring.upper( s ), '^AD%s*([1-9]%d*)$' )
if not s then
return nil
end
local num = tonumber( s )
return num
end
local function numToAD( num )
-- For AD years up to 100, returns a string with the year name prepended with "AD ".
-- Otherwise returns nil.
num = isInteger( num )
if not num then return end
if (num <= 100) then
return string.format( 'AD %d', num )
end
end
local function formatNegative(s)
-- Replaces hyphens in a string with minus signs if the hyphen comes before a number.
s = mw.ustring.gsub( s, '%-(%d)', '−%1' )
return s
end
--------------------------------------------------------------------
-- Calendar box class definition
--------------------------------------------------------------------
local calendarBox = {}
calendarBox.__index = calendarBox
function calendarBox:new( init )
init = type( init ) == 'table' and init or {}
local obj = {}
local pagename = mw.title.getCurrentTitle().text
-- Set the year. If the year is specified as an argument, use that.
-- Otherwise, use the page name if it is valid. If the pagename isn't
-- valid, use the current year.
local yearNum = isInteger( init.year )
local yearBC = BCToNum( init.year )
local yearAD = ADToNum( init.year )
local pageNum = isInteger( pagename )
local pageBC = BCToNum( pagename )
local pageAD = ADToNum( pagename )
if yearNum then -- First, see if the year parameter is a number.
self.year = yearNum
elseif yearBC then -- Second, see if the year parameter is a "yyyy BC" string.
self.year = yearBC
elseif yearAD then -- Third, see if the year parameter is an AD/CE/year string.
self.year = yearAD
elseif pageNum then -- Fourth, see if the pagename is an integer.
self.year = pageNum
elseif pageBC then -- Fifth, see if the pagename is a "yyyy BC" string.
self.year = pageBC
elseif pageAD then -- Sixth, see if the pagename is an AD/CE/year string.
self.year = pageAD
else
self.year = currentYear -- If none of the above apply, use the current year.
end
-- Set year text values.
self.BCYearName = numToBC( self.year )
self.ADYearName = numToAD( self.year )
if self.BCYearName then
self.yearText = self.BCYearName
elseif self.ADYearName then
self.yearText = self.ADYearName
else
self.yearText = tostring( self.year )
end
-- Set other fields.
self.caption = self.yearText
self.footnotes = init.footnotes
return setmetatable( obj, {
__index = self
})
end
function calendarBox:setCaption( s )
-- Sets the calendar box caption.
if type( s ) ~= 'string' or s == '' then return end
self.caption = s
end
function calendarBox:addCalendar( obj )
-- Adds a calendar or a calendar group.
if type( obj ) ~= 'table' and type( obj.new ) ~= 'function' then return end -- Exit if the object is invalid.
self.calendars = self.calendars or {}
table.insert( self.calendars, obj )
end
-- Add an alias for adding calendar groups. The function is the same, but it might be confusing for users
-- to have to use the name "addCalendar" for a calendar group.
calendarBox.addCalendarGroup = calendarBox.addCalendar
function calendarBox:export()
local builder = infoboxBuilder.new()
builder
:bodyclass( 'vevent' )
:titleclass( 'summary dtstart' )
:title( self.caption )
:labelstyle ( 'font-weight: normal;' )
-- Export the calendars and calendar groups. "calendar:export()" works for both kinds
-- of objects. Some export functions can return nil, so we need to check for that.
if type( self.calendars ) == 'table' then
for _, calendar in ipairs( self.calendars ) do
local calendarRows = calendar:export()
if type( calendarRows ) == 'table' then
for _, row in ipairs( calendarRows ) do
builder:row( row[2], row[1] )
end
end
end
end
-- Add footnotes.
if type( self.footnotes ) == 'string' and self.footnotes ~= '' then
builder:row{
data = string.format( '%s', self.footnotes ),
rowcellstyle = "text-align: left;"
}
end
return builder:build()
end
--------------------------------------------------------------------
-- Calendar group class definition
--------------------------------------------------------------------
-- Calendar groups are used to group different calendars together.
-- Previously, the template did this by including a table row with
-- no year value. By using objects we can do the same thing more
-- semantically.
local calendarGroup = {}
calendarGroup.__index = calendarGroup
function calendarGroup:new( init )
init = type( init ) == 'table' and init or {}
local obj = {}
-- Get the heading and throw an error if it is invalid.
obj.heading = init.heading
if type( obj.heading ) ~= 'string' then
error( 'calendarGroup: no heading detected' )
end
-- Set the metatable and return the object.
self.__index = self
return setmetatable( obj, {
__index = self
})
end
function calendarGroup:addCalendar( calendar )
-- Adds a calendar object to the calendar group.
self.calendars = self.calendars or {}
if type( calendar ) == 'table' and type( calendar.getLink ) == 'function' then
table.insert( self.calendars, calendar )
end
end
function calendarGroup:export()
-- Exports the calendar group's wikitext.
-- Indent and italicise each calendar's link if it exists.
for i, calendar in ipairs( self.calendars ) do
local link = calendar:getLink()
if type( link ) == 'string' then
self.calendars[ i ]:setRawLink( string.format( " - ''%s''", link ) )
end
end
-- Create the heading row and append each calendar
local ret = {{ self.heading, '<!-- -->' }} -- needs a comment in order to show a label without data
for _, calendar in ipairs( self.calendars ) do
for _, exported in ipairs ( calendar:export() ) do
ret[#ret + 1] = exported
end
end
return ret
end
--------------------------------------------------------------------
-- Calendar class definition
--------------------------------------------------------------------
local calendar = {}
calendar.__index = calendar
calendar.type = 'calendar'
function calendar:new()
local obj = {}
return setmetatable( obj, {
__index = self
})
end
function calendar:setLink( link, display )
-- Sets the calendar's wikilink, with optional display text and italics.
if type( link ) ~= 'string' or link == '' then return end
display = type( display ) == 'string' and display ~= '' and display
if display then
self.link = string.format( '[[%s|%s]]', link, display )
else
self.link = string.format( '[[%s]]', link )
end
end
function calendar:setRawLink( s )
-- Sets the calendar's wikilink as raw wikitext.
if type( s ) ~= 'string' or s == '' then return end
self.link = s
end
function calendar:getLink()
-- Returns the calendar's link value.
return self.link
end
function calendar:setYear( year )
-- Sets a single year. Can be passed either a string or a number.
-- If passed as a number, it is formatted with minus signs instead of hyphens.
-- If passed as a string, no minus-sign formatting occurs; this should be done in the individual calendar definitions.
if type( year ) == 'number' then
year = tostring( year )
self.year = formatNegative( year )
elseif type( year ) == 'string' then
self.year = year
end
end
function calendar:setYearRange( year1, year2 )
-- Sets a year range. Must be passed two numbers.
if type( year1 ) == 'number' and type( year2 ) == 'number' then
local year
if year1 < 0 or year2 < 0 then -- Leave a gap for negative years to avoid having a minus sign and a dash right next to each other.
year = string.format( '%d – %d', year1, year2 )
year = formatNegative( year )
else
year = string.format( '%d–%d', year1, year2 )
end
self.year = year
end
end
function calendar:setYearCouple( year1, year2, addtext )
-- Same as setYearRange, only with a slash (/) in the middle. Must be passed two numbers.
-- Additional text possible, must be defined as follows: addtext = string.format( 'additional text or link')
-- See example in Seleucid era calendar
if type( year1 ) == 'number' and type( year2 ) == 'number' then
local year
if year1 < 0 or year2 < 0 then -- Leave no gap for negative years.
year = string.format( '%d/%d %s', year1, year2, addtext )
year = formatNegative( year )
else
year = string.format( '%d/%d %s', year1, year2, addtext )
end
self.year = year
end
end
function calendar:export()
-- Outputs the calendar wikitext.
-- Exit if no link has been specified.
local link = self.link
if type( link ) ~= 'string' or link == '' then return end
-- If no year has been specified, set the year value to N/A.
local year = self.year
if type( year ) ~= 'string' or year == '' then
year = "''N/A''"
end
-- Pass link and year upwards
return {{ link, year }}
end
--------------------------------------------------------------------
-- Build the box
--------------------------------------------------------------------
local function makeCalendarBox( args )
-- Initiate the box and get the year values.
local init = args
local box = calendarBox:new( init )
local year = box.year
local yearText = box.yearText
-- Set the caption.
box:setCaption( box.caption .. ' in various [[Calendar era|calendars]]' )
----------------------------------------------------------------------
-- Gregorian calendar
----------------------------------------------------------------------
local gregorian = calendar:new()
gregorian:setLink( 'Gregorian calendar' )
-- Get the year link.
local gregcal = args.gregcal
if type( gregcal ) == 'string' and gregcal ~= '' then
gregorian.yearLink = string.format( '[[%s|%s]]', gregcal, yearText )
else
gregorian.yearLink = yearText
end
-- Set the year.
if year <= 0 then
gregorian.romanYear = numToRoman{-(year-1)} .. ' BC'
else
gregorian.romanYear = numToRoman{year}
end
if gregorian.romanYear then
gregorian:setYear( string.format(
[[%s<br /><span style="font-family: serif;">''%s''</span>]],
gregorian.yearLink, gregorian.romanYear
) )
else
gregorian:setYear( gregorian.yearLink )
end
box:addCalendar( gregorian )
----------------------------------------------------------------------
-- French Republican calendar
-- displays only in years 1793 - 1805 and 1871
-- This calendar was in use and had defined years only for the short period on display.
-- Its importance during these few years is also the reason why it should stay out of the alphabetic order.
-- See discussion on talk page.
----------------------------------------------------------------------
if year >= 1792 and year < 1806 or year == 1871 then
local republican = calendar:new()
republican:setLink('French Republican calendar')
if year == 1792 then
local republicanYear = year - 1791
republican:setYear( string.format(
[[%s<br /><span style="font-family: serif;">''%s''</span>]],
republicanYear, numToRoman{republicanYear}
) ) -- year I, September to December, retroactive
elseif year <= 1870 then
local republicanYear1 = year - 1792
local republicanYear2 = year - 1791
republican:setYear( string.format(
[[%s–%s<br /><span style="font-family: serif;">''%s–%s''</span>]],
republicanYear1, republicanYear2, numToRoman{republicanYear1}, numToRoman{republicanYear2}
) )
elseif year == 1871 then
local republicanYear = year - 1792
republican:setYear( string.format(
[[%s<br /><span style="font-family: serif;">''%s''</span>]],
republicanYear, numToRoman{republicanYear}
) ) -- Paris Commune, May
end
box:addCalendar( republican )
end
----------------------------------------------------------------------
-- Ab urbe condita
-- Varro's correlation, from 1 AUC
----------------------------------------------------------------------
if year >= -752 then
local abUrbe = calendar:new()
abUrbe:setLink( 'Ab urbe condita' )
abUrbe:setYear( year + 753 )
box:addCalendar( abUrbe )
end
----------------------------------------------------------------------
-- Ancient Egypt era
-- Displays dynasty between 1549 BC and 30 BC
-- Displays pharaoh or king between 752 BC and 30 BC
----------------------------------------------------------------------
if year > -1549 and year <= -29 then
local ancEgypt = calendar:new()
ancEgypt:setLink(
'Egyptian chronology',
'Ancient Egypt era'
)
ancEgypt:setYear( getDynasty( year ) )
box:addCalendar( ancEgypt )
end
if year > - 752 and year <= -29 then
local ancPharaoh = calendar:new()
ancPharaoh:setLink(
'List of pharaohs',
'<i>- Pharaoh</i>'
)
ancPharaoh:setYear( getPharaoh( year ) )
box:addCalendar( ancPharaoh )
end
----------------------------------------------------------------------
-- Ancient Olympiads
-- Currently only the first 194 Olympiads
-- May be expanded until 394 AD when data available
----------------------------------------------------------------------
if year >= -1300 and year < 1 then
local ancOlympiads = calendar:new()
ancOlympiads:setLink(
'Olympiad',
'Ancient Greek Olympiad (summer)'
)
ancOlympiads:setYear( getOlympiad( year ) )
box:addCalendar( ancOlympiads )
end
----------------------------------------------------------------------
-- Armenian calendar
----------------------------------------------------------------------
if year > 551 then
local armenian = calendar:new()
armenian:setLink( 'Armenian calendar' )
local armenianYear = year - 551
armenian:setYear( string.format( '%s<br />ԹՎ %s', armenianYear, numToArmenian( armenianYear ) ) )
box:addCalendar( armenian )
end
----------------------------------------------------------------------
-- Assyrian calendar
----------------------------------------------------------------------
local assyrian = calendar:new()
assyrian:setLink( 'Assyrian calendar' )
assyrian:setYear( year + 4750 )
box:addCalendar( assyrian )
----------------------------------------------------------------------
-- Bahá'í calendar
-- displays only after 1843
----------------------------------------------------------------------
if year >= 1844 then
local bahai = calendar:new()
bahai:setLink( "Baháʼí calendar" )
bahai:setYearRange( year - 1844, year - 1843 )
box:addCalendar( bahai )
end
----------------------------------------------------------------------
-- Balinese saka calendar
----------------------------------------------------------------------
local balinese = calendar:new()
balinese:setLink( 'Balinese saka calendar' )
if year - 76 > 0 then
balinese:setYearRange( year - 79, year - 78 )
end
box:addCalendar( balinese )
----------------------------------------------------------------------
-- Bengali calendar
----------------------------------------------------------------------
local bengali = calendar:new()
bengali:setLink( 'Bengali calendar' )
bengali:setYearRange( year - 594, year - 593 )
box:addCalendar( bengali )
----------------------------------------------------------------------
-- Berber calendar
----------------------------------------------------------------------
local berber = calendar:new()
berber:setLink( 'Berber calendar' )
berber:setYear( year + 950 )
box:addCalendar( berber )
----------------------------------------------------------------------
-- Regnal year
----------------------------------------------------------------------
if year >= 1000 then
local regnal = calendar:new()
local regnalName
if year > 1706 then
regnalName = 'British'
else
regnalName = 'English'
end
regnal:setLink( 'Regnal years of English and British monarchs', regnalName .. ' Regnal year' )
regnal:setYear( getRegnal( year ) )
box:addCalendar( regnal )
end
----------------------------------------------------------------------
-- Buddhist calendar
----------------------------------------------------------------------
local buddhist = calendar:new()
buddhist:setLink( 'Buddhist calendar' )
buddhist:setYear( year + 544 )
box:addCalendar( buddhist )
----------------------------------------------------------------------
-- Burmese calendar
----------------------------------------------------------------------
local burmese = calendar:new()
burmese:setLink( 'Burmese calendar' )
burmese:setYear( year - 638 )
box:addCalendar( burmese )
----------------------------------------------------------------------
-- Byzantine calendar
----------------------------------------------------------------------
local byzantine = calendar:new()
byzantine:setLink( 'Byzantine calendar' )
byzantine:setYearRange( year + 5508, year + 5509 )
box:addCalendar( byzantine )
----------------------------------------------------------------------
-- Chinese calendar
----------------------------------------------------------------------
local chinese = calendar:new()
chinese:setLink( 'Chinese calendar' )
-- Define the information for the "heavenly stems" and "earthly branches" year cycles.
-- See [[Chinese calendar#Cycle of years]] for information.
local heavenlyStems = {
{ '甲', 'Wood' }, -- 1
{ '乙', 'Wood' }, -- 2
{ '丙', 'Fire' }, -- 3
{ '丁', 'Fire' }, -- 4
{ '戊', 'Earth' }, -- 5
{ '己', 'Earth' }, -- 6
{ '庚', 'Metal' }, -- 7
{ '辛', 'Metal' }, -- 8
{ '壬', 'Water' }, -- 9
{ '癸', 'Water' } -- 10
}
local earthlyBranches = {
{ '子', '[[Rat (zodiac)|Rat]]' }, -- 1
{ '丑', '[[Ox (zodiac)|Ox]]' }, -- 2
{ '寅', '[[Tiger (zodiac)|Tiger]]' }, -- 3
{ '卯', '[[Rabbit (zodiac)|Rabbit]]' }, -- 4
{ '辰', '[[Dragon (zodiac)|Dragon]]' }, -- 5
{ '巳', '[[Snake (zodiac)|Snake]]' }, -- 6
{ '午', '[[Horse (zodiac)|Horse]]' }, -- 7
{ '未', '[[Goat (zodiac)|Goat]]' }, -- 8
{ '申', '[[Monkey (zodiac)|Monkey]]' }, -- 9
{ '酉', '[[Rooster (zodiac)|Rooster]]' }, -- 10
{ '戌', '[[Dog (zodiac)|Dog]]' }, -- 11
{ '亥', '[[Pig (zodiac)|Pig]]' } -- 12
}
-- Calculate the cycle numbers from the year. The first sexagenary year corresponds to the ''previous'' year's entry
-- in [[Chinese calendar correspondence table]], as the Chinese New Year doesn't happen until Jan/Feb in
-- Gregorian years.
local sexagenaryYear1 = ( year - 4 ) % 60
local sexagenaryYear2 = ( year - 3 ) % 60
local heavenlyNum1 = (sexagenaryYear1 - 1) % 10 + 1 -- amod, since lua arrays are 1-indexed
local heavenlyNum2 = (sexagenaryYear2 - 1) % 10 + 1
local earthlyNum1 = (sexagenaryYear1 - 1) % 12 + 1
local earthlyNum2 = (sexagenaryYear2 - 1) % 12 + 1
-- Get the data tables for each permutation.
local heavenlyTable1 = heavenlyStems[ heavenlyNum1 ]
local heavenlyTable2 = heavenlyStems[ heavenlyNum2 ]
local earthlyTable1 = earthlyBranches[ earthlyNum1 ]
local earthlyTable2 = earthlyBranches[ earthlyNum2 ]
-- Work out the continously-numbered year. (See [[Chinese calendar#Continuously numbered years]].)
local year1 = year + 2697
local year2 = year + 2698
local year1Alt = year1 - 207
local year2Alt = year2 - 207
-- Format any negative numbers.
year1 = formatNegative( tostring( year1 ) )
year2 = formatNegative( tostring( year2 ) )
year1Alt = formatNegative( tostring( year1Alt ) )
year2Alt = formatNegative( tostring( year2Alt ) )
-- Return all of that data in a (hopefully) reader-friendly format.
chinese:setYear( string.format(
[=[[[Sexagenary cycle|%s%s]]年 (%s %s)<br />%s or %s<br /> ''— to —''<br />%s%s年 (%s %s)<br />%s or %s]=],
heavenlyTable1[ 1 ],
earthlyTable1[ 1 ],
heavenlyTable1[ 2 ],
earthlyTable1[ 2 ],
year1,
year1Alt,
heavenlyTable2[ 1 ],
earthlyTable2[ 1 ],
heavenlyTable2[ 2 ],
earthlyTable2[ 2 ],
year2,
year2Alt
) )
box:addCalendar( chinese )
----------------------------------------------------------------------
-- Coptic calendar
----------------------------------------------------------------------
local coptic = calendar:new()
coptic:setLink( 'Coptic calendar' )
coptic:setYearRange( year - 284, year - 283 )
box:addCalendar( coptic )
----------------------------------------------------------------------
-- Discordian calendar
----------------------------------------------------------------------
local discordian = calendar:new()
discordian:setLink( 'Discordian calendar' )
discordian:setYear( year + 1166 )
box:addCalendar( discordian )
----------------------------------------------------------------------
-- Ethiopian calendar
----------------------------------------------------------------------
local ethiopian = calendar:new()
ethiopian:setLink( 'Ethiopian calendar' )
ethiopian:setYearRange( year - 8, year - 7 )
box:addCalendar( ethiopian )
----------------------------------------------------------------------
-- Hebrew calendar
----------------------------------------------------------------------
local hebrew = calendar:new()
hebrew:setLink( 'Hebrew calendar' )
hebrew:setYearRange( year + 3760, year + 3761 )
box:addCalendar( hebrew )
----------------------------------------------------------------------
-- Hindu calendars
----------------------------------------------------------------------
local hindu = calendarGroup:new{ heading = '[[Hindu calendar]]s' }
-- Vikram Samvat
local vikramSamvat = calendar:new()
vikramSamvat:setLink( 'Vikram Samvat' )
vikramSamvat:setYearRange( year + 56, year + 57 )
hindu:addCalendar( vikramSamvat )
-- Shaka Samvat
local shakaSamvat = calendar:new()
shakaSamvat:setLink( 'Indian national calendar', 'Shaka Samvat' )
if year >= 78 then
shakaSamvat:setYearRange( year - 79, year - 78 )
end
hindu:addCalendar( shakaSamvat )
-- Kali Yuga
local kaliYuga = calendar:new()
kaliYuga:setLink( 'Kali Yuga' ) -- use italics
kaliYuga:setYearRange( year + 3100, year + 3101 )
hindu:addCalendar( kaliYuga )
box:addCalendarGroup( hindu )
----------------------------------------------------------------------
-- Holocene calendar
----------------------------------------------------------------------
local holocene = calendar:new()
holocene:setLink( 'Holocene calendar' )
holocene:setYear( year + 10000 )
box:addCalendar( holocene )
----------------------------------------------------------------------
-- Igbo calendar
----------------------------------------------------------------------
-- In the old template this was a calendar group with just one calendar; intentionally adding this as a single
-- calendar here, as the previous behaviour looked like a mistake.
if year >= 1000 then
local igbo = calendar:new()
igbo:setLink( 'Igbo calendar' )
igbo:setYearRange( year - 1000, year - 999 )
box:addCalendar( igbo )
end
----------------------------------------------------------------------
-- Iranian calendar
----------------------------------------------------------------------
local iranian = calendar:new()
iranian:setLink( 'Iranian calendars', 'Iranian calendar' )
if year - 621 > 0 then
iranian:setYearRange( year - 622, year - 621 )
else
iranian:setYear( string.format( '%d BP – %d BP', 622 - year, 621 - year ) )
end
box:addCalendar( iranian )
----------------------------------------------------------------------
-- Islamic calendar
----------------------------------------------------------------------
local islamic = calendar:new()
islamic:setLink( 'Islamic calendar' )
local islamicMult = 1.030684 -- the factor to multiply by
local islamicSub = 621.5643 -- the factor to subtract by
if year - 621 > 0 then
local year1 = math.floor( islamicMult * ( year - islamicSub ) )
local year2 = math.floor( islamicMult * ( year - islamicSub + 1 ) )
islamic:setYearRange( year1, year2 )
else
local year1 = math.ceil( -islamicMult * ( year - islamicSub ) )
local year2 = math.ceil( -islamicMult * ( year - islamicSub + 1 ) )
islamic:setYear( string.format( '%d BH – %d BH', year1, year2 ) )
end
box:addCalendar( islamic )
----------------------------------------------------------------------
-- Japanese calendar
-- starting 600
----------------------------------------------------------------------
if year >= 600 then
local japanese = calendar:new()
japanese:setLink( 'Japanese calendar' )
japanese.thisEra = japaneseEra:new{ year = year }
if japanese.thisEra then
local japaneseYearText = {}
japanese.oldEra = japanese.thisEra:getOldEra()
if japanese.oldEra and japanese.oldEra.eraYear and japanese.thisEra.article ~= japanese.oldEra.article then
japanese.oldText = string.format( '%s %d', japanese.oldEra.link, japanese.oldEra.eraYear )
table.insert( japaneseYearText, japanese.oldText )
table.insert( japaneseYearText, ' / ' )
end
if japanese.thisEra.eraYear then
table.insert( japaneseYearText, string.format( '%s %d', japanese.thisEra.link, japanese.thisEra.eraYear ) )
end
table.insert( japaneseYearText, string.format( '<br />(%s%s年)', japanese.thisEra.kanji, japanese.thisEra.eraYearKanji ) )
japanese:setYear( table.concat( japaneseYearText ) )
end
box:addCalendar( japanese )
end
----------------------------------------------------------------------
-- Javanese calendar
----------------------------------------------------------------------
local javanese = calendar:new()
javanese:setLink( 'Javanese calendar' )
local javaneseMult = 1.030684 -- the factor to multiply by
local javaneseSub = 124.9 -- the factor to subtract by
if year - 124 > 0 then
local year1 = math.floor( javaneseMult * ( year - javaneseSub ) )
local year2 = math.floor( javaneseMult * ( year - javaneseSub + 1 ) )
javanese:setYearRange( year1, year2 )
else
local year1 = math.ceil( -javaneseMult * ( year - javaneseSub ) )
local year2 = math.ceil( -javaneseMult * ( year - javaneseSub + 1 ) )
end
box:addCalendar( javanese )
----------------------------------------------------------------------
-- Juche calendar
-- displays only after 1910
----------------------------------------------------------------------
if year >= 1910 then
local juche = calendar:new()
juche:setLink( 'Juche calendar' )
if year > 1911 then
juche:setYear( year - 1911 )
end
box:addCalendar( juche )
end
----------------------------------------------------------------------
-- Julian calendar
----------------------------------------------------------------------
local julian = calendar:new()
julian:setLink( 'Julian calendar' )
if year >= -45 and year < 1582 then
julian:setYear(gregorian.year)
elseif year >= 1582 then
local diff = math.floor(year/100-2) - math.floor(year/400)
if year % 100 == 0 and year % 400 ~= 0 then
julian:setYear('Gregorian minus ' .. diff-1 .. ' or ' .. diff .. ' days')
else
julian:setYear('Gregorian minus ' .. diff .. ' days')
end
end
box:addCalendar( julian )
----------------------------------------------------------------------
-- Korean calendar
----------------------------------------------------------------------
local korean = calendar:new()
korean:setLink( 'Korean calendar' )
korean:setYear( year + 2333 )
box:addCalendar( korean )
----------------------------------------------------------------------
-- Minguo calendar
----------------------------------------------------------------------
local minguo = calendar:new()
minguo:setLink( 'Minguo calendar' )
if year > 1949 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Taiwan|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
elseif year > 1911 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Republic of China (1912–1949)|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
else
local minguoYear = 1911 - year + 1
minguo:setYear( string.format( '%d before [[Republic of China (1912–1949)|ROC]]<br />民前%d年', minguoYear, minguoYear ) )
end
box:addCalendar( minguo )
----------------------------------------------------------------------
-- Nanakshahi calendar
----------------------------------------------------------------------
local nanakshahi = calendar:new()
nanakshahi:setLink( 'Nanakshahi calendar' )
nanakshahi:setYear( year - 1468 )
box:addCalendar( nanakshahi )
----------------------------------------------------------------------
-- Seleucid era
-- displays from 312 BC until 1200 AD
----------------------------------------------------------------------
if year >= -311 and year < 1200 then
local seleucid = calendar:new()
seleucid:setLink( 'Seleucid era' )
local addtext = string.format( '[[Anno Graecorum|AG]]')
seleucid:setYearCouple( year + 311, year + 312, addtext )
box:addCalendar( seleucid )
end
----------------------------------------------------------------------
-- Thai solar calendar
----------------------------------------------------------------------
local thai = calendar:new()
thai:setLink( 'Thai solar calendar' )
if year >= 1941 then
thai:setYear( year + 543 )
else -- if year >= 1912 or year <= 1887 -- year started in March/April
thai:setYearRange( year + 542, year + 543 )
-- else -- Rattanakosin Era, 1888?-1912
-- thai:setYear( string.format( '%d – %d ([[Rattanakosin Kingdom|Rattanakosin Era]])', year - 1782 , year - 1781 ) )
end
box:addCalendar( thai )
----------------------------------------------------------------------
-- Tibetan calendar
----------------------------------------------------------------------
local tibetan = calendar:new()
tibetan:setLink( 'Tibetan calendar' )
-- Define the information for the "heavenly stems" and "earthly branches" year cycles.
-- See [[Tibetan calendar#Years]] for information.
local heavenlyStems = {
{ 'ཤིང་ཕོ་', 'male Wood' }, -- 1
{ 'ཤིང་མོ་', 'female Wood' }, -- 2
{ 'མེ་ཕོ་', 'male Fire' }, -- 3
{ 'མེ་མོ་', 'female Fire' }, -- 4
{ 'ས་ཕོ་', 'male Earth' }, -- 5
{ 'ས་མོ་', 'female Earth' }, -- 6
{ 'ལྕགས་ཕོ་', 'male Iron' }, -- 7
{ 'ལྕགས་མོ་', 'female Iron' }, -- 8
{ 'ཆུ་ཕོ་', 'male Water' }, -- 9
{ 'ཆུ་མོ་', 'female Water' } -- 10
}
local earthlyBranches = {
{ 'བྱི་བ་', '[[Rat (zodiac)|Rat]]' }, -- 1
{ 'གླང་', '[[Ox (zodiac)|Ox]]' }, -- 2
{ 'སྟག་', '[[Tiger (zodiac)|Tiger]]' }, -- 3
{ 'ཡོས་', '[[Rabbit (zodiac)|Hare]]' }, -- 4
{ 'འབྲུག་', '[[Dragon (zodiac)|Dragon]]' }, -- 5
{ 'སྦྲུལ་', '[[Snake (zodiac)|Snake]]' }, -- 6
{ 'རྟ་', '[[Horse (zodiac)|Horse]]' }, -- 7
{ 'ལུག་', '[[Goat (zodiac)|Sheep]]' }, -- 8
{ 'སྤྲེ་', '[[Monkey (zodiac)|Monkey]]' }, -- 9
{ 'བྱ་', '[[Rooster (zodiac)|Bird]]' }, -- 10
{ 'ཁྱི་', '[[Dog (zodiac)|Dog]]' }, -- 11
{ 'ཕག་', '[[Pig (zodiac)|Boar]]' } -- 12
}
-- Calculate the cycle numbers from the year. The first sexagenary year corresponds to the ''previous'' year's entry
-- in [[Tibetan calendar correspondence table]], as the Tibetan New Year doesn't happen until Feb/Mar in
-- Gregorian years.
local sexagenaryYear1 = ( year - 4 ) % 60
local sexagenaryYear2 = ( year - 3 ) % 60
local heavenlyNum1 = (sexagenaryYear1 - 1) % 10 + 1 -- amod, since lua arrays are 1-indexed
local heavenlyNum2 = (sexagenaryYear2 - 1) % 10 + 1
local earthlyNum1 = (sexagenaryYear1 - 1) % 12 + 1
local earthlyNum2 = (sexagenaryYear2 - 1) % 12 + 1
-- Get the data tables for each permutation.
local heavenlyTable1 = heavenlyStems[ heavenlyNum1 ]
local heavenlyTable2 = heavenlyStems[ heavenlyNum2 ]
local earthlyTable1 = earthlyBranches[ earthlyNum1 ]
local earthlyTable2 = earthlyBranches[ earthlyNum2 ]
-- Work out the continously-numbered year. (See [[Tibetan calendar#Years with cardinal numbers]].)
local year1 = year + 126
local year2 = year + 127
local year1Alt1 = year1 - 381
local year1Alt2 = year1 - 1153
local year2Alt1 = year2 - 381
local year2Alt2 = year2 - 1153
-- Format any negative numbers.
year1 = formatNegative( tostring( year1 ) )
year2 = formatNegative( tostring( year2 ) )
year1Alt1 = formatNegative( tostring( year1Alt1 ) )
year1Alt2 = formatNegative( tostring( year1Alt2 ) )
year2Alt1 = formatNegative( tostring( year2Alt1 ) )
year2Alt2 = formatNegative( tostring( year2Alt2 ) )
-- Return all of that data in a (hopefully) reader-friendly format.
tibetan:setYear( string.format(
[=[%s%sལོ་<br />(%s-%s)<br />%s or %s or %s<br /> ''— to —''<br />%s%sལོ་<br />(%s-%s)<br />%s or %s or %s]=],
heavenlyTable1[ 1 ],
earthlyTable1[ 1 ],
heavenlyTable1[ 2 ],
earthlyTable1[ 2 ],
year1,
year1Alt1,
year1Alt2,
heavenlyTable2[ 1 ],
earthlyTable2[ 1 ],
heavenlyTable2[ 2 ],
earthlyTable2[ 2 ],
year2,
year2Alt1,
year2Alt2
) )
box:addCalendar( tibetan )
----------------------------------------------------------------------
-- Unix time
----------------------------------------------------------------------
local unix = calendar:new()
local function getUnixTime( year )
if year < 1970 then return end
local noError, unixTime = pcall( lang.formatDate, lang, 'U', '1 Jan ' .. tostring( year ) )
if not noError or noError and not unixTime then return end
unixTime = tonumber( unixTime )
if unixTime and unixTime >= 0 then
return unixTime - 1
end
end
unix.thisYear = getUnixTime( year )
unix.nextYear = getUnixTime( year + 1 )
if unix.thisYear and unix.nextYear then
unix:setLink( 'Unix time' )
unix:setYear( (unix.thisYear + 1) .. " – " .. unix.nextYear )
end
box:addCalendar( unix )
return box:export()
end
--------------------------------------------------------------------
-- Process arguments from #invoke
--------------------------------------------------------------------
local p = {}
function p.main( frame )
-- Process the arguments and pass them to the box-building function.
local args = getArgs( frame )
-- Pass year argument with 'year' parameter or without any name but first argument
args.year = args.year or args[1]
return makeCalendarBox( args )
end
return p
3yogfueyz54rr29qsx7e8rhje61dfld
153394
153298
2026-10-06T18:20:44Z
511KeV
8268
153394
Scribunto
text/plain
-- Load dependencies.
local getArgs = require('Module:Arguments').getArgs
local infoboxBuilder = require('Module:InfoboxBuilder').InfoboxBuilder
local numToRoman = require( 'Module:Roman' ).main
local getOlympiad = require( 'Module:Ancient Olympiads' )._main
local getDynasty = require( 'Module:Ancient Egypt era' )._main
local getPharaoh = require( 'Module:Ancient Egypt kings' )._main
local numToArmenian = require( 'Module:Armenian' ).main
local getRegnal = require( 'Module:British regnal year' ).main
local japaneseEra = require( 'Module:Japanese calendar' ).era()
-- Define constants.
local lang = mw.language.getContentLanguage()
local currentYear = tonumber( lang:formatDate( 'Y' ) )
--------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------
local function isInteger( num )
-- Checks if a value is an integer. If so, returns the value converted to a number.
-- If not, returns false.
num = tonumber( num )
if num and math.floor( num ) == num and num ~= math.huge then
return num
else
return false
end
end
local function BCToNum( s )
-- Converts strings of the format "n BC" to their corresponding
-- numerical values.
if type( s ) ~= 'string' then
return nil
end
s = mw.ustring.match( mw.ustring.upper( s ), '^([1-9]%d*)%s*BC$' )
if not s then
return nil
end
local num = tonumber( s )
num = ( num - 1 ) * -1
return num
end
local function numToBC( num )
-- For BC years, returns a string with the year name appended with " BC".
-- Otherwise returns nil.
num = isInteger( num )
if not num then return end
if num <= 0 then
return string.format( '%d BC', 1 - num )
end
end
local function ADToNum( s )
-- Converts strings of the format "AD n"
-- to their corresponding numerical values.
if type( s ) ~= 'string' then
return nil
end
s = mw.ustring.match( mw.ustring.upper( s ), '^AD%s*([1-9]%d*)$' )
if not s then
return nil
end
local num = tonumber( s )
return num
end
local function numToAD( num )
-- For AD years up to 100, returns a string with the year name prepended with "AD ".
-- Otherwise returns nil.
num = isInteger( num )
if not num then return end
if (num <= 100) then
return string.format( 'AD %d', num )
end
end
local function formatNegative(s)
-- Replaces hyphens in a string with minus signs if the hyphen comes before a number.
s = mw.ustring.gsub( s, '%-(%d)', '−%1' )
return s
end
--------------------------------------------------------------------
-- Calendar box class definition
--------------------------------------------------------------------
local calendarBox = {}
calendarBox.__index = calendarBox
function calendarBox:new( init )
init = type( init ) == 'table' and init or {}
local obj = {}
local pagename = mw.title.getCurrentTitle().text
-- Set the year. If the year is specified as an argument, use that.
-- Otherwise, use the page name if it is valid. If the pagename isn't
-- valid, use the current year.
local yearNum = isInteger( init.year )
local yearBC = BCToNum( init.year )
local yearAD = ADToNum( init.year )
local pageNum = isInteger( pagename )
local pageBC = BCToNum( pagename )
local pageAD = ADToNum( pagename )
if yearNum then -- First, see if the year parameter is a number.
self.year = yearNum
elseif yearBC then -- Second, see if the year parameter is a "yyyy BC" string.
self.year = yearBC
elseif yearAD then -- Third, see if the year parameter is an AD/CE/year string.
self.year = yearAD
elseif pageNum then -- Fourth, see if the pagename is an integer.
self.year = pageNum
elseif pageBC then -- Fifth, see if the pagename is a "yyyy BC" string.
self.year = pageBC
elseif pageAD then -- Sixth, see if the pagename is an AD/CE/year string.
self.year = pageAD
else
self.year = currentYear -- If none of the above apply, use the current year.
end
-- Set year text values.
self.BCYearName = numToBC( self.year )
self.ADYearName = numToAD( self.year )
if self.BCYearName then
self.yearText = self.BCYearName
elseif self.ADYearName then
self.yearText = self.ADYearName
else
self.yearText = tostring( self.year )
end
-- Set other fields.
self.caption = self.yearText
self.footnotes = init.footnotes
return setmetatable( obj, {
__index = self
})
end
function calendarBox:setCaption( s )
-- Sets the calendar box caption.
if type( s ) ~= 'string' or s == '' then return end
self.caption = s
end
function calendarBox:addCalendar( obj )
-- Adds a calendar or a calendar group.
if type( obj ) ~= 'table' and type( obj.new ) ~= 'function' then return end -- Exit if the object is invalid.
self.calendars = self.calendars or {}
table.insert( self.calendars, obj )
end
-- Add an alias for adding calendar groups. The function is the same, but it might be confusing for users
-- to have to use the name "addCalendar" for a calendar group.
calendarBox.addCalendarGroup = calendarBox.addCalendar
function calendarBox:export()
local builder = infoboxBuilder.new()
builder
:bodyclass( 'vevent' )
:titleclass( 'summary dtstart' )
:title( self.caption )
:labelstyle ( 'font-weight: normal;' )
-- Export the calendars and calendar groups. "calendar:export()" works for both kinds
-- of objects. Some export functions can return nil, so we need to check for that.
if type( self.calendars ) == 'table' then
for _, calendar in ipairs( self.calendars ) do
local calendarRows = calendar:export()
if type( calendarRows ) == 'table' then
for _, row in ipairs( calendarRows ) do
builder:row( row[2], row[1] )
end
end
end
end
-- Add footnotes.
if type( self.footnotes ) == 'string' and self.footnotes ~= '' then
builder:row{
data = string.format( '%s', self.footnotes ),
rowcellstyle = "text-align: left;"
}
end
return builder:build()
end
--------------------------------------------------------------------
-- Calendar group class definition
--------------------------------------------------------------------
-- Calendar groups are used to group different calendars together.
-- Previously, the template did this by including a table row with
-- no year value. By using objects we can do the same thing more
-- semantically.
local calendarGroup = {}
calendarGroup.__index = calendarGroup
function calendarGroup:new( init )
init = type( init ) == 'table' and init or {}
local obj = {}
-- Get the heading and throw an error if it is invalid.
obj.heading = init.heading
if type( obj.heading ) ~= 'string' then
error( 'calendarGroup: no heading detected' )
end
-- Set the metatable and return the object.
self.__index = self
return setmetatable( obj, {
__index = self
})
end
function calendarGroup:addCalendar( calendar )
-- Adds a calendar object to the calendar group.
self.calendars = self.calendars or {}
if type( calendar ) == 'table' and type( calendar.getLink ) == 'function' then
table.insert( self.calendars, calendar )
end
end
function calendarGroup:export()
-- Exports the calendar group's wikitext.
-- Indent and italicise each calendar's link if it exists.
for i, calendar in ipairs( self.calendars ) do
local link = calendar:getLink()
if type( link ) == 'string' then
self.calendars[ i ]:setRawLink( string.format( " - ''%s''", link ) )
end
end
-- Create the heading row and append each calendar
local ret = {{ self.heading, '<!-- -->' }} -- needs a comment in order to show a label without data
for _, calendar in ipairs( self.calendars ) do
for _, exported in ipairs ( calendar:export() ) do
ret[#ret + 1] = exported
end
end
return ret
end
--------------------------------------------------------------------
-- Calendar class definition
--------------------------------------------------------------------
local calendar = {}
calendar.__index = calendar
calendar.type = 'calendar'
function calendar:new()
local obj = {}
return setmetatable( obj, {
__index = self
})
end
function calendar:setLink( link, display )
-- Sets the calendar's wikilink, with optional display text and italics.
if type( link ) ~= 'string' or link == '' then return end
display = type( display ) == 'string' and display ~= '' and display
if display then
self.link = string.format( '[[%s|%s]]', link, display )
else
self.link = string.format( '[[%s]]', link )
end
end
function calendar:setRawLink( s )
-- Sets the calendar's wikilink as raw wikitext.
if type( s ) ~= 'string' or s == '' then return end
self.link = s
end
function calendar:getLink()
-- Returns the calendar's link value.
return self.link
end
function calendar:setYear( year )
-- Sets a single year. Can be passed either a string or a number.
-- If passed as a number, it is formatted with minus signs instead of hyphens.
-- If passed as a string, no minus-sign formatting occurs; this should be done in the individual calendar definitions.
if type( year ) == 'number' then
year = tostring( year )
self.year = formatNegative( year )
elseif type( year ) == 'string' then
self.year = year
end
end
function calendar:setYearRange( year1, year2 )
-- Sets a year range. Must be passed two numbers.
if type( year1 ) == 'number' and type( year2 ) == 'number' then
local year
if year1 < 0 or year2 < 0 then -- Leave a gap for negative years to avoid having a minus sign and a dash right next to each other.
year = string.format( '%d – %d', year1, year2 )
year = formatNegative( year )
else
year = string.format( '%d–%d', year1, year2 )
end
self.year = year
end
end
function calendar:setYearCouple( year1, year2, addtext )
-- Same as setYearRange, only with a slash (/) in the middle. Must be passed two numbers.
-- Additional text possible, must be defined as follows: addtext = string.format( 'additional text or link')
-- See example in Seleucid era calendar
if type( year1 ) == 'number' and type( year2 ) == 'number' then
local year
if year1 < 0 or year2 < 0 then -- Leave no gap for negative years.
year = string.format( '%d/%d %s', year1, year2, addtext )
year = formatNegative( year )
else
year = string.format( '%d/%d %s', year1, year2, addtext )
end
self.year = year
end
end
function calendar:export()
-- Outputs the calendar wikitext.
-- Exit if no link has been specified.
local link = self.link
if type( link ) ~= 'string' or link == '' then return end
-- If no year has been specified, set the year value to N/A.
local year = self.year
if type( year ) ~= 'string' or year == '' then
year = "''N/A''"
end
-- Pass link and year upwards
return {{ link, year }}
end
--------------------------------------------------------------------
-- Build the box
--------------------------------------------------------------------
local function makeCalendarBox( args )
-- Initiate the box and get the year values.
local init = args
local box = calendarBox:new( init )
local year = box.year
local yearText = box.yearText
-- Set the caption.
box:setCaption( box.caption .. ' باقٕے [[Calendar era|کیلنڈرن]] مَنٛز' )
----------------------------------------------------------------------
-- Gregorian calendar
----------------------------------------------------------------------
local gregorian = calendar:new()
gregorian:setLink( 'Gregorian calendar' )
-- Get the year link.
local gregcal = args.gregcal
if type( gregcal ) == 'string' and gregcal ~= '' then
gregorian.yearLink = string.format( '[[%s|%s]]', gregcal, yearText )
else
gregorian.yearLink = yearText
end
-- Set the year.
if year <= 0 then
gregorian.romanYear = numToRoman{-(year-1)} .. ' BC'
else
gregorian.romanYear = numToRoman{year}
end
if gregorian.romanYear then
gregorian:setYear( string.format(
[[%s<br /><span style="font-family: serif;">''%s''</span>]],
gregorian.yearLink, gregorian.romanYear
) )
else
gregorian:setYear( gregorian.yearLink )
end
box:addCalendar( gregorian )
----------------------------------------------------------------------
-- French Republican calendar
-- displays only in years 1793 - 1805 and 1871
-- This calendar was in use and had defined years only for the short period on display.
-- Its importance during these few years is also the reason why it should stay out of the alphabetic order.
-- See discussion on talk page.
----------------------------------------------------------------------
if year >= 1792 and year < 1806 or year == 1871 then
local republican = calendar:new()
republican:setLink('French Republican calendar')
if year == 1792 then
local republicanYear = year - 1791
republican:setYear( string.format(
[[%s<br /><span style="font-family: serif;">''%s''</span>]],
republicanYear, numToRoman{republicanYear}
) ) -- year I, September to December, retroactive
elseif year <= 1870 then
local republicanYear1 = year - 1792
local republicanYear2 = year - 1791
republican:setYear( string.format(
[[%s–%s<br /><span style="font-family: serif;">''%s–%s''</span>]],
republicanYear1, republicanYear2, numToRoman{republicanYear1}, numToRoman{republicanYear2}
) )
elseif year == 1871 then
local republicanYear = year - 1792
republican:setYear( string.format(
[[%s<br /><span style="font-family: serif;">''%s''</span>]],
republicanYear, numToRoman{republicanYear}
) ) -- Paris Commune, May
end
box:addCalendar( republican )
end
----------------------------------------------------------------------
-- Ab urbe condita
-- Varro's correlation, from 1 AUC
----------------------------------------------------------------------
if year >= -752 then
local abUrbe = calendar:new()
abUrbe:setLink( 'Ab urbe condita' )
abUrbe:setYear( year + 753 )
box:addCalendar( abUrbe )
end
----------------------------------------------------------------------
-- Ancient Egypt era
-- Displays dynasty between 1549 BC and 30 BC
-- Displays pharaoh or king between 752 BC and 30 BC
----------------------------------------------------------------------
if year > -1549 and year <= -29 then
local ancEgypt = calendar:new()
ancEgypt:setLink(
'Egyptian chronology',
'Ancient Egypt era'
)
ancEgypt:setYear( getDynasty( year ) )
box:addCalendar( ancEgypt )
end
if year > - 752 and year <= -29 then
local ancPharaoh = calendar:new()
ancPharaoh:setLink(
'List of pharaohs',
'<i>- Pharaoh</i>'
)
ancPharaoh:setYear( getPharaoh( year ) )
box:addCalendar( ancPharaoh )
end
----------------------------------------------------------------------
-- Ancient Olympiads
-- Currently only the first 194 Olympiads
-- May be expanded until 394 AD when data available
----------------------------------------------------------------------
if year >= -1300 and year < 1 then
local ancOlympiads = calendar:new()
ancOlympiads:setLink(
'Olympiad',
'Ancient Greek Olympiad (summer)'
)
ancOlympiads:setYear( getOlympiad( year ) )
box:addCalendar( ancOlympiads )
end
----------------------------------------------------------------------
-- Armenian calendar
----------------------------------------------------------------------
if year > 551 then
local armenian = calendar:new()
armenian:setLink( 'Armenian calendar' )
local armenianYear = year - 551
armenian:setYear( string.format( '%s<br />ԹՎ %s', armenianYear, numToArmenian( armenianYear ) ) )
box:addCalendar( armenian )
end
----------------------------------------------------------------------
-- Assyrian calendar
----------------------------------------------------------------------
local assyrian = calendar:new()
assyrian:setLink( 'Assyrian calendar' )
assyrian:setYear( year + 4750 )
box:addCalendar( assyrian )
----------------------------------------------------------------------
-- Bahá'í calendar
-- displays only after 1843
----------------------------------------------------------------------
if year >= 1844 then
local bahai = calendar:new()
bahai:setLink( "Baháʼí calendar" )
bahai:setYearRange( year - 1844, year - 1843 )
box:addCalendar( bahai )
end
----------------------------------------------------------------------
-- Balinese saka calendar
----------------------------------------------------------------------
local balinese = calendar:new()
balinese:setLink( 'Balinese saka calendar' )
if year - 76 > 0 then
balinese:setYearRange( year - 79, year - 78 )
end
box:addCalendar( balinese )
----------------------------------------------------------------------
-- Bengali calendar
----------------------------------------------------------------------
local bengali = calendar:new()
bengali:setLink( 'Bengali calendar' )
bengali:setYearRange( year - 594, year - 593 )
box:addCalendar( bengali )
----------------------------------------------------------------------
-- Berber calendar
----------------------------------------------------------------------
local berber = calendar:new()
berber:setLink( 'Berber calendar' )
berber:setYear( year + 950 )
box:addCalendar( berber )
----------------------------------------------------------------------
-- Regnal year
----------------------------------------------------------------------
if year >= 1000 then
local regnal = calendar:new()
local regnalName
if year > 1706 then
regnalName = 'British'
else
regnalName = 'English'
end
regnal:setLink( 'Regnal years of English and British monarchs', regnalName .. ' Regnal year' )
regnal:setYear( getRegnal( year ) )
box:addCalendar( regnal )
end
----------------------------------------------------------------------
-- Buddhist calendar
----------------------------------------------------------------------
local buddhist = calendar:new()
buddhist:setLink( 'Buddhist calendar' )
buddhist:setYear( year + 544 )
box:addCalendar( buddhist )
----------------------------------------------------------------------
-- Burmese calendar
----------------------------------------------------------------------
local burmese = calendar:new()
burmese:setLink( 'Burmese calendar' )
burmese:setYear( year - 638 )
box:addCalendar( burmese )
----------------------------------------------------------------------
-- Byzantine calendar
----------------------------------------------------------------------
local byzantine = calendar:new()
byzantine:setLink( 'Byzantine calendar' )
byzantine:setYearRange( year + 5508, year + 5509 )
box:addCalendar( byzantine )
----------------------------------------------------------------------
-- Chinese calendar
----------------------------------------------------------------------
local chinese = calendar:new()
chinese:setLink( 'Chinese calendar' )
-- Define the information for the "heavenly stems" and "earthly branches" year cycles.
-- See [[Chinese calendar#Cycle of years]] for information.
local heavenlyStems = {
{ '甲', 'Wood' }, -- 1
{ '乙', 'Wood' }, -- 2
{ '丙', 'Fire' }, -- 3
{ '丁', 'Fire' }, -- 4
{ '戊', 'Earth' }, -- 5
{ '己', 'Earth' }, -- 6
{ '庚', 'Metal' }, -- 7
{ '辛', 'Metal' }, -- 8
{ '壬', 'Water' }, -- 9
{ '癸', 'Water' } -- 10
}
local earthlyBranches = {
{ '子', '[[Rat (zodiac)|Rat]]' }, -- 1
{ '丑', '[[Ox (zodiac)|Ox]]' }, -- 2
{ '寅', '[[Tiger (zodiac)|Tiger]]' }, -- 3
{ '卯', '[[Rabbit (zodiac)|Rabbit]]' }, -- 4
{ '辰', '[[Dragon (zodiac)|Dragon]]' }, -- 5
{ '巳', '[[Snake (zodiac)|Snake]]' }, -- 6
{ '午', '[[Horse (zodiac)|Horse]]' }, -- 7
{ '未', '[[Goat (zodiac)|Goat]]' }, -- 8
{ '申', '[[Monkey (zodiac)|Monkey]]' }, -- 9
{ '酉', '[[Rooster (zodiac)|Rooster]]' }, -- 10
{ '戌', '[[Dog (zodiac)|Dog]]' }, -- 11
{ '亥', '[[Pig (zodiac)|Pig]]' } -- 12
}
-- Calculate the cycle numbers from the year. The first sexagenary year corresponds to the ''previous'' year's entry
-- in [[Chinese calendar correspondence table]], as the Chinese New Year doesn't happen until Jan/Feb in
-- Gregorian years.
local sexagenaryYear1 = ( year - 4 ) % 60
local sexagenaryYear2 = ( year - 3 ) % 60
local heavenlyNum1 = (sexagenaryYear1 - 1) % 10 + 1 -- amod, since lua arrays are 1-indexed
local heavenlyNum2 = (sexagenaryYear2 - 1) % 10 + 1
local earthlyNum1 = (sexagenaryYear1 - 1) % 12 + 1
local earthlyNum2 = (sexagenaryYear2 - 1) % 12 + 1
-- Get the data tables for each permutation.
local heavenlyTable1 = heavenlyStems[ heavenlyNum1 ]
local heavenlyTable2 = heavenlyStems[ heavenlyNum2 ]
local earthlyTable1 = earthlyBranches[ earthlyNum1 ]
local earthlyTable2 = earthlyBranches[ earthlyNum2 ]
-- Work out the continously-numbered year. (See [[Chinese calendar#Continuously numbered years]].)
local year1 = year + 2697
local year2 = year + 2698
local year1Alt = year1 - 207
local year2Alt = year2 - 207
-- Format any negative numbers.
year1 = formatNegative( tostring( year1 ) )
year2 = formatNegative( tostring( year2 ) )
year1Alt = formatNegative( tostring( year1Alt ) )
year2Alt = formatNegative( tostring( year2Alt ) )
-- Return all of that data in a (hopefully) reader-friendly format.
chinese:setYear( string.format(
[=[[[Sexagenary cycle|%s%s]]年 (%s %s)<br />%s or %s<br /> ''— to —''<br />%s%s年 (%s %s)<br />%s or %s]=],
heavenlyTable1[ 1 ],
earthlyTable1[ 1 ],
heavenlyTable1[ 2 ],
earthlyTable1[ 2 ],
year1,
year1Alt,
heavenlyTable2[ 1 ],
earthlyTable2[ 1 ],
heavenlyTable2[ 2 ],
earthlyTable2[ 2 ],
year2,
year2Alt
) )
box:addCalendar( chinese )
----------------------------------------------------------------------
-- Coptic calendar
----------------------------------------------------------------------
local coptic = calendar:new()
coptic:setLink( 'Coptic calendar' )
coptic:setYearRange( year - 284, year - 283 )
box:addCalendar( coptic )
----------------------------------------------------------------------
-- Discordian calendar
----------------------------------------------------------------------
local discordian = calendar:new()
discordian:setLink( 'Discordian calendar' )
discordian:setYear( year + 1166 )
box:addCalendar( discordian )
----------------------------------------------------------------------
-- Ethiopian calendar
----------------------------------------------------------------------
local ethiopian = calendar:new()
ethiopian:setLink( 'Ethiopian calendar' )
ethiopian:setYearRange( year - 8, year - 7 )
box:addCalendar( ethiopian )
----------------------------------------------------------------------
-- Hebrew calendar
----------------------------------------------------------------------
local hebrew = calendar:new()
hebrew:setLink( 'Hebrew calendar' )
hebrew:setYearRange( year + 3760, year + 3761 )
box:addCalendar( hebrew )
----------------------------------------------------------------------
-- Hindu calendars
----------------------------------------------------------------------
local hindu = calendarGroup:new{ heading = '[[Hindu calendar]]s' }
-- Vikram Samvat
local vikramSamvat = calendar:new()
vikramSamvat:setLink( 'Vikram Samvat' )
vikramSamvat:setYearRange( year + 56, year + 57 )
hindu:addCalendar( vikramSamvat )
-- Shaka Samvat
local shakaSamvat = calendar:new()
shakaSamvat:setLink( 'Indian national calendar', 'Shaka Samvat' )
if year >= 78 then
shakaSamvat:setYearRange( year - 79, year - 78 )
end
hindu:addCalendar( shakaSamvat )
-- Kali Yuga
local kaliYuga = calendar:new()
kaliYuga:setLink( 'Kali Yuga' ) -- use italics
kaliYuga:setYearRange( year + 3100, year + 3101 )
hindu:addCalendar( kaliYuga )
box:addCalendarGroup( hindu )
----------------------------------------------------------------------
-- Holocene calendar
----------------------------------------------------------------------
local holocene = calendar:new()
holocene:setLink( 'Holocene calendar' )
holocene:setYear( year + 10000 )
box:addCalendar( holocene )
----------------------------------------------------------------------
-- Igbo calendar
----------------------------------------------------------------------
-- In the old template this was a calendar group with just one calendar; intentionally adding this as a single
-- calendar here, as the previous behaviour looked like a mistake.
if year >= 1000 then
local igbo = calendar:new()
igbo:setLink( 'Igbo calendar' )
igbo:setYearRange( year - 1000, year - 999 )
box:addCalendar( igbo )
end
----------------------------------------------------------------------
-- Iranian calendar
----------------------------------------------------------------------
local iranian = calendar:new()
iranian:setLink( 'Iranian calendars', 'Iranian calendar' )
if year - 621 > 0 then
iranian:setYearRange( year - 622, year - 621 )
else
iranian:setYear( string.format( '%d BP – %d BP', 622 - year, 621 - year ) )
end
box:addCalendar( iranian )
----------------------------------------------------------------------
-- Islamic calendar
----------------------------------------------------------------------
local islamic = calendar:new()
islamic:setLink( 'Islamic calendar' )
local islamicMult = 1.030684 -- the factor to multiply by
local islamicSub = 621.5643 -- the factor to subtract by
if year - 621 > 0 then
local year1 = math.floor( islamicMult * ( year - islamicSub ) )
local year2 = math.floor( islamicMult * ( year - islamicSub + 1 ) )
islamic:setYearRange( year1, year2 )
else
local year1 = math.ceil( -islamicMult * ( year - islamicSub ) )
local year2 = math.ceil( -islamicMult * ( year - islamicSub + 1 ) )
islamic:setYear( string.format( '%d BH – %d BH', year1, year2 ) )
end
box:addCalendar( islamic )
----------------------------------------------------------------------
-- Japanese calendar
-- starting 600
----------------------------------------------------------------------
if year >= 600 then
local japanese = calendar:new()
japanese:setLink( 'Japanese calendar' )
japanese.thisEra = japaneseEra:new{ year = year }
if japanese.thisEra then
local japaneseYearText = {}
japanese.oldEra = japanese.thisEra:getOldEra()
if japanese.oldEra and japanese.oldEra.eraYear and japanese.thisEra.article ~= japanese.oldEra.article then
japanese.oldText = string.format( '%s %d', japanese.oldEra.link, japanese.oldEra.eraYear )
table.insert( japaneseYearText, japanese.oldText )
table.insert( japaneseYearText, ' / ' )
end
if japanese.thisEra.eraYear then
table.insert( japaneseYearText, string.format( '%s %d', japanese.thisEra.link, japanese.thisEra.eraYear ) )
end
table.insert( japaneseYearText, string.format( '<br />(%s%s年)', japanese.thisEra.kanji, japanese.thisEra.eraYearKanji ) )
japanese:setYear( table.concat( japaneseYearText ) )
end
box:addCalendar( japanese )
end
----------------------------------------------------------------------
-- Javanese calendar
----------------------------------------------------------------------
local javanese = calendar:new()
javanese:setLink( 'Javanese calendar' )
local javaneseMult = 1.030684 -- the factor to multiply by
local javaneseSub = 124.9 -- the factor to subtract by
if year - 124 > 0 then
local year1 = math.floor( javaneseMult * ( year - javaneseSub ) )
local year2 = math.floor( javaneseMult * ( year - javaneseSub + 1 ) )
javanese:setYearRange( year1, year2 )
else
local year1 = math.ceil( -javaneseMult * ( year - javaneseSub ) )
local year2 = math.ceil( -javaneseMult * ( year - javaneseSub + 1 ) )
end
box:addCalendar( javanese )
----------------------------------------------------------------------
-- Juche calendar
-- displays only after 1910
----------------------------------------------------------------------
if year >= 1910 then
local juche = calendar:new()
juche:setLink( 'Juche calendar' )
if year > 1911 then
juche:setYear( year - 1911 )
end
box:addCalendar( juche )
end
----------------------------------------------------------------------
-- Julian calendar
----------------------------------------------------------------------
local julian = calendar:new()
julian:setLink( 'Julian calendar' )
if year >= -45 and year < 1582 then
julian:setYear(gregorian.year)
elseif year >= 1582 then
local diff = math.floor(year/100-2) - math.floor(year/400)
if year % 100 == 0 and year % 400 ~= 0 then
julian:setYear('Gregorian minus ' .. diff-1 .. ' or ' .. diff .. ' days')
else
julian:setYear('Gregorian minus ' .. diff .. ' days')
end
end
box:addCalendar( julian )
----------------------------------------------------------------------
-- Korean calendar
----------------------------------------------------------------------
local korean = calendar:new()
korean:setLink( 'Korean calendar' )
korean:setYear( year + 2333 )
box:addCalendar( korean )
----------------------------------------------------------------------
-- Minguo calendar
----------------------------------------------------------------------
local minguo = calendar:new()
minguo:setLink( 'Minguo calendar' )
if year > 1949 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Taiwan|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
elseif year > 1911 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Republic of China (1912–1949)|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
else
local minguoYear = 1911 - year + 1
minguo:setYear( string.format( '%d before [[Republic of China (1912–1949)|ROC]]<br />民前%d年', minguoYear, minguoYear ) )
end
box:addCalendar( minguo )
----------------------------------------------------------------------
-- Nanakshahi calendar
----------------------------------------------------------------------
local nanakshahi = calendar:new()
nanakshahi:setLink( 'Nanakshahi calendar' )
nanakshahi:setYear( year - 1468 )
box:addCalendar( nanakshahi )
----------------------------------------------------------------------
-- Seleucid era
-- displays from 312 BC until 1200 AD
----------------------------------------------------------------------
if year >= -311 and year < 1200 then
local seleucid = calendar:new()
seleucid:setLink( 'Seleucid era' )
local addtext = string.format( '[[Anno Graecorum|AG]]')
seleucid:setYearCouple( year + 311, year + 312, addtext )
box:addCalendar( seleucid )
end
----------------------------------------------------------------------
-- Thai solar calendar
----------------------------------------------------------------------
local thai = calendar:new()
thai:setLink( 'Thai solar calendar' )
if year >= 1941 then
thai:setYear( year + 543 )
else -- if year >= 1912 or year <= 1887 -- year started in March/April
thai:setYearRange( year + 542, year + 543 )
-- else -- Rattanakosin Era, 1888?-1912
-- thai:setYear( string.format( '%d – %d ([[Rattanakosin Kingdom|Rattanakosin Era]])', year - 1782 , year - 1781 ) )
end
box:addCalendar( thai )
----------------------------------------------------------------------
-- Tibetan calendar
----------------------------------------------------------------------
local tibetan = calendar:new()
tibetan:setLink( 'Tibetan calendar' )
-- Define the information for the "heavenly stems" and "earthly branches" year cycles.
-- See [[Tibetan calendar#Years]] for information.
local heavenlyStems = {
{ 'ཤིང་ཕོ་', 'male Wood' }, -- 1
{ 'ཤིང་མོ་', 'female Wood' }, -- 2
{ 'མེ་ཕོ་', 'male Fire' }, -- 3
{ 'མེ་མོ་', 'female Fire' }, -- 4
{ 'ས་ཕོ་', 'male Earth' }, -- 5
{ 'ས་མོ་', 'female Earth' }, -- 6
{ 'ལྕགས་ཕོ་', 'male Iron' }, -- 7
{ 'ལྕགས་མོ་', 'female Iron' }, -- 8
{ 'ཆུ་ཕོ་', 'male Water' }, -- 9
{ 'ཆུ་མོ་', 'female Water' } -- 10
}
local earthlyBranches = {
{ 'བྱི་བ་', '[[Rat (zodiac)|Rat]]' }, -- 1
{ 'གླང་', '[[Ox (zodiac)|Ox]]' }, -- 2
{ 'སྟག་', '[[Tiger (zodiac)|Tiger]]' }, -- 3
{ 'ཡོས་', '[[Rabbit (zodiac)|Hare]]' }, -- 4
{ 'འབྲུག་', '[[Dragon (zodiac)|Dragon]]' }, -- 5
{ 'སྦྲུལ་', '[[Snake (zodiac)|Snake]]' }, -- 6
{ 'རྟ་', '[[Horse (zodiac)|Horse]]' }, -- 7
{ 'ལུག་', '[[Goat (zodiac)|Sheep]]' }, -- 8
{ 'སྤྲེ་', '[[Monkey (zodiac)|Monkey]]' }, -- 9
{ 'བྱ་', '[[Rooster (zodiac)|Bird]]' }, -- 10
{ 'ཁྱི་', '[[Dog (zodiac)|Dog]]' }, -- 11
{ 'ཕག་', '[[Pig (zodiac)|Boar]]' } -- 12
}
-- Calculate the cycle numbers from the year. The first sexagenary year corresponds to the ''previous'' year's entry
-- in [[Tibetan calendar correspondence table]], as the Tibetan New Year doesn't happen until Feb/Mar in
-- Gregorian years.
local sexagenaryYear1 = ( year - 4 ) % 60
local sexagenaryYear2 = ( year - 3 ) % 60
local heavenlyNum1 = (sexagenaryYear1 - 1) % 10 + 1 -- amod, since lua arrays are 1-indexed
local heavenlyNum2 = (sexagenaryYear2 - 1) % 10 + 1
local earthlyNum1 = (sexagenaryYear1 - 1) % 12 + 1
local earthlyNum2 = (sexagenaryYear2 - 1) % 12 + 1
-- Get the data tables for each permutation.
local heavenlyTable1 = heavenlyStems[ heavenlyNum1 ]
local heavenlyTable2 = heavenlyStems[ heavenlyNum2 ]
local earthlyTable1 = earthlyBranches[ earthlyNum1 ]
local earthlyTable2 = earthlyBranches[ earthlyNum2 ]
-- Work out the continously-numbered year. (See [[Tibetan calendar#Years with cardinal numbers]].)
local year1 = year + 126
local year2 = year + 127
local year1Alt1 = year1 - 381
local year1Alt2 = year1 - 1153
local year2Alt1 = year2 - 381
local year2Alt2 = year2 - 1153
-- Format any negative numbers.
year1 = formatNegative( tostring( year1 ) )
year2 = formatNegative( tostring( year2 ) )
year1Alt1 = formatNegative( tostring( year1Alt1 ) )
year1Alt2 = formatNegative( tostring( year1Alt2 ) )
year2Alt1 = formatNegative( tostring( year2Alt1 ) )
year2Alt2 = formatNegative( tostring( year2Alt2 ) )
-- Return all of that data in a (hopefully) reader-friendly format.
tibetan:setYear( string.format(
[=[%s%sལོ་<br />(%s-%s)<br />%s or %s or %s<br /> ''— to —''<br />%s%sལོ་<br />(%s-%s)<br />%s or %s or %s]=],
heavenlyTable1[ 1 ],
earthlyTable1[ 1 ],
heavenlyTable1[ 2 ],
earthlyTable1[ 2 ],
year1,
year1Alt1,
year1Alt2,
heavenlyTable2[ 1 ],
earthlyTable2[ 1 ],
heavenlyTable2[ 2 ],
earthlyTable2[ 2 ],
year2,
year2Alt1,
year2Alt2
) )
box:addCalendar( tibetan )
----------------------------------------------------------------------
-- Unix time
----------------------------------------------------------------------
local unix = calendar:new()
local function getUnixTime( year )
if year < 1970 then return end
local noError, unixTime = pcall( lang.formatDate, lang, 'U', '1 Jan ' .. tostring( year ) )
if not noError or noError and not unixTime then return end
unixTime = tonumber( unixTime )
if unixTime and unixTime >= 0 then
return unixTime - 1
end
end
unix.thisYear = getUnixTime( year )
unix.nextYear = getUnixTime( year + 1 )
if unix.thisYear and unix.nextYear then
unix:setLink( 'Unix time' )
unix:setYear( (unix.thisYear + 1) .. " – " .. unix.nextYear )
end
box:addCalendar( unix )
return box:export()
end
--------------------------------------------------------------------
-- Process arguments from #invoke
--------------------------------------------------------------------
local p = {}
function p.main( frame )
-- Process the arguments and pass them to the box-building function.
local args = getArgs( frame )
-- Pass year argument with 'year' parameter or without any name but first argument
args.year = args.year or args[1]
return makeCalendarBox( args )
end
return p
4c8tvv2atvgohxwohid6br3ab7fvswp
Module:InfoboxBuilder
828
33054
153300
2026-03-22T18:00:27Z
en>MusikBot II
0
Protected "[[Module:InfoboxBuilder]]": [[Wikipedia:High-risk templates|High-risk template or module]]: 2722 transclusions ([[User:MusikBot II/TemplateProtector|more info]]) ([Edit=Require extended confirmed access] (indefinite) [Move=Require extended confirmed access] (indefinite))
153300
Scribunto
text/plain
local infobox = require("Module:Infobox")
local InfoboxBuilder = {}
-- Create a new InfoboxBuilder
function InfoboxBuilder.new ()
-- store parameters and counters
local obj = {
params = {},
iter_subheader = 1,
iter_image = 1,
iter_row = 1
}
-- Use InfoboxBuilder:__set as a "fallback" function,
-- Any call InfoboxBuilder:`x`(`y`) where InfoboxBuilder:`x` does not exist is equivalent to calling InfoboxBuilder:__set(`x`, `y`)
return setmetatable(obj, {
__index = function(tbl, key)
-- First, return any defined InfoboxBuilder:`x`
local val = InfoboxBuilder[key]
if val ~= nil then
return val
end
-- Otherwise, return a wrapper for InfoboxBuilder:__set
return function ( self, val )
return self:__set(key, val)
end
end
})
end
-- Set a parameter by name (for internal use)
function InfoboxBuilder:__set ( key, val )
self.params[key] = val
return self
end
-- Special handling for 'italic title' since it has a space
-- 'italicTitle' -> 'italic title'
function InfoboxBuilder:italicTitle ( italicTitle )
self.params["italic title"] = italicTitle
return self
end
-- Add a subheader to the infobox
-- Supports being called as :subheader("subheader", "subheaderstyle", "subheaderrowclass") and as
-- :subheader{subheader="subheader", subheaderstyle="subheaderstyle", subheaderrowclass="subheaderrowclass"}
function InfoboxBuilder:subheader ( subheader, subheaderstyle, subheaderrowclass )
-- support positional and named arguments
if type(subheader) == "table" then
return self:subheader(
subheader["subheader"],
subheader["subheaderstyle"],
subheader["subheaderrowclass"]
)
end
self.params["subheader" .. self.iter_subheader] = subheader
self.params["subheaderstyle" .. self.iter_subheader] = subheaderstyle
self.params["subheaderrowclass" .. self.iter_subheader] = subheaderrowclass
self.iter_subheader = self.iter_subheader + 1
return self
end
-- Add an image to the infobox
-- Supports both positional and named arguments just like :subheader
function InfoboxBuilder:image ( image, caption, imagerowclass )
-- support positional and named arguments
if type(image) == "table" then
return self:image(
image["image"],
image["caption"],
image["imagerowclass"]
)
end
self.params["image" .. self.iter_image] = image
self.params["caption" .. self.iter_image] = caption
self.params["imagerowclass" .. self.iter_image] = imagerowclass
self.iter_image = self.iter_image + 1
return self
end
-- Add a header row to the infobox
-- Supports both positional and named arguments just like :subheader
function InfoboxBuilder:header ( header, rowclass, rowstyle )
-- support positional and named arguments
if type(header) == "table" then
return self:header(
header["header"],
header["rowclass"],
header["rowstyle"]
)
end
self.params["header" .. self.iter_row] = header
self.params["rowclass" .. self.iter_row] = rowclass
self.params["rowstyle" .. self.iter_row] = rowstyle
self.iter_row = self.iter_row + 1
return self
end
-- Add a row to the infobox
-- Supports both positional and named arguments just like :subheader
function InfoboxBuilder:row ( data, label, class, rowclass, rowstyle, rowcellstyle )
-- support positional and named arguments
if type(data) == "table" then
return self:row(
data["data"],
data["label"],
data["class"],
data["rowclass"],
data["rowstyle"],
data["rowcellstyle"]
)
end
self.params["data" .. self.iter_row] = data
self.params["label" .. self.iter_row] = label
self.params["class" .. self.iter_row] = class
self.params["rowclass" .. self.iter_row] = rowclass
self.params["rowstyle" .. self.iter_row] = rowstyle
self.params["rowcellstyle" .. self.iter_row] = rowcellstyle
self.iter_row = self.iter_row + 1
return self
end
-- Build the infobox
-- Equivalent to calling require("Module:Infobox").infobox{ ... } where `...` is all arguments previously provided
function InfoboxBuilder:build ()
return infobox.infobox(self.params)
end
return {
InfoboxBuilder = InfoboxBuilder
}
6hdrvqm5xiiv6x2ve5qqi652f52wd6b
153301
153300
2026-10-06T18:11:42Z
511KeV
8268
1 revision imported from [[:en:Module:InfoboxBuilder]]: Needed locally
153300
Scribunto
text/plain
local infobox = require("Module:Infobox")
local InfoboxBuilder = {}
-- Create a new InfoboxBuilder
function InfoboxBuilder.new ()
-- store parameters and counters
local obj = {
params = {},
iter_subheader = 1,
iter_image = 1,
iter_row = 1
}
-- Use InfoboxBuilder:__set as a "fallback" function,
-- Any call InfoboxBuilder:`x`(`y`) where InfoboxBuilder:`x` does not exist is equivalent to calling InfoboxBuilder:__set(`x`, `y`)
return setmetatable(obj, {
__index = function(tbl, key)
-- First, return any defined InfoboxBuilder:`x`
local val = InfoboxBuilder[key]
if val ~= nil then
return val
end
-- Otherwise, return a wrapper for InfoboxBuilder:__set
return function ( self, val )
return self:__set(key, val)
end
end
})
end
-- Set a parameter by name (for internal use)
function InfoboxBuilder:__set ( key, val )
self.params[key] = val
return self
end
-- Special handling for 'italic title' since it has a space
-- 'italicTitle' -> 'italic title'
function InfoboxBuilder:italicTitle ( italicTitle )
self.params["italic title"] = italicTitle
return self
end
-- Add a subheader to the infobox
-- Supports being called as :subheader("subheader", "subheaderstyle", "subheaderrowclass") and as
-- :subheader{subheader="subheader", subheaderstyle="subheaderstyle", subheaderrowclass="subheaderrowclass"}
function InfoboxBuilder:subheader ( subheader, subheaderstyle, subheaderrowclass )
-- support positional and named arguments
if type(subheader) == "table" then
return self:subheader(
subheader["subheader"],
subheader["subheaderstyle"],
subheader["subheaderrowclass"]
)
end
self.params["subheader" .. self.iter_subheader] = subheader
self.params["subheaderstyle" .. self.iter_subheader] = subheaderstyle
self.params["subheaderrowclass" .. self.iter_subheader] = subheaderrowclass
self.iter_subheader = self.iter_subheader + 1
return self
end
-- Add an image to the infobox
-- Supports both positional and named arguments just like :subheader
function InfoboxBuilder:image ( image, caption, imagerowclass )
-- support positional and named arguments
if type(image) == "table" then
return self:image(
image["image"],
image["caption"],
image["imagerowclass"]
)
end
self.params["image" .. self.iter_image] = image
self.params["caption" .. self.iter_image] = caption
self.params["imagerowclass" .. self.iter_image] = imagerowclass
self.iter_image = self.iter_image + 1
return self
end
-- Add a header row to the infobox
-- Supports both positional and named arguments just like :subheader
function InfoboxBuilder:header ( header, rowclass, rowstyle )
-- support positional and named arguments
if type(header) == "table" then
return self:header(
header["header"],
header["rowclass"],
header["rowstyle"]
)
end
self.params["header" .. self.iter_row] = header
self.params["rowclass" .. self.iter_row] = rowclass
self.params["rowstyle" .. self.iter_row] = rowstyle
self.iter_row = self.iter_row + 1
return self
end
-- Add a row to the infobox
-- Supports both positional and named arguments just like :subheader
function InfoboxBuilder:row ( data, label, class, rowclass, rowstyle, rowcellstyle )
-- support positional and named arguments
if type(data) == "table" then
return self:row(
data["data"],
data["label"],
data["class"],
data["rowclass"],
data["rowstyle"],
data["rowcellstyle"]
)
end
self.params["data" .. self.iter_row] = data
self.params["label" .. self.iter_row] = label
self.params["class" .. self.iter_row] = class
self.params["rowclass" .. self.iter_row] = rowclass
self.params["rowstyle" .. self.iter_row] = rowstyle
self.params["rowcellstyle" .. self.iter_row] = rowcellstyle
self.iter_row = self.iter_row + 1
return self
end
-- Build the infobox
-- Equivalent to calling require("Module:Infobox").infobox{ ... } where `...` is all arguments previously provided
function InfoboxBuilder:build ()
return infobox.infobox(self.params)
end
return {
InfoboxBuilder = InfoboxBuilder
}
6hdrvqm5xiiv6x2ve5qqi652f52wd6b
Module:Ancient Olympiads
828
33055
153302
2023-09-30T03:27:27Z
en>Pppery
0
Changed protection settings for "[[Module:Ancient Olympiads]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
153302
Scribunto
text/plain
local data = mw.loadData( 'Module:Ancient Olympiads/data' )
local lang = mw.language.getContentLanguage()
local TableTools = require('Module:TableTools')
local p = {}
function p._main( inputYear )
-- Convert the input to an integer if possible. Return "N/A" if the input could
-- not be converted, or if the converted input is too big or too small.
inputYear = tonumber( inputYear )
if not inputYear or inputYear > tonumber( lang:formatDate( 'Y' ) ) then
return "''N/A''"
end
local dataLength = TableTools.length(data)
-- Find the year in the data page and display the output.
for i = dataLength, 1, -1 do
local t = data[i]
if inputYear - 1 == t.year then
-- year of the Olympiad, test with = p._main( -495 )
-- The input year in the calendar is one after the expected (-775 for the year 776 BC). This is why all values need to be corrected by 1.
-- Year of Olympiad creates autolink to same page, therefore eliminated here
return string.format(
'%s [[Olympiad]] ([[%s|victor]][[Winner of the Stadion race|)¹]]',
t.numberOl, t.winner
)
end
if inputYear > t.year then
-- Years 2-4 of the Olympiad, test with = p._main( -494 ) etc.
-- It would be nice, if the string could be as follows:
-- '[[%s]] [[Olympiad]], [[%d BC|year %d]]',
-- t.numberOl, inputYear * - 1 + 1, inputYear - t.year
-- but unfortunately it links to the very same page and won't be displayed as a link but in bold.
return string.format(
'[[%s|%s]] [[Olympiad]], year %d',
t.yearBC, t.numberOl, inputYear - t.year
)
end
end
-- If input year is before 776 BC (-775), the year of the first Olympiad.
return string.format(
'%d before [[776 BC|1st]] [[Olympiad]]',
inputYear * -1 - 775
)
end
function p.main( frame )
local args = require( 'Module:Arguments' ).getArgs( frame, {
parentOnly = true
} )
return p._main( args[ 1 ] )
end
return p
17qopx2ym0hhya55kggl11clcwqq2b5
153303
153302
2026-10-06T18:12:01Z
511KeV
8268
1 revision imported from [[:en:Module:Ancient_Olympiads]]: Needed locally
153302
Scribunto
text/plain
local data = mw.loadData( 'Module:Ancient Olympiads/data' )
local lang = mw.language.getContentLanguage()
local TableTools = require('Module:TableTools')
local p = {}
function p._main( inputYear )
-- Convert the input to an integer if possible. Return "N/A" if the input could
-- not be converted, or if the converted input is too big or too small.
inputYear = tonumber( inputYear )
if not inputYear or inputYear > tonumber( lang:formatDate( 'Y' ) ) then
return "''N/A''"
end
local dataLength = TableTools.length(data)
-- Find the year in the data page and display the output.
for i = dataLength, 1, -1 do
local t = data[i]
if inputYear - 1 == t.year then
-- year of the Olympiad, test with = p._main( -495 )
-- The input year in the calendar is one after the expected (-775 for the year 776 BC). This is why all values need to be corrected by 1.
-- Year of Olympiad creates autolink to same page, therefore eliminated here
return string.format(
'%s [[Olympiad]] ([[%s|victor]][[Winner of the Stadion race|)¹]]',
t.numberOl, t.winner
)
end
if inputYear > t.year then
-- Years 2-4 of the Olympiad, test with = p._main( -494 ) etc.
-- It would be nice, if the string could be as follows:
-- '[[%s]] [[Olympiad]], [[%d BC|year %d]]',
-- t.numberOl, inputYear * - 1 + 1, inputYear - t.year
-- but unfortunately it links to the very same page and won't be displayed as a link but in bold.
return string.format(
'[[%s|%s]] [[Olympiad]], year %d',
t.yearBC, t.numberOl, inputYear - t.year
)
end
end
-- If input year is before 776 BC (-775), the year of the first Olympiad.
return string.format(
'%d before [[776 BC|1st]] [[Olympiad]]',
inputYear * -1 - 775
)
end
function p.main( frame )
local args = require( 'Module:Arguments' ).getArgs( frame, {
parentOnly = true
} )
return p._main( args[ 1 ] )
end
return p
17qopx2ym0hhya55kggl11clcwqq2b5
Module:Ancient Olympiads/data
828
33056
153305
2023-09-30T03:27:57Z
en>Pppery
0
Changed protection settings for "[[Module:Ancient Olympiads/data]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
153305
Scribunto
text/plain
-- This is the data for Module:Ancient Olympiads.
-- It stores the number and the first year of the Olympiad and the name of the victor in the stadion race with a link to his Wikipedia article.
return {
{
numberOl = '1st',
yearBC = '776 BC',
year = - 776,
winner = 'Coroebus of Elis'
},
{
numberOl = '2nd',
yearBC = '772 BC',
year = - 772,
winner = 'Antimachus of Elis'
},
{
numberOl = '3rd',
yearBC = '768 BC',
year = - 768,
winner = 'Androclus of Messenia'
},
{
numberOl = '4th',
yearBC = '764 BC',
year = - 764,
winner = 'Polychares of Messenia'
},
{
numberOl = '5th',
yearBC = '760 BC',
year = - 760,
winner = 'Aeschines of Elis'
},
{
numberOl = '6th',
yearBC = '756 BC',
year = - 756,
winner = 'Oebotas of Dyme'
},
{
numberOl = '7th',
yearBC = '752 BC',
year = - 752,
winner = 'Diocles of Messenia'
},
{
numberOl = '8th',
yearBC = '748 BC',
year = - 748,
winner = 'Anticles of Messenia'
},
{
numberOl = '9th',
yearBC = '744 BC',
year = - 744,
winner = 'Xenocles of Messenia'
},
{
numberOl = '10th',
yearBC = '740 BC',
year = - 740,
winner = 'Dotades of Messenia'
},
{
numberOl = '11th',
yearBC = '736 BC',
year = - 736,
winner = 'Leochares of Messenia'
},
{
numberOl = '12th',
yearBC = '732 BC',
year = - 732,
winner = 'Oxythemis of Coroneia'
},
{
numberOl = '13th',
yearBC = '728 BC',
year = - 728,
winner = 'Diocles of Corinth'
},
{
numberOl = '14th',
yearBC = '724 BC',
year = - 724,
winner = 'Desmon of Corinth'
},
{
numberOl = '15th',
yearBC = '720 BC',
year = - 720,
winner = 'Orsippus of Megara'
},
{
numberOl = '16th',
yearBC = '716 BC',
year = - 716,
winner = 'Pythagoras of Laconia'
},
{
numberOl = '17th',
yearBC = '712 BC',
year = - 712,
winner = 'Polus of Epidaurus'
},
{
numberOl = '18th',
yearBC = '708 BC',
year = - 708,
winner = 'Tellis of Sicyon'
},
{
numberOl = '19th',
yearBC = '704 BC',
year = - 704,
winner = 'Menus of Megara'
},
{
numberOl = '20th',
yearBC = '700 BC',
year = - 700,
winner = 'Atheradas of Laconia'
},
{
numberOl = '21st',
yearBC = '696 BC',
year = - 696,
winner = 'Pantacles of Athens'
},
{
numberOl = '22nd',
yearBC = '692 BC',
year = - 692,
winner = 'Pantacles of Athens'
},
{
numberOl = '23rd',
yearBC = '688 BC',
year = - 688,
winner = 'Icarius of Hyperesia'
},
{
numberOl = '24th',
yearBC = '684 BC',
year = - 684,
winner = 'Cleoptolemus of Laconia'
},
{
numberOl = '25th',
yearBC = '680 BC',
year = - 680,
winner = 'Thalpis of Laconia'
},
{
numberOl = '26th',
yearBC = '676 BC',
year = - 676,
winner = 'Callisthenes of Laconia'
},
{
numberOl = '27th',
yearBC = '672 BC',
year = - 672,
winner = 'Eurybus of Athens'
},
{
numberOl = '28th',
yearBC = '668 BC',
year = - 668,
winner = 'Charmis of Laconia'
},
{
numberOl = '29th',
yearBC = '664 BC',
year = - 664,
winner = 'Chionis of Laconia'
},
{
numberOl = '30th',
yearBC = '660 BC',
year = - 660,
winner = 'Chionis of Laconia'
},
{
numberOl = '31st',
yearBC = '656 BC',
year = - 656,
winner = 'Chionis of Laconia'
},
{
numberOl = '32nd',
yearBC = '652 BC',
year = - 652,
winner = 'Cratinus of Megara'
},
{
numberOl = '33rd',
yearBC = '648 BC',
year = - 648,
winner = 'Gylis of Laconia'
},
{
numberOl = '34th',
yearBC = '644 BC',
year = - 644,
winner = 'Stomas of Athens'
},
{
numberOl = '35th',
yearBC = '640 BC',
year = - 640,
winner = 'Sphaerus of Laconia'
},
{
numberOl = '36th',
yearBC = '636 BC',
year = - 636,
winner = 'Phrynon of Athens'
},
{
numberOl = '37th',
yearBC = '632 BC',
year = - 632,
winner = 'Eurycleidas of Laconia'
},
{
numberOl = '38th',
yearBC = '628 BC',
year = - 628,
winner = 'Olyntheus of Laconia'
},
{
numberOl = '39th',
yearBC = '624 BC',
year = - 624,
winner = 'Rhipsolaus of Laconia'
},
{
numberOl = '40th',
yearBC = '620 BC',
year = - 620,
winner = 'Olyntheus of Laconia'
},
{
numberOl = '41st',
yearBC = '616 BC',
year = - 616,
winner = 'Cleondas of Thebes'
},
{
numberOl = '42nd',
yearBC = '612 BC',
year = - 612,
winner = 'Lycotas of Laconia'
},
{
numberOl = '43rd',
yearBC = '608 BC',
year = - 608,
winner = 'Cleon of Epidaurus'
},
{
numberOl = '44th',
yearBC = '604 BC',
year = - 604,
winner = 'Gelon of Laconia'
},
{
numberOl = '45th',
yearBC = '600 BC',
year = - 600,
winner = 'Anticrates of Epidaurus'
},
{
numberOl = '46th',
yearBC = '596 BC',
year = - 596,
winner = 'Chrysamaxus of Laconia'
},
{
numberOl = '47th',
yearBC = '592 BC',
year = - 592,
winner = 'Eurycles of Laconia'
},
{
numberOl = '48th',
yearBC = '588 BC',
year = - 588,
winner = 'Glycon of Croton'
},
{
numberOl = '49th',
yearBC = '584 BC',
year = - 584,
winner = 'Lycinus of Croton'
},
{
numberOl = '50th',
yearBC = '580 BC',
year = - 580,
winner = 'Epitelidas of Laconia'
},
{
numberOl = '51st',
yearBC = '576 BC',
year = - 576,
winner = 'Eratosthenes of Croton'
},
{
numberOl = '52nd',
yearBC = '572 BC',
year = - 572,
winner = 'Agis of Elis'
},
{
numberOl = '53rd',
yearBC = '568 BC',
year = - 568,
winner = 'Hagnon of Peparethus'
},
{
numberOl = '54th',
yearBC = '564 BC',
year = - 564,
winner = 'Hippostratus of Croton'
},
{
numberOl = '55th',
yearBC = '560 BC',
year = - 560,
winner = 'Hippostratus of Croton'
},
{
numberOl = '56th',
yearBC = '556 BC',
year = - 556,
winner = 'Phaedrus of Pharsalus'
},
{
numberOl = '57th',
yearBC = '552 BC',
year = - 552,
winner = 'Ladromus of Laconia'
},
{
numberOl = '58th',
yearBC = '548 BC',
year = - 548,
winner = 'Diognetus of Croton'
},
{
numberOl = '59th',
yearBC = '544 BC',
year = - 544,
winner = 'Archilochus of Corcyra'
},
{
numberOl = '60th',
yearBC = '540 BC',
year = - 540,
winner = 'Apellaeus of Elis'
},
{
numberOl = '61st',
yearBC = '536 BC',
year = - 536,
winner = 'Agatharchus of Corcyra'
},
{
numberOl = '62nd',
yearBC = '532 BC',
year = - 532,
winner = 'Eryxias of Chalcis'
},
{
numberOl = '63rd',
yearBC = '528 BC',
year = - 528,
winner = 'Parmenides of Camarina'
},
{
numberOl = '64th',
yearBC = '524 BC',
year = - 524,
winner = 'Menander of Thessaly'
},
{
numberOl = '65th',
yearBC = '520 BC',
year = - 520,
winner = 'Anochas of Tarentum'
},
{
numberOl = '66th',
yearBC = '516 BC',
year = - 516,
winner = 'Ischyrus of Himera'
},
{
numberOl = '67th',
yearBC = '512 BC',
year = - 512,
winner = 'Phanas of Pellene'
},
{
numberOl = '68th',
yearBC = '508 BC',
year = - 508,
winner = 'Isomachus of Croton'
},
{
numberOl = '69th',
yearBC = '504 BC',
year = - 504,
winner = 'Isomachus of Croton'
},
{
numberOl = '70th',
yearBC = '500 BC',
year = - 500,
winner = 'Nicasias of Opus'
},
{
numberOl = '71st',
yearBC = '496 BC',
year = - 496,
winner = 'Tisicrates of Croton'
},
{
numberOl = '72nd',
yearBC = '492 BC',
year = - 492,
winner = 'Tisicrates of Croton'
},
{
numberOl = '73rd',
yearBC = '488 BC',
year = - 488,
winner = 'Astyalus of Croton'
},
{
numberOl = '74th',
yearBC = '484 BC',
year = - 484,
winner = 'Astyalus of Croton'
},
{
numberOl = '75th',
yearBC = '480 BC',
year = - 480,
winner = 'Astyalus of Croton'
},
{
numberOl = '76th',
yearBC = '476 BC',
year = - 476,
winner = 'Scamander of Mytilene'
},
{
numberOl = '77th',
yearBC = '472 BC',
year = - 472,
winner = 'Dandes of Argos'
},
{
numberOl = '78th',
yearBC = '468 BC',
year = - 468,
winner = 'Parmenides of Poseidonia'
},
{
numberOl = '79th',
yearBC = '464 BC',
year = - 464,
winner = 'Xenophon of Corinth'
},
{
numberOl = '80th',
yearBC = '460 BC',
year = - 460,
winner = 'Torymmas of Thessaly'
},
{
numberOl = '81st',
yearBC = '456 BC',
year = - 456,
winner = 'Polymnastus of Cyrene'
},
{
numberOl = '82nd',
yearBC = '452 BC',
year = - 452,
winner = 'Lycus of Larissa'
},
{
numberOl = '83rd',
yearBC = '448 BC',
year = - 448,
winner = 'Crisson of Himera'
},
{
numberOl = '84th',
yearBC = '444 BC',
year = - 444,
winner = 'Crisson of Himera'
},
{
numberOl = '85th',
yearBC = '440 BC',
year = - 440,
winner = 'Crisson of Himera'
},
{
numberOl = '86th',
yearBC = '436 BC',
year = - 436,
winner = 'Theopompus of Thessaly'
},
{
numberOl = '87th',
yearBC = '432 BC',
year = - 432,
winner = 'Sophron of Ambracia'
},
{
numberOl = '88th',
yearBC = '428 BC',
year = - 428,
winner = 'Symmachus of Messenia'
},
{
numberOl = '89th',
yearBC = '424 BC',
year = - 424,
winner = 'Symmachus of Messenia'
},
{
numberOl = '90th',
yearBC = '420 BC',
year = - 420,
winner = 'Hyperbius of Syracuse'
},
{
numberOl = '91st',
yearBC = '416 BC',
year = - 416,
winner = 'Exagentus of Acragas'
},
{
numberOl = '92nd',
yearBC = '412 BC',
year = - 412,
winner = 'Exagentus of Acragas'
},
{
numberOl = '93rd',
yearBC = '408 BC',
year = - 408,
winner = 'Eubatus of Cyrene'
},
{
numberOl = '94th',
yearBC = '404 BC',
year = - 404,
winner = 'Crocinas of Larissa'
},
{
numberOl = '95th',
yearBC = '400 BC',
year = - 400,
winner = 'Minon of Athens'
},
{
numberOl = '96th',
yearBC = '396 BC',
year = - 396,
winner = 'Eupolemus of Elis'
},
{
numberOl = '97th',
yearBC = '392 BC',
year = - 392,
winner = 'Terinaeus'
},
{
numberOl = '98th',
yearBC = '388 BC',
year = - 388,
winner = 'Sosippus of Delphi'
},
{
numberOl = '99th',
yearBC = '384 BC',
year = - 384,
winner = 'Dicon of Syracuse'
},
{
numberOl = '100th',
yearBC = '380 BC',
year = - 380,
winner = 'Dionysodorus of Tarentum'
},
{
numberOl = '101st',
yearBC = '376 BC',
year = - 376,
winner = 'Damon of Thurii'
},
{
numberOl = '102nd',
yearBC = '372 BC',
year = - 372,
winner = 'Damon of Thurii'
},
{
numberOl = '103rd',
yearBC = '368 BC',
year = - 368,
winner = 'Pythostratus of Ephesus'
},
{
numberOl = '104th',
yearBC = '364 BC',
year = - 364,
winner = 'Phocides of Athens'
},
{
numberOl = '105th',
yearBC = '360 BC',
year = - 360,
winner = 'Porus of Cyrene'
},
{
numberOl = '106th',
yearBC = '356 BC',
year = - 356,
winner = 'Porus of Cyrene'
},
{
numberOl = '107th',
yearBC = '352 BC',
year = - 352,
winner = 'Micrinas of Tarentum'
},
{
numberOl = '108th',
yearBC = '348 BC',
year = - 348,
winner = 'Polycles of Cyrene'
},
{
numberOl = '109th',
yearBC = '344 BC',
year = - 344,
winner = 'Aristolochus of Athens'
},
{
numberOl = '110th',
yearBC = '340 BC',
year = - 340,
winner = 'Anticles of Athens'
},
{
numberOl = '111th',
yearBC = '336 BC',
year = - 336,
winner = 'Cleomantis of Cleitor'
},
{
numberOl = '112th',
yearBC = '332 BC',
year = - 332,
winner = 'Eurylas of Chalcis'
},
{
numberOl = '113th',
yearBC = '328 BC',
year = - 328,
winner = 'Cliton of Macedonia'
},
{
numberOl = '114th',
yearBC = '324 BC',
year = - 324,
winner = 'Micinas of Rhodes'
},
{
numberOl = '115th',
yearBC = '320 BC',
year = - 320,
winner = 'Damasias of Amphipolis'
},
{
numberOl = '116th',
yearBC = '316 BC',
year = - 316,
winner = 'Demosthenes of Laconia'
},
{
numberOl = '117th',
yearBC = '312 BC',
year = - 312,
winner = 'Parmenides of Mytilene'
},
{
numberOl = '118th',
yearBC = '308 BC',
year = - 308,
winner = 'Andromenes of Corinth'
},
{
numberOl = '119th',
yearBC = '304 BC',
year = - 304,
winner = 'Andromenes of Corinth'
},
{
numberOl = '120th',
yearBC = '300 BC',
year = - 300,
winner = 'Pythagoras of Magnesia-on-Maeander'
},
{
numberOl = '121st',
yearBC = '296 BC',
year = - 296,
winner = 'Pythagoras of Magnesia-on-Maeander'
},
{
numberOl = '122nd',
yearBC = '292 BC',
year = - 292,
winner = 'Antigonus of Macedonia'
},
{
numberOl = '123rd',
yearBC = '288 BC',
year = - 288,
winner = 'Antigonus of Macedonia' },
{
numberOl = '124th',
yearBC = '284 BC',
year = - 284,
winner = 'Philomelus of Pharsalus' },
{
numberOl = '125th',
yearBC = '280 BC',
year = - 280,
winner = 'Ladas of Aegium' },
{
numberOl = '126th',
yearBC = '276 BC',
year = - 276,
winner = 'Idaeus or Nicator of Cyrene'
},
{
numberOl = '127th',
yearBC = '272 BC',
year = - 272,
winner = 'Perigenes of Alexandria'
},
{
numberOl = '128th',
yearBC = '268 BC',
year = - 268,
winner = 'Seleucus of Macedonia'
},
{
numberOl = '129th',
yearBC = '264 BC',
year = - 264,
winner = 'Philinus of Cos (athlete)'
},
{
numberOl = '130th',
yearBC = '260 BC',
year = - 260,
winner = 'Philinus of Cos (athlete)'
},
{
numberOl = '131st',
yearBC = '256 BC',
year = - 256,
winner = 'Ammonius of Alexandria (athlete)'
},
{
numberOl = '132nd',
yearBC = '252 BC',
year = - 252,
winner = 'Xenophanes of Amphissa'
},
{
numberOl = '133rd',
yearBC = '248 BC',
year = - 248,
winner = 'Simylus of Neapolis'
},
{
numberOl = '134th',
yearBC = '244 BC',
year = - 244,
winner = 'Alcides of Laconia'
},
{
numberOl = '135th',
yearBC = '240 BC',
year = - 240,
winner = 'Eraton of Aetolia'
},
{
numberOl = '136th',
yearBC = '236 BC',
year = - 236,
winner = 'Pythocles of Sicyon'
},
{
numberOl = '137th',
yearBC = '232 BC',
year = - 232,
winner = 'Menestheus of Barcyla'
},
{
numberOl = '138th',
yearBC = '228 BC',
year = - 228,
winner = 'Demetrius of Alexandria (athlete)'
},
{
numberOl = '139th',
yearBC = '224 BC',
year = - 224,
winner = 'Iolaidas of Argos'
},
{
numberOl = '140th',
yearBC = '220 BC',
year = - 220,
winner = 'Zopyrus of Syracuse'
},
{
numberOl = '141st',
yearBC = '216 BC',
year = - 216,
winner = 'Dorotheus of Rhodes'
},
{
numberOl = '142nd',
yearBC = '212 BC',
year = - 212,
winner = 'Crates of Alexandria'
},
{
numberOl = '143rd',
yearBC = '208 BC',
year = - 208,
winner = 'Heracleitus of Samos'
},
{
numberOl = '144th',
yearBC = '204 BC',
year = - 204,
winner = 'Heracleides of Salamis in Cyprus'
},
{
numberOl = '145th',
yearBC = '200 BC',
year = - 200,
winner = 'Pyrrhias of Aetolia'
},
{
numberOl = '146th',
yearBC = '196 BC',
year = - 196,
winner = 'Micion of Boeotia'
},
{
numberOl = '147th',
yearBC = '192 BC',
year = - 192,
winner = 'Agemachus of Cyzicus'
},
{
numberOl = '148th',
yearBC = '188 BC',
year = - 188,
winner = 'Arcesilaus of Megalopolis'
},
{
numberOl = '149th',
yearBC = '184 BC',
year = - 184,
winner = 'Hippostratus of Seleuceia in Pieria'
},
{
numberOl = '150th',
yearBC = '180 BC',
year = - 180,
winner = 'Onesicritus of Salamis'
},
{
numberOl = '151st',
yearBC = '176 BC',
year = - 176,
winner = 'Thymilus of Aspendus'
},
{
numberOl = '152nd',
yearBC = '172 BC',
year = - 172,
winner = 'Democritus of Megara'
},
{
numberOl = '153rd',
yearBC = '168 BC',
year = - 168,
winner = 'Aristander of Antissa in Lesbos'
},
{
numberOl = '154th',
yearBC = '164 BC',
year = - 164,
winner = 'Leonidas of Rhodes'
},
{
numberOl = '155th',
yearBC = '160 BC',
year = - 160,
winner = 'Leonidas of Rhodes'
},
{
numberOl = '156th',
yearBC = '156 BC',
year = - 156,
winner = 'Leonidas of Rhodes'
},
{
numberOl = '157th',
yearBC = '152 BC',
year = - 152,
winner = 'Leonidas of Rhodes'
},
{
numberOl = '158th',
yearBC = '148 BC',
year = - 148,
winner = 'Othon of Syracuse'
},
{
numberOl = '159th',
yearBC = '144 BC',
year = - 144,
winner = 'Alcimus of Cyzicus'
},
{
numberOl = '160th',
yearBC = '140 BC',
year = - 140,
winner = 'Agnodorus of Cyzicus'
},
{
numberOl = '161st',
yearBC = '136 BC',
year = - 136,
winner = 'Antipater of Epirus'
},
{
numberOl = '162nd',
yearBC = '132 BC',
year = - 132,
winner = 'Damon of Delphi'
},
{
numberOl = '163rd',
yearBC = '128 BC',
year = - 128,
winner = 'Timotheus of Tralles'
},
{
numberOl = '164th',
yearBC = '124 BC',
year = - 124,
winner = 'Boeotus of Sicyon'
},
{
numberOl = '165th',
yearBC = '120 BC',
year = - 120,
winner = 'Acusilaus of Cyrene'
},
{
numberOl = '166th',
yearBC = '116 BC',
year = - 116,
winner = 'Chrysogonus of Nicaea'
},
{
numberOl = '167th',
yearBC = '112 BC',
year = - 112,
winner = 'Chrysogonus of Nicaea'
},
{
numberOl = '168th',
yearBC = '108 BC',
year = - 108,
winner = 'Nicomachus of Philadelphia'
},
{
numberOl = '169th',
yearBC = '104 BC',
year = - 104,
winner = 'Nicodemus of Lacedaemon'
},
{
numberOl = '170th',
yearBC = '100 BC',
year = - 100,
winner = 'Simmias of Seleuceia-on-Tigris'
},
{
numberOl = '171st',
yearBC = '96 BC',
year = - 96,
winner = 'Parmeniscus of Corcyra'
},
{
numberOl = '172nd',
yearBC = '92 BC',
year = - 92,
winner = 'Eudamus of Cos'
},
{
numberOl = '173rd',
yearBC = '88 BC',
year = - 88,
winner = 'Parmeniscus of Corcyra'
},
{
numberOl = '174th',
yearBC = '84 BC',
year = - 84,
winner = 'Demostratus of Larissa'
},
{
numberOl = '175th',
yearBC = '80 BC',
year = - 80,
winner = 'Epaenetus of Argos'
},
{
numberOl = '176th',
yearBC = '76 BC',
year = - 76,
winner = 'Dion of Cyparissus'
},
{
numberOl = '177th',
yearBC = '72 BC',
year = - 72,
winner = 'Hecatomnus of Elis'
},
{
numberOl = '178th',
yearBC = '68 BC',
year = - 68,
winner = 'Diocles of Hypopenus'
},
{
numberOl = '179th',
yearBC = '64 BC',
year = - 64,
winner = 'Andreas of Lacedaemon'
},
{
numberOl = '180th',
yearBC = '60 BC',
year = - 60,
winner = 'Andromachus of Ambracia'
},
{
numberOl = '181st',
yearBC = '56 BC',
year = - 56,
winner = 'Lamachus of Tauromenium'
},
{
numberOl = '182nd',
yearBC = '52 BC',
year = - 52,
winner = 'Anthestion of Argos'
},
{
numberOl = '183rd',
yearBC = '48 BC',
year = - 48,
winner = 'Theodorus of Messene'
},
{
numberOl = '184th',
yearBC = '44 BC',
year = - 44,
winner = 'Theodorus of Messene'
},
{
numberOl = '185th',
yearBC = '40 BC',
year = - 40,
winner = 'Ariston of Thurii'
},
{
numberOl = '186th',
yearBC = '36 BC',
year = - 36,
winner = 'Scamander of Alexandria Troas'
},
{
numberOl = '187th',
yearBC = '32 BC',
year = - 32,
winner = 'Ariston of Thurii'
},
{
numberOl = '188th',
yearBC = '28 BC',
year = - 28,
winner = 'Sopater of Argos'
},
{
numberOl = '189th',
yearBC = '24 BC',
year = - 24,
winner = 'Asclepiades of Sidon'
},
{
numberOl = '190th',
yearBC = '20 BC',
year = - 20,
winner = 'Auphidius of Patrae'
},
{
numberOl = '191st',
yearBC = '16 BC',
year = - 16,
winner = 'Diodotus of Tyana'
},
{
numberOl = '192nd',
yearBC = '12 BC',
year = - 12,
winner = 'Diophanes of Aeolis'
},
{
numberOl = '193rd',
yearBC = '8 BC',
year = - 8,
winner = 'Artemidorus of Thyateira'
},
{
numberOl = '194th',
yearBC = '4 BC',
year = - 4,
winner = 'Demaratus of Ephesus'
},
}
2ffebu1xudzn80562uk9cc24qk1x1x8
153306
153305
2026-10-06T18:13:05Z
511KeV
8268
1 revision imported from [[:en:Module:Ancient_Olympiads/data]]: Needed locally
153305
Scribunto
text/plain
-- This is the data for Module:Ancient Olympiads.
-- It stores the number and the first year of the Olympiad and the name of the victor in the stadion race with a link to his Wikipedia article.
return {
{
numberOl = '1st',
yearBC = '776 BC',
year = - 776,
winner = 'Coroebus of Elis'
},
{
numberOl = '2nd',
yearBC = '772 BC',
year = - 772,
winner = 'Antimachus of Elis'
},
{
numberOl = '3rd',
yearBC = '768 BC',
year = - 768,
winner = 'Androclus of Messenia'
},
{
numberOl = '4th',
yearBC = '764 BC',
year = - 764,
winner = 'Polychares of Messenia'
},
{
numberOl = '5th',
yearBC = '760 BC',
year = - 760,
winner = 'Aeschines of Elis'
},
{
numberOl = '6th',
yearBC = '756 BC',
year = - 756,
winner = 'Oebotas of Dyme'
},
{
numberOl = '7th',
yearBC = '752 BC',
year = - 752,
winner = 'Diocles of Messenia'
},
{
numberOl = '8th',
yearBC = '748 BC',
year = - 748,
winner = 'Anticles of Messenia'
},
{
numberOl = '9th',
yearBC = '744 BC',
year = - 744,
winner = 'Xenocles of Messenia'
},
{
numberOl = '10th',
yearBC = '740 BC',
year = - 740,
winner = 'Dotades of Messenia'
},
{
numberOl = '11th',
yearBC = '736 BC',
year = - 736,
winner = 'Leochares of Messenia'
},
{
numberOl = '12th',
yearBC = '732 BC',
year = - 732,
winner = 'Oxythemis of Coroneia'
},
{
numberOl = '13th',
yearBC = '728 BC',
year = - 728,
winner = 'Diocles of Corinth'
},
{
numberOl = '14th',
yearBC = '724 BC',
year = - 724,
winner = 'Desmon of Corinth'
},
{
numberOl = '15th',
yearBC = '720 BC',
year = - 720,
winner = 'Orsippus of Megara'
},
{
numberOl = '16th',
yearBC = '716 BC',
year = - 716,
winner = 'Pythagoras of Laconia'
},
{
numberOl = '17th',
yearBC = '712 BC',
year = - 712,
winner = 'Polus of Epidaurus'
},
{
numberOl = '18th',
yearBC = '708 BC',
year = - 708,
winner = 'Tellis of Sicyon'
},
{
numberOl = '19th',
yearBC = '704 BC',
year = - 704,
winner = 'Menus of Megara'
},
{
numberOl = '20th',
yearBC = '700 BC',
year = - 700,
winner = 'Atheradas of Laconia'
},
{
numberOl = '21st',
yearBC = '696 BC',
year = - 696,
winner = 'Pantacles of Athens'
},
{
numberOl = '22nd',
yearBC = '692 BC',
year = - 692,
winner = 'Pantacles of Athens'
},
{
numberOl = '23rd',
yearBC = '688 BC',
year = - 688,
winner = 'Icarius of Hyperesia'
},
{
numberOl = '24th',
yearBC = '684 BC',
year = - 684,
winner = 'Cleoptolemus of Laconia'
},
{
numberOl = '25th',
yearBC = '680 BC',
year = - 680,
winner = 'Thalpis of Laconia'
},
{
numberOl = '26th',
yearBC = '676 BC',
year = - 676,
winner = 'Callisthenes of Laconia'
},
{
numberOl = '27th',
yearBC = '672 BC',
year = - 672,
winner = 'Eurybus of Athens'
},
{
numberOl = '28th',
yearBC = '668 BC',
year = - 668,
winner = 'Charmis of Laconia'
},
{
numberOl = '29th',
yearBC = '664 BC',
year = - 664,
winner = 'Chionis of Laconia'
},
{
numberOl = '30th',
yearBC = '660 BC',
year = - 660,
winner = 'Chionis of Laconia'
},
{
numberOl = '31st',
yearBC = '656 BC',
year = - 656,
winner = 'Chionis of Laconia'
},
{
numberOl = '32nd',
yearBC = '652 BC',
year = - 652,
winner = 'Cratinus of Megara'
},
{
numberOl = '33rd',
yearBC = '648 BC',
year = - 648,
winner = 'Gylis of Laconia'
},
{
numberOl = '34th',
yearBC = '644 BC',
year = - 644,
winner = 'Stomas of Athens'
},
{
numberOl = '35th',
yearBC = '640 BC',
year = - 640,
winner = 'Sphaerus of Laconia'
},
{
numberOl = '36th',
yearBC = '636 BC',
year = - 636,
winner = 'Phrynon of Athens'
},
{
numberOl = '37th',
yearBC = '632 BC',
year = - 632,
winner = 'Eurycleidas of Laconia'
},
{
numberOl = '38th',
yearBC = '628 BC',
year = - 628,
winner = 'Olyntheus of Laconia'
},
{
numberOl = '39th',
yearBC = '624 BC',
year = - 624,
winner = 'Rhipsolaus of Laconia'
},
{
numberOl = '40th',
yearBC = '620 BC',
year = - 620,
winner = 'Olyntheus of Laconia'
},
{
numberOl = '41st',
yearBC = '616 BC',
year = - 616,
winner = 'Cleondas of Thebes'
},
{
numberOl = '42nd',
yearBC = '612 BC',
year = - 612,
winner = 'Lycotas of Laconia'
},
{
numberOl = '43rd',
yearBC = '608 BC',
year = - 608,
winner = 'Cleon of Epidaurus'
},
{
numberOl = '44th',
yearBC = '604 BC',
year = - 604,
winner = 'Gelon of Laconia'
},
{
numberOl = '45th',
yearBC = '600 BC',
year = - 600,
winner = 'Anticrates of Epidaurus'
},
{
numberOl = '46th',
yearBC = '596 BC',
year = - 596,
winner = 'Chrysamaxus of Laconia'
},
{
numberOl = '47th',
yearBC = '592 BC',
year = - 592,
winner = 'Eurycles of Laconia'
},
{
numberOl = '48th',
yearBC = '588 BC',
year = - 588,
winner = 'Glycon of Croton'
},
{
numberOl = '49th',
yearBC = '584 BC',
year = - 584,
winner = 'Lycinus of Croton'
},
{
numberOl = '50th',
yearBC = '580 BC',
year = - 580,
winner = 'Epitelidas of Laconia'
},
{
numberOl = '51st',
yearBC = '576 BC',
year = - 576,
winner = 'Eratosthenes of Croton'
},
{
numberOl = '52nd',
yearBC = '572 BC',
year = - 572,
winner = 'Agis of Elis'
},
{
numberOl = '53rd',
yearBC = '568 BC',
year = - 568,
winner = 'Hagnon of Peparethus'
},
{
numberOl = '54th',
yearBC = '564 BC',
year = - 564,
winner = 'Hippostratus of Croton'
},
{
numberOl = '55th',
yearBC = '560 BC',
year = - 560,
winner = 'Hippostratus of Croton'
},
{
numberOl = '56th',
yearBC = '556 BC',
year = - 556,
winner = 'Phaedrus of Pharsalus'
},
{
numberOl = '57th',
yearBC = '552 BC',
year = - 552,
winner = 'Ladromus of Laconia'
},
{
numberOl = '58th',
yearBC = '548 BC',
year = - 548,
winner = 'Diognetus of Croton'
},
{
numberOl = '59th',
yearBC = '544 BC',
year = - 544,
winner = 'Archilochus of Corcyra'
},
{
numberOl = '60th',
yearBC = '540 BC',
year = - 540,
winner = 'Apellaeus of Elis'
},
{
numberOl = '61st',
yearBC = '536 BC',
year = - 536,
winner = 'Agatharchus of Corcyra'
},
{
numberOl = '62nd',
yearBC = '532 BC',
year = - 532,
winner = 'Eryxias of Chalcis'
},
{
numberOl = '63rd',
yearBC = '528 BC',
year = - 528,
winner = 'Parmenides of Camarina'
},
{
numberOl = '64th',
yearBC = '524 BC',
year = - 524,
winner = 'Menander of Thessaly'
},
{
numberOl = '65th',
yearBC = '520 BC',
year = - 520,
winner = 'Anochas of Tarentum'
},
{
numberOl = '66th',
yearBC = '516 BC',
year = - 516,
winner = 'Ischyrus of Himera'
},
{
numberOl = '67th',
yearBC = '512 BC',
year = - 512,
winner = 'Phanas of Pellene'
},
{
numberOl = '68th',
yearBC = '508 BC',
year = - 508,
winner = 'Isomachus of Croton'
},
{
numberOl = '69th',
yearBC = '504 BC',
year = - 504,
winner = 'Isomachus of Croton'
},
{
numberOl = '70th',
yearBC = '500 BC',
year = - 500,
winner = 'Nicasias of Opus'
},
{
numberOl = '71st',
yearBC = '496 BC',
year = - 496,
winner = 'Tisicrates of Croton'
},
{
numberOl = '72nd',
yearBC = '492 BC',
year = - 492,
winner = 'Tisicrates of Croton'
},
{
numberOl = '73rd',
yearBC = '488 BC',
year = - 488,
winner = 'Astyalus of Croton'
},
{
numberOl = '74th',
yearBC = '484 BC',
year = - 484,
winner = 'Astyalus of Croton'
},
{
numberOl = '75th',
yearBC = '480 BC',
year = - 480,
winner = 'Astyalus of Croton'
},
{
numberOl = '76th',
yearBC = '476 BC',
year = - 476,
winner = 'Scamander of Mytilene'
},
{
numberOl = '77th',
yearBC = '472 BC',
year = - 472,
winner = 'Dandes of Argos'
},
{
numberOl = '78th',
yearBC = '468 BC',
year = - 468,
winner = 'Parmenides of Poseidonia'
},
{
numberOl = '79th',
yearBC = '464 BC',
year = - 464,
winner = 'Xenophon of Corinth'
},
{
numberOl = '80th',
yearBC = '460 BC',
year = - 460,
winner = 'Torymmas of Thessaly'
},
{
numberOl = '81st',
yearBC = '456 BC',
year = - 456,
winner = 'Polymnastus of Cyrene'
},
{
numberOl = '82nd',
yearBC = '452 BC',
year = - 452,
winner = 'Lycus of Larissa'
},
{
numberOl = '83rd',
yearBC = '448 BC',
year = - 448,
winner = 'Crisson of Himera'
},
{
numberOl = '84th',
yearBC = '444 BC',
year = - 444,
winner = 'Crisson of Himera'
},
{
numberOl = '85th',
yearBC = '440 BC',
year = - 440,
winner = 'Crisson of Himera'
},
{
numberOl = '86th',
yearBC = '436 BC',
year = - 436,
winner = 'Theopompus of Thessaly'
},
{
numberOl = '87th',
yearBC = '432 BC',
year = - 432,
winner = 'Sophron of Ambracia'
},
{
numberOl = '88th',
yearBC = '428 BC',
year = - 428,
winner = 'Symmachus of Messenia'
},
{
numberOl = '89th',
yearBC = '424 BC',
year = - 424,
winner = 'Symmachus of Messenia'
},
{
numberOl = '90th',
yearBC = '420 BC',
year = - 420,
winner = 'Hyperbius of Syracuse'
},
{
numberOl = '91st',
yearBC = '416 BC',
year = - 416,
winner = 'Exagentus of Acragas'
},
{
numberOl = '92nd',
yearBC = '412 BC',
year = - 412,
winner = 'Exagentus of Acragas'
},
{
numberOl = '93rd',
yearBC = '408 BC',
year = - 408,
winner = 'Eubatus of Cyrene'
},
{
numberOl = '94th',
yearBC = '404 BC',
year = - 404,
winner = 'Crocinas of Larissa'
},
{
numberOl = '95th',
yearBC = '400 BC',
year = - 400,
winner = 'Minon of Athens'
},
{
numberOl = '96th',
yearBC = '396 BC',
year = - 396,
winner = 'Eupolemus of Elis'
},
{
numberOl = '97th',
yearBC = '392 BC',
year = - 392,
winner = 'Terinaeus'
},
{
numberOl = '98th',
yearBC = '388 BC',
year = - 388,
winner = 'Sosippus of Delphi'
},
{
numberOl = '99th',
yearBC = '384 BC',
year = - 384,
winner = 'Dicon of Syracuse'
},
{
numberOl = '100th',
yearBC = '380 BC',
year = - 380,
winner = 'Dionysodorus of Tarentum'
},
{
numberOl = '101st',
yearBC = '376 BC',
year = - 376,
winner = 'Damon of Thurii'
},
{
numberOl = '102nd',
yearBC = '372 BC',
year = - 372,
winner = 'Damon of Thurii'
},
{
numberOl = '103rd',
yearBC = '368 BC',
year = - 368,
winner = 'Pythostratus of Ephesus'
},
{
numberOl = '104th',
yearBC = '364 BC',
year = - 364,
winner = 'Phocides of Athens'
},
{
numberOl = '105th',
yearBC = '360 BC',
year = - 360,
winner = 'Porus of Cyrene'
},
{
numberOl = '106th',
yearBC = '356 BC',
year = - 356,
winner = 'Porus of Cyrene'
},
{
numberOl = '107th',
yearBC = '352 BC',
year = - 352,
winner = 'Micrinas of Tarentum'
},
{
numberOl = '108th',
yearBC = '348 BC',
year = - 348,
winner = 'Polycles of Cyrene'
},
{
numberOl = '109th',
yearBC = '344 BC',
year = - 344,
winner = 'Aristolochus of Athens'
},
{
numberOl = '110th',
yearBC = '340 BC',
year = - 340,
winner = 'Anticles of Athens'
},
{
numberOl = '111th',
yearBC = '336 BC',
year = - 336,
winner = 'Cleomantis of Cleitor'
},
{
numberOl = '112th',
yearBC = '332 BC',
year = - 332,
winner = 'Eurylas of Chalcis'
},
{
numberOl = '113th',
yearBC = '328 BC',
year = - 328,
winner = 'Cliton of Macedonia'
},
{
numberOl = '114th',
yearBC = '324 BC',
year = - 324,
winner = 'Micinas of Rhodes'
},
{
numberOl = '115th',
yearBC = '320 BC',
year = - 320,
winner = 'Damasias of Amphipolis'
},
{
numberOl = '116th',
yearBC = '316 BC',
year = - 316,
winner = 'Demosthenes of Laconia'
},
{
numberOl = '117th',
yearBC = '312 BC',
year = - 312,
winner = 'Parmenides of Mytilene'
},
{
numberOl = '118th',
yearBC = '308 BC',
year = - 308,
winner = 'Andromenes of Corinth'
},
{
numberOl = '119th',
yearBC = '304 BC',
year = - 304,
winner = 'Andromenes of Corinth'
},
{
numberOl = '120th',
yearBC = '300 BC',
year = - 300,
winner = 'Pythagoras of Magnesia-on-Maeander'
},
{
numberOl = '121st',
yearBC = '296 BC',
year = - 296,
winner = 'Pythagoras of Magnesia-on-Maeander'
},
{
numberOl = '122nd',
yearBC = '292 BC',
year = - 292,
winner = 'Antigonus of Macedonia'
},
{
numberOl = '123rd',
yearBC = '288 BC',
year = - 288,
winner = 'Antigonus of Macedonia' },
{
numberOl = '124th',
yearBC = '284 BC',
year = - 284,
winner = 'Philomelus of Pharsalus' },
{
numberOl = '125th',
yearBC = '280 BC',
year = - 280,
winner = 'Ladas of Aegium' },
{
numberOl = '126th',
yearBC = '276 BC',
year = - 276,
winner = 'Idaeus or Nicator of Cyrene'
},
{
numberOl = '127th',
yearBC = '272 BC',
year = - 272,
winner = 'Perigenes of Alexandria'
},
{
numberOl = '128th',
yearBC = '268 BC',
year = - 268,
winner = 'Seleucus of Macedonia'
},
{
numberOl = '129th',
yearBC = '264 BC',
year = - 264,
winner = 'Philinus of Cos (athlete)'
},
{
numberOl = '130th',
yearBC = '260 BC',
year = - 260,
winner = 'Philinus of Cos (athlete)'
},
{
numberOl = '131st',
yearBC = '256 BC',
year = - 256,
winner = 'Ammonius of Alexandria (athlete)'
},
{
numberOl = '132nd',
yearBC = '252 BC',
year = - 252,
winner = 'Xenophanes of Amphissa'
},
{
numberOl = '133rd',
yearBC = '248 BC',
year = - 248,
winner = 'Simylus of Neapolis'
},
{
numberOl = '134th',
yearBC = '244 BC',
year = - 244,
winner = 'Alcides of Laconia'
},
{
numberOl = '135th',
yearBC = '240 BC',
year = - 240,
winner = 'Eraton of Aetolia'
},
{
numberOl = '136th',
yearBC = '236 BC',
year = - 236,
winner = 'Pythocles of Sicyon'
},
{
numberOl = '137th',
yearBC = '232 BC',
year = - 232,
winner = 'Menestheus of Barcyla'
},
{
numberOl = '138th',
yearBC = '228 BC',
year = - 228,
winner = 'Demetrius of Alexandria (athlete)'
},
{
numberOl = '139th',
yearBC = '224 BC',
year = - 224,
winner = 'Iolaidas of Argos'
},
{
numberOl = '140th',
yearBC = '220 BC',
year = - 220,
winner = 'Zopyrus of Syracuse'
},
{
numberOl = '141st',
yearBC = '216 BC',
year = - 216,
winner = 'Dorotheus of Rhodes'
},
{
numberOl = '142nd',
yearBC = '212 BC',
year = - 212,
winner = 'Crates of Alexandria'
},
{
numberOl = '143rd',
yearBC = '208 BC',
year = - 208,
winner = 'Heracleitus of Samos'
},
{
numberOl = '144th',
yearBC = '204 BC',
year = - 204,
winner = 'Heracleides of Salamis in Cyprus'
},
{
numberOl = '145th',
yearBC = '200 BC',
year = - 200,
winner = 'Pyrrhias of Aetolia'
},
{
numberOl = '146th',
yearBC = '196 BC',
year = - 196,
winner = 'Micion of Boeotia'
},
{
numberOl = '147th',
yearBC = '192 BC',
year = - 192,
winner = 'Agemachus of Cyzicus'
},
{
numberOl = '148th',
yearBC = '188 BC',
year = - 188,
winner = 'Arcesilaus of Megalopolis'
},
{
numberOl = '149th',
yearBC = '184 BC',
year = - 184,
winner = 'Hippostratus of Seleuceia in Pieria'
},
{
numberOl = '150th',
yearBC = '180 BC',
year = - 180,
winner = 'Onesicritus of Salamis'
},
{
numberOl = '151st',
yearBC = '176 BC',
year = - 176,
winner = 'Thymilus of Aspendus'
},
{
numberOl = '152nd',
yearBC = '172 BC',
year = - 172,
winner = 'Democritus of Megara'
},
{
numberOl = '153rd',
yearBC = '168 BC',
year = - 168,
winner = 'Aristander of Antissa in Lesbos'
},
{
numberOl = '154th',
yearBC = '164 BC',
year = - 164,
winner = 'Leonidas of Rhodes'
},
{
numberOl = '155th',
yearBC = '160 BC',
year = - 160,
winner = 'Leonidas of Rhodes'
},
{
numberOl = '156th',
yearBC = '156 BC',
year = - 156,
winner = 'Leonidas of Rhodes'
},
{
numberOl = '157th',
yearBC = '152 BC',
year = - 152,
winner = 'Leonidas of Rhodes'
},
{
numberOl = '158th',
yearBC = '148 BC',
year = - 148,
winner = 'Othon of Syracuse'
},
{
numberOl = '159th',
yearBC = '144 BC',
year = - 144,
winner = 'Alcimus of Cyzicus'
},
{
numberOl = '160th',
yearBC = '140 BC',
year = - 140,
winner = 'Agnodorus of Cyzicus'
},
{
numberOl = '161st',
yearBC = '136 BC',
year = - 136,
winner = 'Antipater of Epirus'
},
{
numberOl = '162nd',
yearBC = '132 BC',
year = - 132,
winner = 'Damon of Delphi'
},
{
numberOl = '163rd',
yearBC = '128 BC',
year = - 128,
winner = 'Timotheus of Tralles'
},
{
numberOl = '164th',
yearBC = '124 BC',
year = - 124,
winner = 'Boeotus of Sicyon'
},
{
numberOl = '165th',
yearBC = '120 BC',
year = - 120,
winner = 'Acusilaus of Cyrene'
},
{
numberOl = '166th',
yearBC = '116 BC',
year = - 116,
winner = 'Chrysogonus of Nicaea'
},
{
numberOl = '167th',
yearBC = '112 BC',
year = - 112,
winner = 'Chrysogonus of Nicaea'
},
{
numberOl = '168th',
yearBC = '108 BC',
year = - 108,
winner = 'Nicomachus of Philadelphia'
},
{
numberOl = '169th',
yearBC = '104 BC',
year = - 104,
winner = 'Nicodemus of Lacedaemon'
},
{
numberOl = '170th',
yearBC = '100 BC',
year = - 100,
winner = 'Simmias of Seleuceia-on-Tigris'
},
{
numberOl = '171st',
yearBC = '96 BC',
year = - 96,
winner = 'Parmeniscus of Corcyra'
},
{
numberOl = '172nd',
yearBC = '92 BC',
year = - 92,
winner = 'Eudamus of Cos'
},
{
numberOl = '173rd',
yearBC = '88 BC',
year = - 88,
winner = 'Parmeniscus of Corcyra'
},
{
numberOl = '174th',
yearBC = '84 BC',
year = - 84,
winner = 'Demostratus of Larissa'
},
{
numberOl = '175th',
yearBC = '80 BC',
year = - 80,
winner = 'Epaenetus of Argos'
},
{
numberOl = '176th',
yearBC = '76 BC',
year = - 76,
winner = 'Dion of Cyparissus'
},
{
numberOl = '177th',
yearBC = '72 BC',
year = - 72,
winner = 'Hecatomnus of Elis'
},
{
numberOl = '178th',
yearBC = '68 BC',
year = - 68,
winner = 'Diocles of Hypopenus'
},
{
numberOl = '179th',
yearBC = '64 BC',
year = - 64,
winner = 'Andreas of Lacedaemon'
},
{
numberOl = '180th',
yearBC = '60 BC',
year = - 60,
winner = 'Andromachus of Ambracia'
},
{
numberOl = '181st',
yearBC = '56 BC',
year = - 56,
winner = 'Lamachus of Tauromenium'
},
{
numberOl = '182nd',
yearBC = '52 BC',
year = - 52,
winner = 'Anthestion of Argos'
},
{
numberOl = '183rd',
yearBC = '48 BC',
year = - 48,
winner = 'Theodorus of Messene'
},
{
numberOl = '184th',
yearBC = '44 BC',
year = - 44,
winner = 'Theodorus of Messene'
},
{
numberOl = '185th',
yearBC = '40 BC',
year = - 40,
winner = 'Ariston of Thurii'
},
{
numberOl = '186th',
yearBC = '36 BC',
year = - 36,
winner = 'Scamander of Alexandria Troas'
},
{
numberOl = '187th',
yearBC = '32 BC',
year = - 32,
winner = 'Ariston of Thurii'
},
{
numberOl = '188th',
yearBC = '28 BC',
year = - 28,
winner = 'Sopater of Argos'
},
{
numberOl = '189th',
yearBC = '24 BC',
year = - 24,
winner = 'Asclepiades of Sidon'
},
{
numberOl = '190th',
yearBC = '20 BC',
year = - 20,
winner = 'Auphidius of Patrae'
},
{
numberOl = '191st',
yearBC = '16 BC',
year = - 16,
winner = 'Diodotus of Tyana'
},
{
numberOl = '192nd',
yearBC = '12 BC',
year = - 12,
winner = 'Diophanes of Aeolis'
},
{
numberOl = '193rd',
yearBC = '8 BC',
year = - 8,
winner = 'Artemidorus of Thyateira'
},
{
numberOl = '194th',
yearBC = '4 BC',
year = - 4,
winner = 'Demaratus of Ephesus'
},
}
2ffebu1xudzn80562uk9cc24qk1x1x8
Module:Ancient Egypt era
828
33057
153307
2023-09-30T03:28:13Z
en>Pppery
0
Changed protection settings for "[[Module:Ancient Egypt era]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
153307
Scribunto
text/plain
local data = mw.loadData( 'Module:Ancient Egypt era/data' )
local lang = mw.language.getContentLanguage()
local p = {}
function p._main( inputYear )
-- Convert the input to an integer if possible. Return "N/A" if the input could
-- not be converted, or if the converted input is too big or too small.
inputYear = tonumber( inputYear )
if not inputYear or inputYear > tonumber( lang:formatDate( 'Y' ) ) then
return "''N/A''"
end
-- Find the length of the data.
-- We need the length of the data so that we can loop through it backwards.
-- Normally we can get the length of tables with the # operator, but this
-- doesn't work with mw.loadData, as mw.loadData uses a metatable, and the
-- # operator doesn't work for tables that use metatables.
local dataLength = 0
for i, t in ipairs( data ) do
dataLength = i
end
-- Find the year in the data page and display the output.
for i = dataLength, 1, -1 do
local t = data[i]
if inputYear - 1 >= t.dynstart and inputYear - 1 <= t.dynend then
-- year of the dynasty, test with = p._main( -495 )
-- The input year in the calendar is one after the expected (-775 for the year 776 BC). This is why all values need to be corrected by 1.
return string.format(
'[[%s|%s]] [[List of ancient Egyptian dynasties|dynasty]], %d',
t.dynlink, t.dynasty, inputYear - t.dynstart
)
end
end
end
function p.main( frame )
-- If you only want to run this module from another Lua module, you can get
-- rid of this function entirely. This function is only used if you want to
-- run this individual module from a template.
local args = require( 'Module:Arguments' ).getArgs( frame, {
parentOnly = true
} )
return p._main( args[ 1 ] )
end
return p
i9m0l2sngg6vg0wnwfu3dc4szflys54
153308
153307
2026-10-06T18:13:24Z
511KeV
8268
1 revision imported from [[:en:Module:Ancient_Egypt_era]]: Needed locally
153307
Scribunto
text/plain
local data = mw.loadData( 'Module:Ancient Egypt era/data' )
local lang = mw.language.getContentLanguage()
local p = {}
function p._main( inputYear )
-- Convert the input to an integer if possible. Return "N/A" if the input could
-- not be converted, or if the converted input is too big or too small.
inputYear = tonumber( inputYear )
if not inputYear or inputYear > tonumber( lang:formatDate( 'Y' ) ) then
return "''N/A''"
end
-- Find the length of the data.
-- We need the length of the data so that we can loop through it backwards.
-- Normally we can get the length of tables with the # operator, but this
-- doesn't work with mw.loadData, as mw.loadData uses a metatable, and the
-- # operator doesn't work for tables that use metatables.
local dataLength = 0
for i, t in ipairs( data ) do
dataLength = i
end
-- Find the year in the data page and display the output.
for i = dataLength, 1, -1 do
local t = data[i]
if inputYear - 1 >= t.dynstart and inputYear - 1 <= t.dynend then
-- year of the dynasty, test with = p._main( -495 )
-- The input year in the calendar is one after the expected (-775 for the year 776 BC). This is why all values need to be corrected by 1.
return string.format(
'[[%s|%s]] [[List of ancient Egyptian dynasties|dynasty]], %d',
t.dynlink, t.dynasty, inputYear - t.dynstart
)
end
end
end
function p.main( frame )
-- If you only want to run this module from another Lua module, you can get
-- rid of this function entirely. This function is only used if you want to
-- run this individual module from a template.
local args = require( 'Module:Arguments' ).getArgs( frame, {
parentOnly = true
} )
return p._main( args[ 1 ] )
end
return p
i9m0l2sngg6vg0wnwfu3dc4szflys54
Module:Ancient Egypt era/data
828
33058
153309
2023-09-30T03:28:25Z
en>Pppery
0
Changed protection settings for "[[Module:Ancient Egypt era/data]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
153309
Scribunto
text/plain
-- This is the 1st data sheet for Module:Ancient Egypt era.
-- It stores the number, link, and years of the dynasties.
return {
{
dynasty = 'XVIII',
dynlink = 'Eighteenth Dynasty of Egypt',
dynstart = - 1549,
dynend = - 1292
},
{
dynasty = 'XIX',
dynlink = 'Nineteenth Dynasty of Egypt',
dynstart = - 1292,
dynend = - 1189
},
{
dynasty = 'XX',
dynlink = 'Twentieth Dynasty of Egypt',
dynstart = - 1189,
dynend = - 1077
},
{
dynasty = 'XXI',
dynlink = 'Twenty-first Dynasty of Egypt',
dynstart = - 1077,
dynend = - 944
},
{
dynasty = 'XXII',
dynlink = 'Twenty-second Dynasty of Egypt',
dynstart = - 943,
dynend = - 798
-- dynendactual = - 720
},
{
dynasty = 'XXIII',
dynlink = 'Twenty-third Dynasty of Egypt',
dynstart = - 880,
dynend = - 752
-- dynendactual = - 728
},
-- {
-- dynasty = 'XXIV',
-- dynlink = 'Twenty-fourth Dynasty of Egypt',
-- dynstart = - 732,
-- dynend = - 720
-- },
{
dynasty = 'XXV',
dynlink = 'Twenty-fifth Dynasty of Egypt',
dynstart = - 752,
dynend = - 656
},
{
dynasty = 'XXVI',
dynlink = 'Twenty-sixth Dynasty of Egypt',
dynstart = - 664,
dynend = - 525
},
{
dynasty = 'XXVII',
dynlink = 'Twenty-seventh Dynasty of Egypt',
dynstart = - 525,
dynend = - 405
},
{
dynasty = 'XXVIII',
dynlink = 'Twenty-eighth Dynasty of Egypt',
dynstart = - 404,
dynend = - 399
},
{
dynasty = 'XXIX',
dynlink = 'Twenty-ninth Dynasty of Egypt',
dynstart = - 398,
dynend = - 380
},
{
dynasty = 'XXX',
dynlink = 'Thirtieth Dynasty of Egypt',
dynstart = - 380,
dynend = - 343
},
{
dynasty = 'XXXI',
dynlink = 'Thirty-first Dynasty of Egypt',
dynstart = - 343,
dynend = - 332
},
{
dynasty = 'XXXII',
dynlink = 'Argead dynasty',
dynstart = - 332,
dynend = - 323
},
{
dynasty = 'XXXIII',
dynlink = 'Ptolemaic dynasty',
dynstart = - 323,
dynend = - 30
},
}
2yip7i7qvodanffbv62u2zimcnwfozt
153310
153309
2026-10-06T18:14:31Z
511KeV
8268
1 revision imported from [[:en:Module:Ancient_Egypt_era/data]]: Needed locally
153309
Scribunto
text/plain
-- This is the 1st data sheet for Module:Ancient Egypt era.
-- It stores the number, link, and years of the dynasties.
return {
{
dynasty = 'XVIII',
dynlink = 'Eighteenth Dynasty of Egypt',
dynstart = - 1549,
dynend = - 1292
},
{
dynasty = 'XIX',
dynlink = 'Nineteenth Dynasty of Egypt',
dynstart = - 1292,
dynend = - 1189
},
{
dynasty = 'XX',
dynlink = 'Twentieth Dynasty of Egypt',
dynstart = - 1189,
dynend = - 1077
},
{
dynasty = 'XXI',
dynlink = 'Twenty-first Dynasty of Egypt',
dynstart = - 1077,
dynend = - 944
},
{
dynasty = 'XXII',
dynlink = 'Twenty-second Dynasty of Egypt',
dynstart = - 943,
dynend = - 798
-- dynendactual = - 720
},
{
dynasty = 'XXIII',
dynlink = 'Twenty-third Dynasty of Egypt',
dynstart = - 880,
dynend = - 752
-- dynendactual = - 728
},
-- {
-- dynasty = 'XXIV',
-- dynlink = 'Twenty-fourth Dynasty of Egypt',
-- dynstart = - 732,
-- dynend = - 720
-- },
{
dynasty = 'XXV',
dynlink = 'Twenty-fifth Dynasty of Egypt',
dynstart = - 752,
dynend = - 656
},
{
dynasty = 'XXVI',
dynlink = 'Twenty-sixth Dynasty of Egypt',
dynstart = - 664,
dynend = - 525
},
{
dynasty = 'XXVII',
dynlink = 'Twenty-seventh Dynasty of Egypt',
dynstart = - 525,
dynend = - 405
},
{
dynasty = 'XXVIII',
dynlink = 'Twenty-eighth Dynasty of Egypt',
dynstart = - 404,
dynend = - 399
},
{
dynasty = 'XXIX',
dynlink = 'Twenty-ninth Dynasty of Egypt',
dynstart = - 398,
dynend = - 380
},
{
dynasty = 'XXX',
dynlink = 'Thirtieth Dynasty of Egypt',
dynstart = - 380,
dynend = - 343
},
{
dynasty = 'XXXI',
dynlink = 'Thirty-first Dynasty of Egypt',
dynstart = - 343,
dynend = - 332
},
{
dynasty = 'XXXII',
dynlink = 'Argead dynasty',
dynstart = - 332,
dynend = - 323
},
{
dynasty = 'XXXIII',
dynlink = 'Ptolemaic dynasty',
dynstart = - 323,
dynend = - 30
},
}
2yip7i7qvodanffbv62u2zimcnwfozt
Module:Ancient Egypt kings
828
33059
153312
2023-09-30T03:28:39Z
en>Pppery
0
Changed protection settings for "[[Module:Ancient Egypt kings]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
153312
Scribunto
text/plain
-- This module implements {{Ancient Egypt kings}}. It converts a year in the Gregorian
-- calendar to the equivalent year of the ancient Egyptian era organized by pharaohs and kings.
local data = mw.loadData( 'Module:Ancient Egypt kings/data' )
local lang = mw.language.getContentLanguage()
local p = {}
function p._main( inputYear )
-- Convert the input to an integer if possible. Return "N/A" if the input could
-- not be converted, or if the converted input is too big or too small.
inputYear = tonumber( inputYear )
if not inputYear or inputYear > tonumber( lang:formatDate( 'Y' ) ) then
return "''N/A''"
end
-- Find the length of the data.
-- We need the length of the data so that we can loop through it backwards.
-- Normally we can get the length of tables with the # operator, but this
-- doesn't work with mw.loadData, as mw.loadData uses a metatable, and the
-- # operator doesn't work for tables that use metatables.
local dataLength = 0
for i, t in ipairs( data ) do
dataLength = i
end
-- Find the year in the data page and display the output.
for i = dataLength, 1, -1 do
local t = data[i]
if inputYear - 1 >= t.rulerstart and inputYear - 1 <= t.rulerend then
-- year of the dynasty, test with = p._main( -495 )
-- The input year in the calendar is one after the expected (-775 for the year 776 BC). This is why all values need to be corrected by 1.
return string.format(
'[[%s]], %d',
t.ruler, inputYear - t.rulerstart
)
end
end
end
function p.main( frame )
-- If you only want to run this module from another Lua module, you can get
-- rid of this function entirely. This function is only used if you want to
-- run this individual module from a template.
local args = require( 'Module:Arguments' ).getArgs( frame, {
parentOnly = true
} )
return p._main( args[ 1 ] )
end
return p
gw4zde0lslf3volxdqhdy53ktj0gtar
153313
153312
2026-10-06T18:14:56Z
511KeV
8268
1 revision imported from [[:en:Module:Ancient_Egypt_kings]]: Needed locally
153312
Scribunto
text/plain
-- This module implements {{Ancient Egypt kings}}. It converts a year in the Gregorian
-- calendar to the equivalent year of the ancient Egyptian era organized by pharaohs and kings.
local data = mw.loadData( 'Module:Ancient Egypt kings/data' )
local lang = mw.language.getContentLanguage()
local p = {}
function p._main( inputYear )
-- Convert the input to an integer if possible. Return "N/A" if the input could
-- not be converted, or if the converted input is too big or too small.
inputYear = tonumber( inputYear )
if not inputYear or inputYear > tonumber( lang:formatDate( 'Y' ) ) then
return "''N/A''"
end
-- Find the length of the data.
-- We need the length of the data so that we can loop through it backwards.
-- Normally we can get the length of tables with the # operator, but this
-- doesn't work with mw.loadData, as mw.loadData uses a metatable, and the
-- # operator doesn't work for tables that use metatables.
local dataLength = 0
for i, t in ipairs( data ) do
dataLength = i
end
-- Find the year in the data page and display the output.
for i = dataLength, 1, -1 do
local t = data[i]
if inputYear - 1 >= t.rulerstart and inputYear - 1 <= t.rulerend then
-- year of the dynasty, test with = p._main( -495 )
-- The input year in the calendar is one after the expected (-775 for the year 776 BC). This is why all values need to be corrected by 1.
return string.format(
'[[%s]], %d',
t.ruler, inputYear - t.rulerstart
)
end
end
end
function p.main( frame )
-- If you only want to run this module from another Lua module, you can get
-- rid of this function entirely. This function is only used if you want to
-- run this individual module from a template.
local args = require( 'Module:Arguments' ).getArgs( frame, {
parentOnly = true
} )
return p._main( args[ 1 ] )
end
return p
gw4zde0lslf3volxdqhdy53ktj0gtar
Module:Ancient Egypt kings/data
828
33060
153314
2023-09-30T03:28:56Z
en>Pppery
0
Changed protection settings for "[[Module:Ancient Egypt kings/data]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
153314
Scribunto
text/plain
-- This is the data sheet for Module:Ancient Egypt kings
return {
{
ruler = 'Piye',
rulerlink = '',
rulerstart = - 752,
rulerend = - 722,
coruler = ''
},
{
ruler = 'Shabaka',
rulerlink = '',
rulerstart = - 721,
rulerend = - 707,
coruler = ''
},
{
ruler = 'Shebitku',
rulerlink = '',
rulerstart = - 707,
rulerend = - 690,
coruler = ''
},
{
ruler = 'Taharqa',
rulerlink = '',
rulerstart = - 690,
rulerend = - 664,
coruler = ''
},
{
ruler = 'Tantamani',
rulerlink = '',
rulerstart = - 664,
rulerend = - 656,
coruler = ''
},
{
ruler = 'Psamtik I',
rulerlink = '',
rulerstart = - 664,
rulerend = - 610,
coruler = ''
},
{
ruler = 'Necho II',
rulerlink = '',
rulerstart = - 610,
rulerend = - 595,
coruler = ''
},
{
ruler = 'Psamtik II',
rulerlink = '',
rulerstart = - 595,
rulerend = - 589,
coruler = ''
},
{
ruler = 'Apries',
rulerlink = '',
rulerstart = - 589,
rulerend = - 570,
coruler = ''
},
{
ruler = 'Amasis II',
rulerlink = '',
rulerstart = - 570,
rulerend = - 526,
coruler = ''
},
{
ruler = 'Psamtik III',
rulerlink = '',
rulerstart = - 526,
rulerend = - 525,
coruler = ''
},
{
ruler = 'Cambyses II of Persia',
rulerlink = '',
rulerstart = - 525,
rulerend = - 521,
coruler = ''
},
{
ruler = 'Darius I of Persia',
rulerlink = '',
rulerstart = - 521,
rulerend = - 486,
coruler = ''
},
{
ruler = 'Xerxes I of Persia',
rulerlink = '',
rulerstart = - 485,
rulerend = - 465,
coruler = ''
},
{
ruler = 'Artaxerxes I of Persia',
rulerlink = '',
rulerstart = - 465,
rulerend = - 424,
coruler = ''
},
{
ruler = 'Darius II of Persia',
rulerlink = '',
rulerstart = - 423,
rulerend = - 405,
coruler = ''
},
{
ruler = 'Amyrtaeus',
rulerlink = '',
rulerstart = - 404,
rulerend = - 399,
coruler = ''
},
{
ruler = 'Nepherites I',
rulerlink = '',
rulerstart = - 398,
rulerend = - 393,
coruler = ''
},
{
ruler = 'Hakor',
rulerlink = '',
rulerstart = - 393,
rulerend = - 380,
coruler = ''
},
{
ruler = 'Nectanebo I',
rulerlink = '',
rulerstart = - 380,
rulerend = - 362,
coruler = ''
},
{
ruler = 'Djedhor',
rulerlink = '',
rulerstart = - 362,
rulerend = - 360,
coruler = ''
},
{
ruler = 'Nectanebo II',
rulerlink = '',
rulerstart = - 360,
rulerend = - 343,
coruler = ''
},
{
ruler = 'Artaxerxes III of Persia',
rulerlink = '',
rulerstart = - 343,
rulerend = - 338,
coruler = ''
},
{
ruler = 'Arses of Persia',
rulerlink = '',
rulerstart = - 338,
rulerend = - 337,
coruler = ''
},
{
ruler = 'Darius III of Persia',
rulerlink = '',
rulerstart = - 336,
rulerend = - 332,
coruler = ''
},
{
ruler = 'Alexander the Great',
rulerlink = '',
rulerstart = - 332,
rulerend = - 323,
coruler = ''
},
{
ruler = 'Ptolemy I Soter',
rulerlink = '',
rulerstart = - 323,
rulerend = - 283,
coruler = ''
},
{
ruler = 'Ptolemy II Philadelphus',
rulerlink = '',
rulerstart = - 283,
rulerend = - 246,
coruler = ''
},
{
ruler = 'Ptolemy III Euergetes',
rulerlink = '',
rulerstart = - 246,
rulerend = - 222,
coruler = ''
},
{
ruler = 'Ptolemy IV Philopator',
rulerlink = '',
rulerstart = - 221,
rulerend = - 204,
coruler = ''
},
{
ruler = 'Ptolemy V Epiphanes',
rulerlink = '',
rulerstart = - 203,
rulerend = - 181,
coruler = ''
},
{
ruler = 'Ptolemy VI Philometor',
rulerlink = '',
rulerstart = - 180,
rulerend = - 145,
coruler = ''
},
{
ruler = 'Ptolemy VIII Physcon',
rulerlink = '',
rulerstart = - 145,
rulerend = - 116,
coruler = ''
},
{
ruler = 'Ptolemy IX Lathyros',
rulerlink = '',
rulerstart = - 116,
rulerend = - 107,
coruler = ''
},
{
ruler = 'Ptolemy X Alexander',
rulerlink = '',
rulerstart = - 107,
rulerend = - 88,
coruler = ''
},
{
ruler = 'Ptolemy IX Lathyros',
rulerlink = '',
rulerstart = - 88,
rulerend = - 81,
coruler = ''
},
{
ruler = 'Ptolemy XII Auletes',
rulerlink = '',
rulerstart = - 80,
rulerend = - 51,
coruler = ''
},
{
ruler = 'Cleopatra VII',
rulerlink = '',
rulerstart = - 51,
rulerend = - 30,
coruler = ''
},
}
lf2lih8h3w5p3d0w6d3fv3nn8p30ywq
153315
153314
2026-10-06T18:15:18Z
511KeV
8268
1 revision imported from [[:en:Module:Ancient_Egypt_kings/data]]: Needed locally
153314
Scribunto
text/plain
-- This is the data sheet for Module:Ancient Egypt kings
return {
{
ruler = 'Piye',
rulerlink = '',
rulerstart = - 752,
rulerend = - 722,
coruler = ''
},
{
ruler = 'Shabaka',
rulerlink = '',
rulerstart = - 721,
rulerend = - 707,
coruler = ''
},
{
ruler = 'Shebitku',
rulerlink = '',
rulerstart = - 707,
rulerend = - 690,
coruler = ''
},
{
ruler = 'Taharqa',
rulerlink = '',
rulerstart = - 690,
rulerend = - 664,
coruler = ''
},
{
ruler = 'Tantamani',
rulerlink = '',
rulerstart = - 664,
rulerend = - 656,
coruler = ''
},
{
ruler = 'Psamtik I',
rulerlink = '',
rulerstart = - 664,
rulerend = - 610,
coruler = ''
},
{
ruler = 'Necho II',
rulerlink = '',
rulerstart = - 610,
rulerend = - 595,
coruler = ''
},
{
ruler = 'Psamtik II',
rulerlink = '',
rulerstart = - 595,
rulerend = - 589,
coruler = ''
},
{
ruler = 'Apries',
rulerlink = '',
rulerstart = - 589,
rulerend = - 570,
coruler = ''
},
{
ruler = 'Amasis II',
rulerlink = '',
rulerstart = - 570,
rulerend = - 526,
coruler = ''
},
{
ruler = 'Psamtik III',
rulerlink = '',
rulerstart = - 526,
rulerend = - 525,
coruler = ''
},
{
ruler = 'Cambyses II of Persia',
rulerlink = '',
rulerstart = - 525,
rulerend = - 521,
coruler = ''
},
{
ruler = 'Darius I of Persia',
rulerlink = '',
rulerstart = - 521,
rulerend = - 486,
coruler = ''
},
{
ruler = 'Xerxes I of Persia',
rulerlink = '',
rulerstart = - 485,
rulerend = - 465,
coruler = ''
},
{
ruler = 'Artaxerxes I of Persia',
rulerlink = '',
rulerstart = - 465,
rulerend = - 424,
coruler = ''
},
{
ruler = 'Darius II of Persia',
rulerlink = '',
rulerstart = - 423,
rulerend = - 405,
coruler = ''
},
{
ruler = 'Amyrtaeus',
rulerlink = '',
rulerstart = - 404,
rulerend = - 399,
coruler = ''
},
{
ruler = 'Nepherites I',
rulerlink = '',
rulerstart = - 398,
rulerend = - 393,
coruler = ''
},
{
ruler = 'Hakor',
rulerlink = '',
rulerstart = - 393,
rulerend = - 380,
coruler = ''
},
{
ruler = 'Nectanebo I',
rulerlink = '',
rulerstart = - 380,
rulerend = - 362,
coruler = ''
},
{
ruler = 'Djedhor',
rulerlink = '',
rulerstart = - 362,
rulerend = - 360,
coruler = ''
},
{
ruler = 'Nectanebo II',
rulerlink = '',
rulerstart = - 360,
rulerend = - 343,
coruler = ''
},
{
ruler = 'Artaxerxes III of Persia',
rulerlink = '',
rulerstart = - 343,
rulerend = - 338,
coruler = ''
},
{
ruler = 'Arses of Persia',
rulerlink = '',
rulerstart = - 338,
rulerend = - 337,
coruler = ''
},
{
ruler = 'Darius III of Persia',
rulerlink = '',
rulerstart = - 336,
rulerend = - 332,
coruler = ''
},
{
ruler = 'Alexander the Great',
rulerlink = '',
rulerstart = - 332,
rulerend = - 323,
coruler = ''
},
{
ruler = 'Ptolemy I Soter',
rulerlink = '',
rulerstart = - 323,
rulerend = - 283,
coruler = ''
},
{
ruler = 'Ptolemy II Philadelphus',
rulerlink = '',
rulerstart = - 283,
rulerend = - 246,
coruler = ''
},
{
ruler = 'Ptolemy III Euergetes',
rulerlink = '',
rulerstart = - 246,
rulerend = - 222,
coruler = ''
},
{
ruler = 'Ptolemy IV Philopator',
rulerlink = '',
rulerstart = - 221,
rulerend = - 204,
coruler = ''
},
{
ruler = 'Ptolemy V Epiphanes',
rulerlink = '',
rulerstart = - 203,
rulerend = - 181,
coruler = ''
},
{
ruler = 'Ptolemy VI Philometor',
rulerlink = '',
rulerstart = - 180,
rulerend = - 145,
coruler = ''
},
{
ruler = 'Ptolemy VIII Physcon',
rulerlink = '',
rulerstart = - 145,
rulerend = - 116,
coruler = ''
},
{
ruler = 'Ptolemy IX Lathyros',
rulerlink = '',
rulerstart = - 116,
rulerend = - 107,
coruler = ''
},
{
ruler = 'Ptolemy X Alexander',
rulerlink = '',
rulerstart = - 107,
rulerend = - 88,
coruler = ''
},
{
ruler = 'Ptolemy IX Lathyros',
rulerlink = '',
rulerstart = - 88,
rulerend = - 81,
coruler = ''
},
{
ruler = 'Ptolemy XII Auletes',
rulerlink = '',
rulerstart = - 80,
rulerend = - 51,
coruler = ''
},
{
ruler = 'Cleopatra VII',
rulerlink = '',
rulerstart = - 51,
rulerend = - 30,
coruler = ''
},
}
lf2lih8h3w5p3d0w6d3fv3nn8p30ywq
فرما:Number sign
10
33061
153340
2021-01-25T01:30:52Z
en>Jonesey95
0
Adding unknown parameter tracking through [[:Category:Pages using number sign with unknown parameters]] using [[Module:check for unknown parameters]]
153340
wikitext
text/x-wiki
<nowiki>#</nowiki>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using number sign template with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Number sign]] with unknown parameter "_VALUE_"|ignoreblank=y}}<noinclude>
{{Documentation}}
<!-- Please add categories to the /doc subpage, and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
</noinclude>
4si6ounncqlxvrasiz3fjx7kx7ik707
153341
153340
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Template:Number_sign]]: Needed locally
153340
wikitext
text/x-wiki
<nowiki>#</nowiki>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using number sign template with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Number sign]] with unknown parameter "_VALUE_"|ignoreblank=y}}<noinclude>
{{Documentation}}
<!-- Please add categories to the /doc subpage, and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
</noinclude>
4si6ounncqlxvrasiz3fjx7kx7ik707
فرما:Hash
10
33062
153342
2021-04-13T18:32:41Z
en>DB1729
0
Reverted 1 edit by [[Special:Contributions/2401:4900:5813:66C:E03A:9DE8:B6F9:4B7A|2401:4900:5813:66C:E03A:9DE8:B6F9:4B7A]] ([[User talk:2401:4900:5813:66C:E03A:9DE8:B6F9:4B7A|talk]]): Misplaced/stray characters
153342
wikitext
text/x-wiki
#REDIRECT[[Template:Number sign]]{{R from move}}
k4bbtxf4zvm6h17sac3g39dic1z43oa
153343
153342
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Template:Hash]]: Needed locally
153342
wikitext
text/x-wiki
#REDIRECT[[Template:Number sign]]{{R from move}}
k4bbtxf4zvm6h17sac3g39dic1z43oa
Module:Armenian
828
33063
153348
2023-09-30T03:29:09Z
en>Pppery
0
Changed protection settings for "[[Module:Armenian]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
153348
Scribunto
text/plain
-- This module implements {{Armenian}}. It converts numbers to old Armenian
-- numerals, for numbers from 1-29999.
local p = {}
function p.main( frame )
-- If we are being called from #invoke, then the number is the first positional
-- argument. If not, it is the frame parameter.
local num
if frame == mw.getCurrentFrame() then
num = frame:getParent().args[ 1 ]
local frameArgsNum = frame.args[ 1 ]
if frameArgsNum then
num = frameArgsNum
end
else
num = frame
end
-- Convert the input to an integer if possible.
if type( num ) ~= 'number' then
num = tonumber( num )
end
if not num then return '' end
num = math.floor( num )
-- Exit if the number is not expressible in Armenian numerals.
-- FIXME: Check if Armenian numerals can really be made 10,000x bigger through
-- overlining them as it says in our article. (That claim is unsourced.) If they
-- can, there is code at [[Module:Roman]] that can be stolen from to make it work.
if num < 1 or num > 29999 then return '' end
local numerals = {
{ 20000, "Ֆ" }, { 10000, "Օ" },
{ 9000, "Ք" }, { 8000, "Փ" }, { 7000, "Ւ" }, { 6000, "Ց" }, { 5000, "Ր" }, { 4000, "Տ" }, { 3000, "Վ" }, { 2000, "Ս" }, { 1000, "Ռ" },
{ 900, "Ջ" }, { 800, "Պ" }, { 700, "Չ" }, { 600, "Ո" }, { 500, "Շ" }, { 400, "Ն" }, { 300, "Յ" }, { 200, "Մ" }, { 100, "Ճ" },
{ 90, "Ղ" }, { 80, "Ձ" }, { 70, "Հ" }, { 60, "Կ" }, { 50, "Ծ" }, { 40, "Խ" }, { 30, "Լ" }, { 20, "Ի" }, { 10, "Ժ" },
{ 9, "Թ" }, { 8, "Ը" }, { 7, "Է" }, { 6, "Զ" }, { 5, "Ե" }, { 4, "Դ" }, { 3, "Գ" }, { 2, "Բ" }, { 1, "Ա" }
}
local ret = {}
for _, v in ipairs( numerals ) do
local val, letter = unpack( v )
while num >= val do
num = num - val
table.insert( ret, letter )
end
end
return table.concat( ret )
end
return p
oqsbmhfa7jea4v8rzfmf44mtj16i4zl
153349
153348
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Module:Armenian]]: Needed locally
153348
Scribunto
text/plain
-- This module implements {{Armenian}}. It converts numbers to old Armenian
-- numerals, for numbers from 1-29999.
local p = {}
function p.main( frame )
-- If we are being called from #invoke, then the number is the first positional
-- argument. If not, it is the frame parameter.
local num
if frame == mw.getCurrentFrame() then
num = frame:getParent().args[ 1 ]
local frameArgsNum = frame.args[ 1 ]
if frameArgsNum then
num = frameArgsNum
end
else
num = frame
end
-- Convert the input to an integer if possible.
if type( num ) ~= 'number' then
num = tonumber( num )
end
if not num then return '' end
num = math.floor( num )
-- Exit if the number is not expressible in Armenian numerals.
-- FIXME: Check if Armenian numerals can really be made 10,000x bigger through
-- overlining them as it says in our article. (That claim is unsourced.) If they
-- can, there is code at [[Module:Roman]] that can be stolen from to make it work.
if num < 1 or num > 29999 then return '' end
local numerals = {
{ 20000, "Ֆ" }, { 10000, "Օ" },
{ 9000, "Ք" }, { 8000, "Փ" }, { 7000, "Ւ" }, { 6000, "Ց" }, { 5000, "Ր" }, { 4000, "Տ" }, { 3000, "Վ" }, { 2000, "Ս" }, { 1000, "Ռ" },
{ 900, "Ջ" }, { 800, "Պ" }, { 700, "Չ" }, { 600, "Ո" }, { 500, "Շ" }, { 400, "Ն" }, { 300, "Յ" }, { 200, "Մ" }, { 100, "Ճ" },
{ 90, "Ղ" }, { 80, "Ձ" }, { 70, "Հ" }, { 60, "Կ" }, { 50, "Ծ" }, { 40, "Խ" }, { 30, "Լ" }, { 20, "Ի" }, { 10, "Ժ" },
{ 9, "Թ" }, { 8, "Ը" }, { 7, "Է" }, { 6, "Զ" }, { 5, "Ե" }, { 4, "Դ" }, { 3, "Գ" }, { 2, "Բ" }, { 1, "Ա" }
}
local ret = {}
for _, v in ipairs( numerals ) do
local val, letter = unpack( v )
while num >= val do
num = num - val
table.insert( ret, letter )
end
end
return table.concat( ret )
end
return p
oqsbmhfa7jea4v8rzfmf44mtj16i4zl
Module:British regnal year
828
33064
153350
2023-09-30T03:29:27Z
en>Pppery
0
Changed protection settings for "[[Module:British regnal year]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))
153350
Scribunto
text/plain
-- This module implements {{British regnal year}}. It converts a year in the Gregorian
-- calendar to the equivalent English or British regnal year.
local data = mw.loadData( 'Module:British regnal year/data' )
local p = {}
function p.main( frame )
-- If we are being called from #invoke, then the year is the first positional
-- argument. If not, it is the frame parameter.
local inputYear
if frame == mw.getCurrentFrame() then
inputYear = frame:getParent().args[ 1 ]
local frameArgsYear = frame.args[ 1 ]
if frameArgsYear then
inputYear = frameArgsYear
end
else
inputYear = frame
end
-- Convert the input to an integer if possible. Return "N/A" if the input could
-- not be converted, or if the converted input is too big or too small.
if type( inputYear ) ~= 'number' then
inputYear = tonumber( inputYear )
end
if not inputYear then
return "''N/A''"
end
local currentYear = tonumber( mw.language.getContentLanguage():formatDate( 'Y' ) )
-- The year 1066 is significant because it is when the Norman conquest of England occurred.
if inputYear < 1066 or inputYear > currentYear then
return "''N/A''"
end
-- Find the year in the data page and display the output.
for _, t in ipairs( data ) do
local dataYear = t.year
if inputYear >= dataYear then
-- Get data values from the data page.
local startYear = t.startYear
local currentRegnalYear = inputYear - dataYear + startYear
local linkCurrent = t.linkCurrent
local prevEndYear = t.prevEndYear
local linkPrev = t.linkPrev
local note = t.note
if inputYear > dataYear then
-- Years with the same monarch.
return mw.ustring.format(
'%d %s – %d %s%s',
currentRegnalYear - 1, linkCurrent, currentRegnalYear, linkCurrent, note or ''
)
elseif inputYear == dataYear and prevEndYear and linkPrev then
-- Years with a different monarch.
return mw.ustring.format(
'%d %s – %d %s%s',
prevEndYear, linkPrev, currentRegnalYear, linkCurrent, note or ''
)
else
-- This should only match the year 1066.
return mw.ustring.format(
'%d %s%s',
currentRegnalYear, linkCurrent, note or ''
)
end
end
end
end
return p
cimaue3v8expoeneh5xy16j5t1t6jl9
153351
153350
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Module:British_regnal_year]]: Needed locally
153350
Scribunto
text/plain
-- This module implements {{British regnal year}}. It converts a year in the Gregorian
-- calendar to the equivalent English or British regnal year.
local data = mw.loadData( 'Module:British regnal year/data' )
local p = {}
function p.main( frame )
-- If we are being called from #invoke, then the year is the first positional
-- argument. If not, it is the frame parameter.
local inputYear
if frame == mw.getCurrentFrame() then
inputYear = frame:getParent().args[ 1 ]
local frameArgsYear = frame.args[ 1 ]
if frameArgsYear then
inputYear = frameArgsYear
end
else
inputYear = frame
end
-- Convert the input to an integer if possible. Return "N/A" if the input could
-- not be converted, or if the converted input is too big or too small.
if type( inputYear ) ~= 'number' then
inputYear = tonumber( inputYear )
end
if not inputYear then
return "''N/A''"
end
local currentYear = tonumber( mw.language.getContentLanguage():formatDate( 'Y' ) )
-- The year 1066 is significant because it is when the Norman conquest of England occurred.
if inputYear < 1066 or inputYear > currentYear then
return "''N/A''"
end
-- Find the year in the data page and display the output.
for _, t in ipairs( data ) do
local dataYear = t.year
if inputYear >= dataYear then
-- Get data values from the data page.
local startYear = t.startYear
local currentRegnalYear = inputYear - dataYear + startYear
local linkCurrent = t.linkCurrent
local prevEndYear = t.prevEndYear
local linkPrev = t.linkPrev
local note = t.note
if inputYear > dataYear then
-- Years with the same monarch.
return mw.ustring.format(
'%d %s – %d %s%s',
currentRegnalYear - 1, linkCurrent, currentRegnalYear, linkCurrent, note or ''
)
elseif inputYear == dataYear and prevEndYear and linkPrev then
-- Years with a different monarch.
return mw.ustring.format(
'%d %s – %d %s%s',
prevEndYear, linkPrev, currentRegnalYear, linkCurrent, note or ''
)
else
-- This should only match the year 1066.
return mw.ustring.format(
'%d %s%s',
currentRegnalYear, linkCurrent, note or ''
)
end
end
end
end
return p
cimaue3v8expoeneh5xy16j5t1t6jl9
Module:British regnal year/data
828
33065
153352
2024-04-14T15:30:21Z
en>Jonesey95
0
bypass more redirects
153352
Scribunto
text/plain
-- This is the data for Module:British regnal year. It stores the year that British monarchs
-- ascended to the throne, and the links to their Wikipedia articles.
return {
{
year = 2022,
linkCurrent = '[[Charles III|Cha. 3]]',
startYear = 1,
linkPrev = '[[Elizabeth II|Eliz. 2]]',
prevEndYear = 70
},
{
year = 1952,
linkCurrent = '[[Elizabeth II|Eliz. 2]]',
startYear = 1,
linkPrev = '[[George VI|Geo. 6]]',
prevEndYear = 16
},
{
year = 1937,
linkCurrent = '[[George VI|Geo. 6]]',
startYear = 2,
linkPrev = '[[George VI|Geo. 6]]',
prevEndYear = 1
},
{
year = 1936,
linkCurrent = '[[George VI|Geo. 6]]',
startYear = 1,
linkPrev = '[[George V|Geo. 5]] – 1 [[Edward VIII|Edw. 8]]',
prevEndYear = 26
},
{
year = 1910,
linkCurrent = '[[George V|Geo. 5]]',
startYear = 1,
linkPrev = '[[Edward VII|Edw. 7]]',
prevEndYear = 10
},
{
year = 1901,
linkCurrent = '[[Edward VII|Edw. 7]]',
startYear = 1,
linkPrev = '[[Queen Victoria|Vict. 1]]',
prevEndYear = 64
},
{
year = 1837,
linkCurrent = '[[Queen Victoria|Vict. 1]]',
startYear = 1,
linkPrev = '[[William IV|Will. 4]]',
prevEndYear = 7
},
{
year = 1830,
linkCurrent = '[[William IV|Will. 4]]',
startYear = 1,
linkPrev = '[[George IV|Geo. 4]]',
prevEndYear = 10
},
{
year = 1820,
linkCurrent = '[[George IV|Geo. 4]]',
startYear = 1,
linkPrev = '[[George III|Geo. 3]]',
prevEndYear = 60
},
{
year = 1760,
linkCurrent = '[[George III|Geo. 3]]',
startYear = 1,
linkPrev = '[[George II of Great Britain|Geo. 2]]',
prevEndYear = 33
},
{
year = 1727,
linkCurrent = '[[George II of Great Britain|Geo. 2]]',
startYear = 1,
linkPrev = '[[George I of Great Britain|Geo. 1]]',
prevEndYear = 13
},
{
year = 1714,
linkCurrent = '[[George I of Great Britain|Geo. 1]]',
startYear = 1,
linkPrev = '[[Anne, Queen of Great Britain|Ann. 1]]',
prevEndYear = 12
},
{
year = 1702,
linkCurrent = '[[Anne, Queen of Great Britain|Ann. 1]]',
startYear = 1,
linkPrev = '[[William III of England|Will. 3]]',
prevEndYear = 14
},
{
year = 1695,
linkCurrent = '[[William III of England|Will. 3]]',
startYear = 8,
linkPrev = '[[William III of England|Will.]] & [[Mary II|Mar.]]',
prevEndYear = 7
},
{
year = 1688,
linkCurrent = '[[William III of England|Will.]] & [[Mary II|Mar.]]',
startYear = 1,
linkPrev = '[[James II of England|Ja. 2]]',
prevEndYear = 3
},
{
year = 1685,
linkCurrent = '[[James II of England|Ja. 2]]',
startYear = 1,
linkPrev = '[[Charles II of England|Cha. 2]]',
prevEndYear = 36
},
{
year = 1660,
linkCurrent = '[[Charles II of England|Cha. 2]]',
startYear = 12,
linkPrev = '[[Charles II of England|Cha. 2]]',
prevEndYear = 11
},
{
year = 1649,
linkCurrent = '[[Charles II of England|Cha. 2]]',
startYear = 1,
linkPrev = '[[Charles I of England|Cha. 1]]',
prevEndYear = 24,
note = "<br />''([[Interregnum (England)|Interregnum]])''"
},
{
year = 1625,
linkCurrent = '[[Charles I of England|Cha. 1]]',
startYear = 1,
linkPrev = '[[James VI and I|Ja. 1]]',
prevEndYear = 22
},
{
year = 1603,
linkCurrent = '[[James VI and I|Ja. 1]]',
startYear = 1,
linkPrev = '[[Elizabeth I|Eliz. 1]]',
prevEndYear = 45
},
{
year = 1558,
linkCurrent = '[[Elizabeth I|Eliz. 1]]',
startYear = 1,
linkPrev = '[[Philip II of Spain|Ph.]] & [[Mary I of England|M.]]',
prevEndYear = 4
},
{
year = 1554,
linkCurrent = '[[Philip II of Spain|Ph.]] & [[Mary I of England|M.]]',
startYear = 1,
linkPrev = '[[Mary I of England|Mar. 1]]',
prevEndYear = 1
},
{
year = 1553,
linkCurrent = '[[Mary I of England|Mar. 1]]',
startYear = 1,
linkPrev = '[[Edward VI of England|Edw. 6]]',
prevEndYear = 6
},
{
year = 1547,
linkCurrent = '[[Edward VI of England|Edw. 6]]',
startYear = 1,
linkPrev = '[[Henry VIII of England|Hen. 8]]',
prevEndYear = 38
},
{
year = 1509,
linkCurrent = '[[Henry VIII of England|Hen. 8]]',
startYear = 1,
linkPrev = '[[Henry VII of England|Hen. 7]]',
prevEndYear = 24
},
{
year = 1485,
linkCurrent = '[[Henry VII of England|Hen. 7]]',
startYear = 1,
linkPrev = '[[Richard III of England|Ric. 3]]',
prevEndYear = 2
},
{
year = 1483,
linkCurrent = '[[Richard III of England|Ric. 3]]',
startYear = 1,
linkPrev = '[[Edward IV of England|Edw. 4]]',
prevEndYear = 22
},
{
year = 1461,
linkCurrent = '[[Edward IV of England|Edw. 4]]',
startYear = 1,
linkPrev = '[[Henry VI of England|Hen. 6]]',
prevEndYear = 39
},
{
year = 1422,
linkCurrent = '[[Henry VI of England|Hen. 6]]',
startYear = 1,
linkPrev = '[[Henry V of England|Hen. 5]]',
prevEndYear = 9
},
{
year = 1413,
linkCurrent = '[[Henry V of England|Hen. 5]]',
startYear = 1,
linkPrev = '[[Henry IV of England|Hen. 4]]',
prevEndYear = 14
},
{
year = 1399,
linkCurrent = '[[Henry IV of England|Hen. 4]]',
startYear = 1,
linkPrev = '[[Richard II of England|Ric. 2]]',
prevEndYear = 22
},
{
year = 1377,
linkCurrent = '[[Richard II of England|Ric. 2]]',
startYear = 1,
linkPrev = '[[Edward III of England|Edw. 3]]',
prevEndYear = 50
},
{
year = 1327,
linkCurrent = '[[Edward III of England|Edw. 3]]',
startYear = 1,
linkPrev = '[[Edward II of England|Edw. 2]]',
prevEndYear = 20
},
{
year = 1307,
linkCurrent = '[[Edward II of England|Edw. 2]]',
startYear = 1,
linkPrev = '[[Edward I of England|Edw. 1]]',
prevEndYear = 35
},
{
year = 1272,
linkCurrent = '[[Edward I of England|Edw. 1]]',
startYear = 1,
linkPrev = '[[Henry III of England|Hen. 3]]',
prevEndYear = 56
},
{
year = 1216,
linkCurrent = '[[Henry III of England|Hen. 3]]',
startYear = 1,
linkPrev = '[[John, King of England|Joh. 1]]',
prevEndYear = 17
},
{
year = 1199,
linkCurrent = '[[John, King of England|Joh. 1]]',
startYear = 1,
linkPrev = '[[Richard I of England|Ric. 1]]',
prevEndYear = 10
},
{
year = 1189,
linkCurrent = '[[Richard I of England|Ric. 1]]',
startYear = 1,
linkPrev = '[[Henry II of England|Hen. 2]]',
prevEndYear = 35
},
{
year = 1154,
linkCurrent = '[[Henry II of England|Hen. 2]]',
startYear = 1,
linkPrev = '[[Stephen, King of England|Ste. 1]]',
prevEndYear = 19
},
{
year = 1135,
linkCurrent = '[[Stephen, King of England|Ste. 1]]',
startYear = 1,
linkPrev = '[[Henry I of England|Hen. 1]]',
prevEndYear = 35
},
{
year = 1100,
linkCurrent = '[[Henry I of England|Hen. 1]]',
startYear = 1,
linkPrev = '[[William II of England|Will. 2]]',
prevEndYear = 13
},
{
year = 1087,
linkCurrent = '[[William II of England|Will. 2]]',
startYear = 1,
linkPrev = '[[William the Conqueror|Will. 1]]',
prevEndYear = 21
},
{
year = 1066,
startYear = 1,
linkCurrent = '[[William the Conqueror|Will. 1]]'
}
}
3p7deonegyop3gqziaregedc06n3n3h
153353
153352
2026-10-06T18:16:04Z
511KeV
8268
1 revision imported from [[:en:Module:British_regnal_year/data]]: Needed locally
153352
Scribunto
text/plain
-- This is the data for Module:British regnal year. It stores the year that British monarchs
-- ascended to the throne, and the links to their Wikipedia articles.
return {
{
year = 2022,
linkCurrent = '[[Charles III|Cha. 3]]',
startYear = 1,
linkPrev = '[[Elizabeth II|Eliz. 2]]',
prevEndYear = 70
},
{
year = 1952,
linkCurrent = '[[Elizabeth II|Eliz. 2]]',
startYear = 1,
linkPrev = '[[George VI|Geo. 6]]',
prevEndYear = 16
},
{
year = 1937,
linkCurrent = '[[George VI|Geo. 6]]',
startYear = 2,
linkPrev = '[[George VI|Geo. 6]]',
prevEndYear = 1
},
{
year = 1936,
linkCurrent = '[[George VI|Geo. 6]]',
startYear = 1,
linkPrev = '[[George V|Geo. 5]] – 1 [[Edward VIII|Edw. 8]]',
prevEndYear = 26
},
{
year = 1910,
linkCurrent = '[[George V|Geo. 5]]',
startYear = 1,
linkPrev = '[[Edward VII|Edw. 7]]',
prevEndYear = 10
},
{
year = 1901,
linkCurrent = '[[Edward VII|Edw. 7]]',
startYear = 1,
linkPrev = '[[Queen Victoria|Vict. 1]]',
prevEndYear = 64
},
{
year = 1837,
linkCurrent = '[[Queen Victoria|Vict. 1]]',
startYear = 1,
linkPrev = '[[William IV|Will. 4]]',
prevEndYear = 7
},
{
year = 1830,
linkCurrent = '[[William IV|Will. 4]]',
startYear = 1,
linkPrev = '[[George IV|Geo. 4]]',
prevEndYear = 10
},
{
year = 1820,
linkCurrent = '[[George IV|Geo. 4]]',
startYear = 1,
linkPrev = '[[George III|Geo. 3]]',
prevEndYear = 60
},
{
year = 1760,
linkCurrent = '[[George III|Geo. 3]]',
startYear = 1,
linkPrev = '[[George II of Great Britain|Geo. 2]]',
prevEndYear = 33
},
{
year = 1727,
linkCurrent = '[[George II of Great Britain|Geo. 2]]',
startYear = 1,
linkPrev = '[[George I of Great Britain|Geo. 1]]',
prevEndYear = 13
},
{
year = 1714,
linkCurrent = '[[George I of Great Britain|Geo. 1]]',
startYear = 1,
linkPrev = '[[Anne, Queen of Great Britain|Ann. 1]]',
prevEndYear = 12
},
{
year = 1702,
linkCurrent = '[[Anne, Queen of Great Britain|Ann. 1]]',
startYear = 1,
linkPrev = '[[William III of England|Will. 3]]',
prevEndYear = 14
},
{
year = 1695,
linkCurrent = '[[William III of England|Will. 3]]',
startYear = 8,
linkPrev = '[[William III of England|Will.]] & [[Mary II|Mar.]]',
prevEndYear = 7
},
{
year = 1688,
linkCurrent = '[[William III of England|Will.]] & [[Mary II|Mar.]]',
startYear = 1,
linkPrev = '[[James II of England|Ja. 2]]',
prevEndYear = 3
},
{
year = 1685,
linkCurrent = '[[James II of England|Ja. 2]]',
startYear = 1,
linkPrev = '[[Charles II of England|Cha. 2]]',
prevEndYear = 36
},
{
year = 1660,
linkCurrent = '[[Charles II of England|Cha. 2]]',
startYear = 12,
linkPrev = '[[Charles II of England|Cha. 2]]',
prevEndYear = 11
},
{
year = 1649,
linkCurrent = '[[Charles II of England|Cha. 2]]',
startYear = 1,
linkPrev = '[[Charles I of England|Cha. 1]]',
prevEndYear = 24,
note = "<br />''([[Interregnum (England)|Interregnum]])''"
},
{
year = 1625,
linkCurrent = '[[Charles I of England|Cha. 1]]',
startYear = 1,
linkPrev = '[[James VI and I|Ja. 1]]',
prevEndYear = 22
},
{
year = 1603,
linkCurrent = '[[James VI and I|Ja. 1]]',
startYear = 1,
linkPrev = '[[Elizabeth I|Eliz. 1]]',
prevEndYear = 45
},
{
year = 1558,
linkCurrent = '[[Elizabeth I|Eliz. 1]]',
startYear = 1,
linkPrev = '[[Philip II of Spain|Ph.]] & [[Mary I of England|M.]]',
prevEndYear = 4
},
{
year = 1554,
linkCurrent = '[[Philip II of Spain|Ph.]] & [[Mary I of England|M.]]',
startYear = 1,
linkPrev = '[[Mary I of England|Mar. 1]]',
prevEndYear = 1
},
{
year = 1553,
linkCurrent = '[[Mary I of England|Mar. 1]]',
startYear = 1,
linkPrev = '[[Edward VI of England|Edw. 6]]',
prevEndYear = 6
},
{
year = 1547,
linkCurrent = '[[Edward VI of England|Edw. 6]]',
startYear = 1,
linkPrev = '[[Henry VIII of England|Hen. 8]]',
prevEndYear = 38
},
{
year = 1509,
linkCurrent = '[[Henry VIII of England|Hen. 8]]',
startYear = 1,
linkPrev = '[[Henry VII of England|Hen. 7]]',
prevEndYear = 24
},
{
year = 1485,
linkCurrent = '[[Henry VII of England|Hen. 7]]',
startYear = 1,
linkPrev = '[[Richard III of England|Ric. 3]]',
prevEndYear = 2
},
{
year = 1483,
linkCurrent = '[[Richard III of England|Ric. 3]]',
startYear = 1,
linkPrev = '[[Edward IV of England|Edw. 4]]',
prevEndYear = 22
},
{
year = 1461,
linkCurrent = '[[Edward IV of England|Edw. 4]]',
startYear = 1,
linkPrev = '[[Henry VI of England|Hen. 6]]',
prevEndYear = 39
},
{
year = 1422,
linkCurrent = '[[Henry VI of England|Hen. 6]]',
startYear = 1,
linkPrev = '[[Henry V of England|Hen. 5]]',
prevEndYear = 9
},
{
year = 1413,
linkCurrent = '[[Henry V of England|Hen. 5]]',
startYear = 1,
linkPrev = '[[Henry IV of England|Hen. 4]]',
prevEndYear = 14
},
{
year = 1399,
linkCurrent = '[[Henry IV of England|Hen. 4]]',
startYear = 1,
linkPrev = '[[Richard II of England|Ric. 2]]',
prevEndYear = 22
},
{
year = 1377,
linkCurrent = '[[Richard II of England|Ric. 2]]',
startYear = 1,
linkPrev = '[[Edward III of England|Edw. 3]]',
prevEndYear = 50
},
{
year = 1327,
linkCurrent = '[[Edward III of England|Edw. 3]]',
startYear = 1,
linkPrev = '[[Edward II of England|Edw. 2]]',
prevEndYear = 20
},
{
year = 1307,
linkCurrent = '[[Edward II of England|Edw. 2]]',
startYear = 1,
linkPrev = '[[Edward I of England|Edw. 1]]',
prevEndYear = 35
},
{
year = 1272,
linkCurrent = '[[Edward I of England|Edw. 1]]',
startYear = 1,
linkPrev = '[[Henry III of England|Hen. 3]]',
prevEndYear = 56
},
{
year = 1216,
linkCurrent = '[[Henry III of England|Hen. 3]]',
startYear = 1,
linkPrev = '[[John, King of England|Joh. 1]]',
prevEndYear = 17
},
{
year = 1199,
linkCurrent = '[[John, King of England|Joh. 1]]',
startYear = 1,
linkPrev = '[[Richard I of England|Ric. 1]]',
prevEndYear = 10
},
{
year = 1189,
linkCurrent = '[[Richard I of England|Ric. 1]]',
startYear = 1,
linkPrev = '[[Henry II of England|Hen. 2]]',
prevEndYear = 35
},
{
year = 1154,
linkCurrent = '[[Henry II of England|Hen. 2]]',
startYear = 1,
linkPrev = '[[Stephen, King of England|Ste. 1]]',
prevEndYear = 19
},
{
year = 1135,
linkCurrent = '[[Stephen, King of England|Ste. 1]]',
startYear = 1,
linkPrev = '[[Henry I of England|Hen. 1]]',
prevEndYear = 35
},
{
year = 1100,
linkCurrent = '[[Henry I of England|Hen. 1]]',
startYear = 1,
linkPrev = '[[William II of England|Will. 2]]',
prevEndYear = 13
},
{
year = 1087,
linkCurrent = '[[William II of England|Will. 2]]',
startYear = 1,
linkPrev = '[[William the Conqueror|Will. 1]]',
prevEndYear = 21
},
{
year = 1066,
startYear = 1,
linkCurrent = '[[William the Conqueror|Will. 1]]'
}
}
3p7deonegyop3gqziaregedc06n3n3h
Module:Convert character width
828
33066
153354
2023-09-30T03:30:30Z
en>Pppery
0
Changed protection settings for "[[Module:Convert character width]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))
153354
Scribunto
text/plain
-- This module converts support characters from half-width to full-width, and vice versa.
-- See [[Halfwidth and fullwidth forms]] for an explanation of half- and full-width characters.
-- @todo FIXME: Needs more characters adding, needs support for diacritic marks.
local data = mw.loadData( 'Module:Convert character width/data' )
local p = {}
-- Converts one half-width character to one full-width character.
local function getFull( s )
return data[ s ] or s
end
-- Converts one full-width character to one half-width character.
local function getHalf( s )
for half, full in pairs( data ) do
if s == full then
return half
end
end
return s
end
-- Converts multiple half-width characters to full-width characters.
function p.full( frame )
local s = type( frame ) == 'table' and frame.args and frame.args[ 1 ] or frame
s = type( s ) == 'number' and tostring( s ) or s
if type( s ) ~= 'string' then return end
return ( mw.ustring.gsub( s, '.', getFull ) )
end
-- Converts multiple full-width characters to half-width characters.
function p.half( frame )
local s = type( frame ) == 'table' and frame.args and frame.args[ 1 ] or frame
s = type( s ) == 'number' and tostring( s ) or s
if type( s ) ~= 'string' then return end
return ( mw.ustring.gsub( s, '.', getHalf ) )
end
return p
8hxk1rupqmuwu208z9w8suwqp1u08zw
153355
153354
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Module:Convert_character_width]]: Needed locally
153354
Scribunto
text/plain
-- This module converts support characters from half-width to full-width, and vice versa.
-- See [[Halfwidth and fullwidth forms]] for an explanation of half- and full-width characters.
-- @todo FIXME: Needs more characters adding, needs support for diacritic marks.
local data = mw.loadData( 'Module:Convert character width/data' )
local p = {}
-- Converts one half-width character to one full-width character.
local function getFull( s )
return data[ s ] or s
end
-- Converts one full-width character to one half-width character.
local function getHalf( s )
for half, full in pairs( data ) do
if s == full then
return half
end
end
return s
end
-- Converts multiple half-width characters to full-width characters.
function p.full( frame )
local s = type( frame ) == 'table' and frame.args and frame.args[ 1 ] or frame
s = type( s ) == 'number' and tostring( s ) or s
if type( s ) ~= 'string' then return end
return ( mw.ustring.gsub( s, '.', getFull ) )
end
-- Converts multiple full-width characters to half-width characters.
function p.half( frame )
local s = type( frame ) == 'table' and frame.args and frame.args[ 1 ] or frame
s = type( s ) == 'number' and tostring( s ) or s
if type( s ) ~= 'string' then return end
return ( mw.ustring.gsub( s, '.', getHalf ) )
end
return p
8hxk1rupqmuwu208z9w8suwqp1u08zw
Module:Convert character width/data
828
33067
153356
2021-10-26T17:25:21Z
en>MusikBot II
0
Changed protection settings for "[[Module:Convert character width/data]]": [[Wikipedia:High-risk templates|High-risk template or module]]: 2783 transclusions ([[User:MusikBot II/TemplateProtector|more info]]) ([Edit=Require extended confirmed access] (indefinite) [Move=Require administrator access] (indefinite))
153356
Scribunto
text/plain
-- This is the data page for [[Module:Convert character width]].
-- TODO: There are quite a few missing characters. See [[Halfwidth and Fullwidth Forms (Unicode block)]] for the full list.
local convert = {
[" "] = " ",
["!"] = "!",
['"'] = '"',
['#'] = '#',
['$'] = '$',
['\%'] = '%', -- This needs to be escaped, otherwise it generates invalid pattern matches.
['&'] = '&',
["'"] = "'",
['('] = '(',
[')'] = ')',
['*'] = '*',
['+'] = '+',
[','] = ',',
['-'] = '-',
['.'] = '.',
['/'] = '/',
['0'] = '0',
['1'] = '1',
['2'] = '2',
['3'] = '3',
['4'] = '4',
['5'] = '5',
['6'] = '6',
['7'] = '7',
['8'] = '8',
['9'] = '9',
[':'] = ':',
[';'] = ';',
['<'] = '<',
['='] = '=',
['>'] = '>',
['?'] = '?',
['@'] = '@',
['A'] = 'A',
['B'] = 'B',
['C'] = 'C',
['D'] = 'D',
['E'] = 'E',
['F'] = 'F',
['G'] = 'G',
['H'] = 'H',
['I'] = 'I',
['J'] = 'J',
['K'] = 'K',
['L'] = 'L',
['M'] = 'M',
['N'] = 'N',
['O'] = 'O',
['P'] = 'P',
['Q'] = 'Q',
['R'] = 'R',
['S'] = 'S',
['T'] = 'T',
['U'] = 'U',
['V'] = 'V',
['W'] = 'W',
['X'] = 'X',
['Y'] = 'Y',
['Z'] = 'Z',
['['] = '[',
[ [[\]] ] = '\',
[']'] = ']',
['^'] = '^',
['_'] = '_',
['`'] = '`',
['a'] = 'a',
['b'] = 'b',
['c'] = 'c',
['d'] = 'd',
['e'] = 'e',
['f'] = 'f',
['g'] = 'g',
['h'] = 'h',
['i'] = 'i',
['j'] = 'j',
['k'] = 'k',
['l'] = 'l',
['m'] = 'm',
['n'] = 'n',
['o'] = 'o',
['p'] = 'p',
['q'] = 'q',
['r'] = 'r',
['s'] = 's',
['t'] = 't',
['u'] = 'u',
['v'] = 'v',
['w'] = 'w',
['x'] = 'x',
['y'] = 'y',
['z'] = 'z',
['{'] = '{',
['|'] = '|',
['}'] = '}',
['~'] = '~',
--[[
-- TODO: The following need to be converted to the correct characters.
[''] = '⦅',
[''] = '⦆',
[''] = '。',
[''] = '「',
[''] = '」',
[''] = '、',
[''] = '・',
--]]
['ヲ'] = 'ヲ',
['ァ'] = 'ァ',
['ィ'] = 'ィ',
['ゥ'] = 'ゥ',
['ェ'] = 'ェ',
['ォ'] = 'ォ',
['ャ'] = 'ャ',
['ュ'] = 'ュ',
['ョ'] = 'ョ',
['ッ'] = 'ッ',
['ー'] = 'ー',
['ア'] = 'ア',
['イ'] = 'イ',
['ウ'] = 'ウ',
['エ'] = 'エ',
['オ'] = 'オ',
['カ'] = 'カ',
['キ'] = 'キ',
['ク'] = 'ク',
['ケ'] = 'ケ',
['コ'] = 'コ',
['サ'] = 'サ',
['シ'] = 'シ',
['ス'] = 'ス',
['セ'] = 'セ',
['ソ'] = 'ソ',
['タ'] = 'タ',
['チ'] = 'チ',
['ツ'] = 'ツ',
['テ'] = 'テ',
['ト'] = 'ト',
['ナ'] = 'ナ',
['ニ'] = 'ニ',
['ヌ'] = 'ヌ',
['ネ'] = 'ネ',
['ノ'] = 'ノ',
['ハ'] = 'ハ',
['ヒ'] = 'ヒ',
['フ'] = 'フ',
['ヘ'] = 'ヘ',
['ホ'] = 'ホ',
['マ'] = 'マ',
['ミ'] = 'ミ',
['ム'] = 'ム',
['メ'] = 'メ',
['モ'] = 'モ',
['ヤ'] = 'ヤ',
['ユ'] = 'ユ',
['ヨ'] = 'ヨ',
['ラ'] = 'ラ',
['リ'] = 'リ',
['ル'] = 'ル',
['レ'] = 'レ',
['ロ'] = 'ロ',
['ワ'] = 'ワ',
['ン'] = 'ン'
}
return convert
dfpo1iuza15u1ovdg02esz9kwufw9pe
153357
153356
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Module:Convert_character_width/data]]: Needed locally
153356
Scribunto
text/plain
-- This is the data page for [[Module:Convert character width]].
-- TODO: There are quite a few missing characters. See [[Halfwidth and Fullwidth Forms (Unicode block)]] for the full list.
local convert = {
[" "] = " ",
["!"] = "!",
['"'] = '"',
['#'] = '#',
['$'] = '$',
['\%'] = '%', -- This needs to be escaped, otherwise it generates invalid pattern matches.
['&'] = '&',
["'"] = "'",
['('] = '(',
[')'] = ')',
['*'] = '*',
['+'] = '+',
[','] = ',',
['-'] = '-',
['.'] = '.',
['/'] = '/',
['0'] = '0',
['1'] = '1',
['2'] = '2',
['3'] = '3',
['4'] = '4',
['5'] = '5',
['6'] = '6',
['7'] = '7',
['8'] = '8',
['9'] = '9',
[':'] = ':',
[';'] = ';',
['<'] = '<',
['='] = '=',
['>'] = '>',
['?'] = '?',
['@'] = '@',
['A'] = 'A',
['B'] = 'B',
['C'] = 'C',
['D'] = 'D',
['E'] = 'E',
['F'] = 'F',
['G'] = 'G',
['H'] = 'H',
['I'] = 'I',
['J'] = 'J',
['K'] = 'K',
['L'] = 'L',
['M'] = 'M',
['N'] = 'N',
['O'] = 'O',
['P'] = 'P',
['Q'] = 'Q',
['R'] = 'R',
['S'] = 'S',
['T'] = 'T',
['U'] = 'U',
['V'] = 'V',
['W'] = 'W',
['X'] = 'X',
['Y'] = 'Y',
['Z'] = 'Z',
['['] = '[',
[ [[\]] ] = '\',
[']'] = ']',
['^'] = '^',
['_'] = '_',
['`'] = '`',
['a'] = 'a',
['b'] = 'b',
['c'] = 'c',
['d'] = 'd',
['e'] = 'e',
['f'] = 'f',
['g'] = 'g',
['h'] = 'h',
['i'] = 'i',
['j'] = 'j',
['k'] = 'k',
['l'] = 'l',
['m'] = 'm',
['n'] = 'n',
['o'] = 'o',
['p'] = 'p',
['q'] = 'q',
['r'] = 'r',
['s'] = 's',
['t'] = 't',
['u'] = 'u',
['v'] = 'v',
['w'] = 'w',
['x'] = 'x',
['y'] = 'y',
['z'] = 'z',
['{'] = '{',
['|'] = '|',
['}'] = '}',
['~'] = '~',
--[[
-- TODO: The following need to be converted to the correct characters.
[''] = '⦅',
[''] = '⦆',
[''] = '。',
[''] = '「',
[''] = '」',
[''] = '、',
[''] = '・',
--]]
['ヲ'] = 'ヲ',
['ァ'] = 'ァ',
['ィ'] = 'ィ',
['ゥ'] = 'ゥ',
['ェ'] = 'ェ',
['ォ'] = 'ォ',
['ャ'] = 'ャ',
['ュ'] = 'ュ',
['ョ'] = 'ョ',
['ッ'] = 'ッ',
['ー'] = 'ー',
['ア'] = 'ア',
['イ'] = 'イ',
['ウ'] = 'ウ',
['エ'] = 'エ',
['オ'] = 'オ',
['カ'] = 'カ',
['キ'] = 'キ',
['ク'] = 'ク',
['ケ'] = 'ケ',
['コ'] = 'コ',
['サ'] = 'サ',
['シ'] = 'シ',
['ス'] = 'ス',
['セ'] = 'セ',
['ソ'] = 'ソ',
['タ'] = 'タ',
['チ'] = 'チ',
['ツ'] = 'ツ',
['テ'] = 'テ',
['ト'] = 'ト',
['ナ'] = 'ナ',
['ニ'] = 'ニ',
['ヌ'] = 'ヌ',
['ネ'] = 'ネ',
['ノ'] = 'ノ',
['ハ'] = 'ハ',
['ヒ'] = 'ヒ',
['フ'] = 'フ',
['ヘ'] = 'ヘ',
['ホ'] = 'ホ',
['マ'] = 'マ',
['ミ'] = 'ミ',
['ム'] = 'ム',
['メ'] = 'メ',
['モ'] = 'モ',
['ヤ'] = 'ヤ',
['ユ'] = 'ユ',
['ヨ'] = 'ヨ',
['ラ'] = 'ラ',
['リ'] = 'リ',
['ル'] = 'ル',
['レ'] = 'レ',
['ロ'] = 'ロ',
['ワ'] = 'ワ',
['ン'] = 'ン'
}
return convert
dfpo1iuza15u1ovdg02esz9kwufw9pe
Module:Japanese calendar
828
33068
153358
2023-09-30T03:29:55Z
en>Pppery
0
Changed protection settings for "[[Module:Japanese calendar]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))
153358
Scribunto
text/plain
-- This module defines an "era" class for processing eras in the Japanese calendar.
-- It also contains functions to export the class properties to #invoke.
local eras = mw.loadData( 'Module:Japanese calendar/data' )
local halfToFull = require( 'Module:Convert character width' ).full -- Converts half-width characters to full-width characters.
--------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------
local function yearToEraIndex( year )
year = tonumber( year )
if type( year ) ~= 'number' then return end
for i, t in ipairs( eras ) do
if year > t.startYear then
return i
elseif year == t.startYear then
if eras[ i + 1 ] and eras[ i + 1 ].startYear == t.startYear then -- This checks for occasions when there were more than two eras in the same year. At the moment, that only applies to the year 686.
return i + 1
else
return i
end
end
end
end
local function textToEraIndex( s )
if not s or s == '' then return end
sTitle = mw.title.new( s )
for i, t in ipairs( eras ) do
if t.article and t.article ~= '' then
tTitle = mw.title.new( t.article )
if mw.title.equals( sTitle.redirectTarget or sTitle, tTitle.redirectTarget or tTitle ) then
return i
end
end
if s == t.kanji then
return i
end
end
end
--------------------------------------------------------------------
-- Era class definition
--------------------------------------------------------------------
local era = {}
era.__index = era
function era:new( init )
init = type( init ) == 'table' and init or {}
local obj = {}
-- Grab the data from the init table.
obj.gregorianYear = tonumber( init.year )
local initText = type( init.era ) == 'string' and init.era or nil
local initIndex = tonumber( init.index )
if not ( initIndex and initIndex >= 1 and math.floor( initIndex ) == initIndex and initIndex ~= math.huge ) then -- Check that initIndex is a positive integer.
initIndex = nil
end
-- Calculate the era data from the input. First we find the era from the era index, although this is only supposed
-- to be for internal use. Next we find the era from the era name or the kanji if possible, as this allows us to
-- specify the last year of one era rather than the first year of the next one, if that is the desired behaviour.
local eraIndex
if initIndex then
eraIndex = initIndex
elseif initText then
eraIndex = textToEraIndex( initText )
elseif obj.gregorianYear then
eraIndex = yearToEraIndex( obj.gregorianYear )
end
-- If the data entry was found for the era, process it and add it to the object.
if not eraIndex then return end
local eraData = eras[ eraIndex ]
if not eraData or not eraData.article or eraData.article == '' then return end -- Exit if we are not dealing with a valid era.
obj.startYear = eraData.startYear
obj.endYear = eraData.endYear
obj.article = eraData.article
obj.kanji = eraData.kanji
obj.label = eraData.label
-- Create a link to the era article if possible.
if obj.label and obj.article then
obj.link = mw.ustring.format( '[[%s|%s]]', obj.article, obj.label )
elseif obj.article then
obj.link = mw.ustring.format( '[[%s]]', obj.article )
end
-- Allow matching years to different eras, but only for the first year of the next era. For example, Taisho 15 is also Showa 1, but there is no such thing as Taisho 16.
-- So, the code era:new{ year = 1926, era = "Taishō" } will return an object with an eraYear of 15, and era:new{ year = 1926 } will return an object with an eraYear of 1.
local nextEraData = eras[ eraIndex - 1 ]
local nextStartYear = nextEraData and nextEraData.startYear
if obj.gregorianYear
and ( -- If there is a later era, only allow the first year of that era or an earlier year.
not nextStartYear
or ( nextStartYear and obj.gregorianYear <= nextStartYear )
)
and obj.gregorianYear >= obj.startYear -- Don't allow negative years.
and obj.article ~= '' -- Don't allow periods between named eras.
and ( obj.endYear and obj.gregorianYear <= obj.endYear or true ) -- If this era has an end year, don't allow years that are greater than the end year.
then
obj.eraYear = obj.gregorianYear - obj.startYear + 1
if obj.eraYear == 1 then
obj.eraYearKanji = '元'
else
obj.eraYearKanji = halfToFull( obj.eraYear )
end
end
-- Make sure obj.label is available even if it is the same as the article name.
obj.label = obj.label or obj.article
-- Add methods to get the next and previous eras.
function obj:getNextEra()
if not eraIndex then return end
return era:new{ index = eraIndex - 1, year = obj.gregorianYear }
end
function obj:getPreviousEra()
if not eraIndex then return end
return era:new{ index = eraIndex + 1, year = obj.gregorianYear }
end
-- Gets the era object for the "old" era. In most cases this is the same as the current era object, but
-- if the era year for the current object is 1, this method will return the era object for the previous
-- era. If the method can't find a valid previous era it will return the object for the current era.
function obj:getOldEra()
if obj.eraYear == 1 then
local prevEra = obj:getPreviousEra()
if prevEra then
return prevEra
else
return obj
end
else
return obj
end
end
return setmetatable( obj, {
__index = self
})
end
--------------------------------------------------------------------
-- Interface for old Japanese calendar templates
--------------------------------------------------------------------
local function getStartYear( obj )
return obj.startYear
end
local function getEndYear( obj )
return obj.endYear
end
local function getEraYear( obj )
return obj.eraYear
end
local function getEraYearKanji( obj )
return obj.eraYearKanji
end
local function getArticle( obj )
return obj.article
end
local function getLabel( obj )
return obj.label
end
local function getLink( obj )
return obj.link
end
local function getKanji( obj )
return obj.kanji
end
local function getLabelAndEraYear( obj, kanji )
local eraYear = kanji and obj.eraYearKanji or obj.eraYear
if obj.label and eraYear then
return mw.ustring.format( '%s %s', obj.label, tostring( eraYear ) )
end
end
local function getLinkAndEraYear( obj, kanji )
local eraYear = kanji and obj.eraYearKanji or obj.eraYear
if obj.link and eraYear then
return mw.ustring.format( '%s %s', obj.link, tostring( eraYear ) )
end
end
local function getLabelAndEraYearKanji( obj )
return getLabelAndEraYear( obj, true )
end
local function getLinkAndEraYearKanji( obj )
return getLinkAndEraYear( obj, true )
end
-- Process the arguments from #invoke.
local function makeWrapper( func )
return function( frame )
-- If called via #invoke, use the args passed into the invoking
-- template, or the args passed to #invoke if any exist. Otherwise
-- assume args are being passed directly in from the debug console
-- or from another Lua module.
local origArgs
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
for k, v in pairs( frame.args ) do
origArgs = frame.args
break
end
else
origArgs = frame
end
-- Trim whitespace and remove blank arguments.
local args = {}
for k, v in pairs( origArgs ) do
if type( v ) == 'string' then
v = mw.text.trim( v )
end
if v ~= '' then
args[k] = v
end
end
local myEra
local otherEraArgs = {}
table.insert( otherEraArgs, args.next )
table.insert( otherEraArgs, args.previous )
table.insert( otherEraArgs, args.old )
if #otherEraArgs > 1 then
return '<strong class="error">[[Module:Japanese calendar]] error: you can only specify one parameter out of "next", "previous" and "old".</strong>'
elseif args.next then
myEra = era:new( args ):getNextEra()
elseif args.previous then
myEra = era:new( args ):getPreviousEra()
elseif args.old then
myEra = era:new( args ):getOldEra()
else
myEra = era:new( args )
end
return myEra and func( myEra ) or ''
end
end
--------------------------------------------------------------------
-- Return the era class and the template interface
--------------------------------------------------------------------
return {
era = function () return era end, -- Accessor function for getting the era class from other modules.
baseyear = makeWrapper( getStartYear ),
endyear = makeWrapper( getEndYear ),
year = makeWrapper( getEraYear ),
kanjiyear = makeWrapper( getEraYearKanji ),
article = makeWrapper( getArticle ),
label = makeWrapper( getLabel ),
link = makeWrapper( getLink ),
kanji = makeWrapper( getKanji ),
label_year = makeWrapper( getLabelAndEraYear ),
link_year = makeWrapper( getLinkAndEraYear ),
label_kanjiyear = makeWrapper( getLabelAndEraYearKanji ),
link_kanjiyear = makeWrapper( getLinkAndEraYearKanji )
}
46zavo74df7xp6m8jbna2gwf8xjt6pb
153359
153358
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Module:Japanese_calendar]]: Needed locally
153358
Scribunto
text/plain
-- This module defines an "era" class for processing eras in the Japanese calendar.
-- It also contains functions to export the class properties to #invoke.
local eras = mw.loadData( 'Module:Japanese calendar/data' )
local halfToFull = require( 'Module:Convert character width' ).full -- Converts half-width characters to full-width characters.
--------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------
local function yearToEraIndex( year )
year = tonumber( year )
if type( year ) ~= 'number' then return end
for i, t in ipairs( eras ) do
if year > t.startYear then
return i
elseif year == t.startYear then
if eras[ i + 1 ] and eras[ i + 1 ].startYear == t.startYear then -- This checks for occasions when there were more than two eras in the same year. At the moment, that only applies to the year 686.
return i + 1
else
return i
end
end
end
end
local function textToEraIndex( s )
if not s or s == '' then return end
sTitle = mw.title.new( s )
for i, t in ipairs( eras ) do
if t.article and t.article ~= '' then
tTitle = mw.title.new( t.article )
if mw.title.equals( sTitle.redirectTarget or sTitle, tTitle.redirectTarget or tTitle ) then
return i
end
end
if s == t.kanji then
return i
end
end
end
--------------------------------------------------------------------
-- Era class definition
--------------------------------------------------------------------
local era = {}
era.__index = era
function era:new( init )
init = type( init ) == 'table' and init or {}
local obj = {}
-- Grab the data from the init table.
obj.gregorianYear = tonumber( init.year )
local initText = type( init.era ) == 'string' and init.era or nil
local initIndex = tonumber( init.index )
if not ( initIndex and initIndex >= 1 and math.floor( initIndex ) == initIndex and initIndex ~= math.huge ) then -- Check that initIndex is a positive integer.
initIndex = nil
end
-- Calculate the era data from the input. First we find the era from the era index, although this is only supposed
-- to be for internal use. Next we find the era from the era name or the kanji if possible, as this allows us to
-- specify the last year of one era rather than the first year of the next one, if that is the desired behaviour.
local eraIndex
if initIndex then
eraIndex = initIndex
elseif initText then
eraIndex = textToEraIndex( initText )
elseif obj.gregorianYear then
eraIndex = yearToEraIndex( obj.gregorianYear )
end
-- If the data entry was found for the era, process it and add it to the object.
if not eraIndex then return end
local eraData = eras[ eraIndex ]
if not eraData or not eraData.article or eraData.article == '' then return end -- Exit if we are not dealing with a valid era.
obj.startYear = eraData.startYear
obj.endYear = eraData.endYear
obj.article = eraData.article
obj.kanji = eraData.kanji
obj.label = eraData.label
-- Create a link to the era article if possible.
if obj.label and obj.article then
obj.link = mw.ustring.format( '[[%s|%s]]', obj.article, obj.label )
elseif obj.article then
obj.link = mw.ustring.format( '[[%s]]', obj.article )
end
-- Allow matching years to different eras, but only for the first year of the next era. For example, Taisho 15 is also Showa 1, but there is no such thing as Taisho 16.
-- So, the code era:new{ year = 1926, era = "Taishō" } will return an object with an eraYear of 15, and era:new{ year = 1926 } will return an object with an eraYear of 1.
local nextEraData = eras[ eraIndex - 1 ]
local nextStartYear = nextEraData and nextEraData.startYear
if obj.gregorianYear
and ( -- If there is a later era, only allow the first year of that era or an earlier year.
not nextStartYear
or ( nextStartYear and obj.gregorianYear <= nextStartYear )
)
and obj.gregorianYear >= obj.startYear -- Don't allow negative years.
and obj.article ~= '' -- Don't allow periods between named eras.
and ( obj.endYear and obj.gregorianYear <= obj.endYear or true ) -- If this era has an end year, don't allow years that are greater than the end year.
then
obj.eraYear = obj.gregorianYear - obj.startYear + 1
if obj.eraYear == 1 then
obj.eraYearKanji = '元'
else
obj.eraYearKanji = halfToFull( obj.eraYear )
end
end
-- Make sure obj.label is available even if it is the same as the article name.
obj.label = obj.label or obj.article
-- Add methods to get the next and previous eras.
function obj:getNextEra()
if not eraIndex then return end
return era:new{ index = eraIndex - 1, year = obj.gregorianYear }
end
function obj:getPreviousEra()
if not eraIndex then return end
return era:new{ index = eraIndex + 1, year = obj.gregorianYear }
end
-- Gets the era object for the "old" era. In most cases this is the same as the current era object, but
-- if the era year for the current object is 1, this method will return the era object for the previous
-- era. If the method can't find a valid previous era it will return the object for the current era.
function obj:getOldEra()
if obj.eraYear == 1 then
local prevEra = obj:getPreviousEra()
if prevEra then
return prevEra
else
return obj
end
else
return obj
end
end
return setmetatable( obj, {
__index = self
})
end
--------------------------------------------------------------------
-- Interface for old Japanese calendar templates
--------------------------------------------------------------------
local function getStartYear( obj )
return obj.startYear
end
local function getEndYear( obj )
return obj.endYear
end
local function getEraYear( obj )
return obj.eraYear
end
local function getEraYearKanji( obj )
return obj.eraYearKanji
end
local function getArticle( obj )
return obj.article
end
local function getLabel( obj )
return obj.label
end
local function getLink( obj )
return obj.link
end
local function getKanji( obj )
return obj.kanji
end
local function getLabelAndEraYear( obj, kanji )
local eraYear = kanji and obj.eraYearKanji or obj.eraYear
if obj.label and eraYear then
return mw.ustring.format( '%s %s', obj.label, tostring( eraYear ) )
end
end
local function getLinkAndEraYear( obj, kanji )
local eraYear = kanji and obj.eraYearKanji or obj.eraYear
if obj.link and eraYear then
return mw.ustring.format( '%s %s', obj.link, tostring( eraYear ) )
end
end
local function getLabelAndEraYearKanji( obj )
return getLabelAndEraYear( obj, true )
end
local function getLinkAndEraYearKanji( obj )
return getLinkAndEraYear( obj, true )
end
-- Process the arguments from #invoke.
local function makeWrapper( func )
return function( frame )
-- If called via #invoke, use the args passed into the invoking
-- template, or the args passed to #invoke if any exist. Otherwise
-- assume args are being passed directly in from the debug console
-- or from another Lua module.
local origArgs
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
for k, v in pairs( frame.args ) do
origArgs = frame.args
break
end
else
origArgs = frame
end
-- Trim whitespace and remove blank arguments.
local args = {}
for k, v in pairs( origArgs ) do
if type( v ) == 'string' then
v = mw.text.trim( v )
end
if v ~= '' then
args[k] = v
end
end
local myEra
local otherEraArgs = {}
table.insert( otherEraArgs, args.next )
table.insert( otherEraArgs, args.previous )
table.insert( otherEraArgs, args.old )
if #otherEraArgs > 1 then
return '<strong class="error">[[Module:Japanese calendar]] error: you can only specify one parameter out of "next", "previous" and "old".</strong>'
elseif args.next then
myEra = era:new( args ):getNextEra()
elseif args.previous then
myEra = era:new( args ):getPreviousEra()
elseif args.old then
myEra = era:new( args ):getOldEra()
else
myEra = era:new( args )
end
return myEra and func( myEra ) or ''
end
end
--------------------------------------------------------------------
-- Return the era class and the template interface
--------------------------------------------------------------------
return {
era = function () return era end, -- Accessor function for getting the era class from other modules.
baseyear = makeWrapper( getStartYear ),
endyear = makeWrapper( getEndYear ),
year = makeWrapper( getEraYear ),
kanjiyear = makeWrapper( getEraYearKanji ),
article = makeWrapper( getArticle ),
label = makeWrapper( getLabel ),
link = makeWrapper( getLink ),
kanji = makeWrapper( getKanji ),
label_year = makeWrapper( getLabelAndEraYear ),
link_year = makeWrapper( getLinkAndEraYear ),
label_kanjiyear = makeWrapper( getLabelAndEraYearKanji ),
link_kanjiyear = makeWrapper( getLinkAndEraYearKanji )
}
46zavo74df7xp6m8jbna2gwf8xjt6pb
Module:Japanese calendar/data
828
33069
153360
2023-09-30T03:30:11Z
en>Pppery
0
Changed protection settings for "[[Module:Japanese calendar/data]]": Up to template-protection as dependency of template-protected [[Module:Year in various calendars]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))
153360
Scribunto
text/plain
-- This module stores the data for [[Module:Japanese calendar]]. The formatting is as follows:
--
-- {
-- article = "Shōwa (1926–1989)", -- The Wikipedia article about the era.
-- startYear = 1926, -- The year that the era started.
-- endYear = 1989, -- The year that the era ended.
-- kanji = "昭和", -- The kanji for the era.
-- label = "Shōwa" -- The romaji for the era, if the article name is disambiguated.
-- },
--
-- The "label" field may be absent some or most of the time, and the "article" and "kanji" values
-- may be set to "" (the blank string) if it is a period between era names.
-- See [[Japanese era name]] for more details on era names and how they correspond to
-- Gregorian calendar years.
eras = {
{
article = "Reiwa",
startYear = 2019,
kanji = "令和",
},
{
article = "Heisei",
startYear = 1989,
endyear = 2019,
kanji = "平成",
},
{
article = "Shōwa (1926–1989)",
startYear = 1926,
endYear = 1989,
kanji = "昭和",
label = "Shōwa"
},
{
article = "Taishō",
startYear = 1912,
endYear = 1926,
kanji = "大正",
},
{
article = "Meiji (era)",
startYear = 1868,
endYear = 1912,
kanji = "明治",
label = "Meiji"
},
{
article = "Keiō",
startYear = 1865,
endYear = 1868,
kanji = "慶応"
},
{
article = "Genji (era)",
startYear = 1864,
endYear = 1865,
kanji = "元治",
label = "Genji"
},
{
article = "Bunkyū",
startYear = 1861,
endYear = 1864,
kanji = "文久"
},
{
article = "Man'en",
startYear = 1860,
endYear = 1861,
kanji = "万延"
},
{
article = "Ansei",
startYear = 1854,
endYear = 1860,
kanji = "安政"
},
{
article = "Kaei",
startYear = 1848,
endYear = 1854,
kanji = "嘉永"
},
{
article = "Kōka",
startYear = 1844,
endYear = 1848,
kanji = "弘化"
},
{
article = "Tenpō",
startYear = 1830,
endYear = 1844,
kanji = "天保"
},
{
article = "Bunsei",
startYear = 1818,
endYear = 1830,
kanji = "文政"
},
{
article = "Bunka",
startYear = 1804,
endYear = 1818,
kanji = "文化"
},
{
article = "Kyōwa",
startYear = 1802,
endYear = 1804,
kanji = "享和"
},
{
article = "Kansei",
startYear = 1789,
endYear = 1802,
kanji = "寛政"
},
{
article = "Tenmei",
startYear = 1781,
endYear = 1789,
kanji = "天明"
},
{
article = "An'ei",
startYear = 1772,
endYear = 1781,
kanji = "安永"
},
{
article = "Meiwa",
startYear = 1764,
endYear = 1772,
kanji = "明和"
},
{
article = "Hōreki",
startYear = 1751,
endYear = 1764,
kanji = "宝暦"
},
{
article = "Kan'en",
startYear = 1748,
endYear = 1751,
kanji = "寛延"
},
{
article = "Enkyō (Edo period)",
startYear = 1744,
endYear = 1748,
kanji = "延享",
label = "Enkyō"
},
{
article = "Kanpō",
startYear = 1741,
endYear = 1744,
kanji = "寛保"
},
{
article = "Genbun",
startYear = 1736,
endYear = 1741,
kanji = "元文"
},
{
article = "Kyōhō",
startYear = 1716,
endYear = 1736,
kanji = "享保"
},
{
article = "Shōtoku (era)",
startYear = 1711,
endYear = 1716,
kanji = "正徳",
label = "Shōtoku"
},
{
article = "Hōei",
startYear = 1704,
endYear = 1711,
kanji = "宝永"
},
{
article = "Genroku",
startYear = 1688,
endYear = 1704,
kanji = "元禄"
},
{
article = "Jōkyō",
startYear = 1684,
endYear = 1688,
kanji = "貞享"
},
{
article = "Tenna",
startYear = 1681,
endYear = 1684,
kanji = "天和"
},
{
article = "Enpō",
startYear = 1673,
endYear = 1681,
kanji = "延宝"
},
{
article = "Kanbun (era)",
startYear = 1661,
endYear = 1673,
kanji = "寛文",
label = "Kanbun"
},
{
article = "Manji (era)",
startYear = 1658,
endYear = 1661,
kanji = "万治",
label = "Manji"
},
{
article = "Meireki",
startYear = 1655,
endYear = 1658,
kanji = "明暦"
},
{
article = "Jōō (Edo period)",
startYear = 1652,
endYear = 1655,
kanji = "承応",
label = "Jōō"
},
{
article = "Keian",
startYear = 1648,
endYear = 1652,
kanji = "慶安"
},
{
article = "Shōhō",
startYear = 1644,
endYear = 1648,
kanji = "正保"
},
{
article = "Kan'ei",
startYear = 1624,
endYear = 1644,
kanji = "寛永"
},
{
article = "Genna",
startYear = 1615,
endYear = 1624,
kanji = "元和"
},
{
article = "Keichō",
startYear = 1596,
endYear = 1615,
kanji = "慶長"
},
{
article = "Bunroku",
startYear = 1592,
endYear = 1596,
kanji = "文禄"
},
{
article = "Tenshō (Momoyama period)",
startYear = 1573,
endYear = 1592,
kanji = "天正",
label = "Tenshō"
},
{
article = "Genki (era)",
startYear = 1570,
endYear = 1573,
kanji = "元亀",
label = "Genki"
},
{
article = "Eiroku",
startYear = 1558,
endYear = 1570,
kanji = "永禄"
},
{
article = "Kōji (Muromachi period)",
startYear = 1555,
endYear = 1558,
kanji = "弘治",
label = "Kōji"
},
{
article = "Tenbun",
startYear = 1532,
endYear = 1555,
kanji = "天文"
},
{
article = "Kyōroku",
startYear = 1528,
endYear = 1532,
kanji = "享禄"
},
{
article = "Daiei (era)",
startYear = 1521,
endYear = 1528,
kanji = "大永",
label = "Daiei"
},
{
article = "Eishō (Muromachi period)",
startYear = 1504,
endYear = 1521,
kanji = "永正",
label = "Eishō"
},
{
article = "Bunki",
startYear = 1501,
endYear = 1504,
kanji = "文亀"
},
{
article = "Meiō",
startYear = 1492,
endYear = 1501,
kanji = "明応",
},
{
article = "Entoku",
startYear = 1489,
endYear = 1492,
kanji = "延徳"
},
{
article = "Chōkyō",
startYear = 1487,
endYear = 1489,
kanji = "長享"
},
{
article = "Bunmei",
startYear = 1469,
endYear = 1487,
kanji = "文明"
},
{
article = "Ōnin",
startYear = 1467,
endYear = 1469,
kanji = "応仁"
},
{
article = "Bunshō",
startYear = 1466,
endYear = 1467,
kanji = "文正"
},
{
article = "Kanshō",
startYear = 1460,
endYear = 1466,
kanji = "寛正"
},
{
article = "Chōroku",
startYear = 1457,
endYear = 1460,
kanji = "長禄"
},
{
article = "Kōshō",
startYear = 1455,
endYear = 1457,
kanji = "康正"
},
{
article = "Kyōtoku",
startYear = 1452,
endYear = 1455,
kanji = "享徳"
},
{
article = "Hōtoku",
startYear = 1449,
endYear = 1452,
kanji = "宝徳"
},
{
article = "Bun'an",
startYear = 1444,
endYear = 1449,
kanji = "文安"
},
{
article = "Kakitsu",
startYear = 1441,
endYear = 1444,
kanji = "嘉吉"
},
{
article = "Eikyō",
startYear = 1429,
endYear = 1441,
kanji = "永享"
},
{
article = "Shocho",
startYear = 1428,
endYear = 1429,
kanji = "正長"
},
{
article = "Ōei",
startYear = 1394,
endYear = 1428,
kanji = "応永"
},
{
article = "Meitoku",
startYear = 1390,
endYear = 1394,
kanji = "明徳"
},
{
article = "Kōō",
startYear = 1389,
endYear = 1390,
kanji = "康応"
},
{
article = "Kakei",
startYear = 1387,
endYear = 1389,
kanji = "嘉慶"
},
{
article = "Shitoku",
startYear = 1384,
endYear = 1387,
kanji = "至徳"
},
{
article = "Eitoku",
startYear = 1381,
endYear = 1384,
kanji = "永徳"
},
{
article = "Kōryaku",
startYear = 1379,
endYear = 1381,
kanji = "康暦"
},
{
article = "Eiwa",
startYear = 1375,
endYear = 1379,
kanji = "永和"
},
{
article = "Ōan",
startYear = 1368,
endYear = 1375,
kanji = "応安"
},
{
article = "Jōji",
startYear = 1362,
endYear = 1368,
kanji = "貞治"
},
{
article = "Kōan (Muromachi period)",
startYear = 1361,
endYear = 1362,
kanji = "康安",
label = "Kōan"
},
{
article = "Enbun",
startYear = 1356,
endYear = 1361,
kanji = "延文"
},
{
article = "Bunna",
startYear = 1352,
endYear = 1356,
kanji = "文和"
},
{
article = "Kannō",
startYear = 1350,
endYear = 1352,
kanji = "観応"
},
{
article = "Jōwa (Muromachi period)",
startYear = 1345,
endYear = 1350,
kanji = "貞和",
label = "Jōwa"
},
{
article = "Kōei",
startYear = 1342,
endYear = 1345,
kanji = "康永"
},
{
article = "Ryakuō",
startYear = 1338,
endYear = 1342,
kanji = "暦応"
},
{
article = "Shōkei",
startYear = 1332,
endYear = 1338,
kanji = "正慶"
},
{
article = "Kenmu",
startYear = 1334,
endYear = 1332,
kanji = "建武"
},
{
article = "Genkō (second)",
startYear = 1331,
endYear = 1334,
kanji = "元弘",
label = "Genkō"
},
{
article = "Gentoku",
startYear = 1329,
endYear = 1331,
kanji = "元徳"
},
{
article = "Karyaku",
startYear = 1326,
endYear = 1329,
kanji = "嘉暦"
},
{
article = "Shōchū (era)",
startYear = 1324,
endYear = 1326,
kanji = "正中",
label = "Shōchū"
},
{
article = "Genkō (first)",
startYear = 1321,
endYear = 1324,
kanji = "元亨",
label = "Genkō"
},
{
article = "Gen'ō",
startYear = 1319,
endYear = 1321,
kanji = "元応"
},
{
article = "Bunpō",
startYear = 1317,
endYear = 1319,
kanji = "文保"
},
{
article = "Shōwa (1312–1317)",
startYear = 1312,
endYear = 1317,
kanji = "正和",
label = "Shōwa"
},
{
article = "Ōchō",
startYear = 1311,
endYear = 1312,
kanji = "応長"
},
{
article = "Enkyō (Kamakura period)",
startYear = 1308,
endYear = 1311,
kanji = "延慶",
label = "Enkyō"
},
{
article = "Tokuji",
startYear = 1306,
endYear = 1308,
kanji = "徳治"
},
{
article = "Kagen",
startYear = 1303,
endYear = 1306,
kanji = "嘉元"
},
{
article = "Kengen",
startYear = 1302,
endYear = 1303,
kanji = "乾元"
},
{
article = "Shōan",
startYear = 1299,
endYear = 1302,
kanji = "正安"
},
{
article = "Einin",
startYear = 1293,
endYear = 1299,
kanji = "永仁"
},
{
article = "Shōō (Kamakura period)",
startYear = 1288,
endYear = 1293,
kanji = "正応",
label = "Shōō"
},
{
article = "Kōan (Kamakura period)",
startYear = 1278,
endYear = 1288,
kanji = "弘安",
label = "Kōan"
},
{
article = "Kenji (era)",
startYear = 1275,
endYear = 1278,
kanji = "建治",
label = "Kenji"
},
{
article = "Bun'ei",
startYear = 1264,
endYear = 1275,
kanji = "文永"
},
{
article = "Kōchō",
startYear = 1261,
endYear = 1264,
kanji = "弘長"
},
{
article = "Bun'ō",
startYear = 1260,
endYear = 1261,
kanji = "文応"
},
{
article = "Shōgen",
startYear = 1259,
endYear = 1260,
kanji = "正元"
},
{
article = "Shōka (era)",
startYear = 1257,
endYear = 1259,
kanji = "正嘉"
},
{
article = "Kōgen",
startYear = 1256,
endYear = 1257,
kanji = "康元"
},
{
article = "Kenchō",
startYear = 1249,
endYear = 1256,
kanji = "建長"
},
{
article = "Hōji (era)",
startYear = 1247,
endYear = 1249,
kanji = "宝治",
label = "Hōji"
},
{
article = "Kangen",
startYear = 1243,
endYear = 1247,
kanji = "寛元"
},
{
article = "Ninji",
startYear = 1240,
endYear = 1243,
kanji = "仁治"
},
{
article = "En'ō",
startYear = 1239,
endYear = 1240,
kanji = "延応"
},
{
article = "Ryakunin",
startYear = 1238,
endYear = 1239,
kanji = "暦仁"
},
{
article = "Katei",
startYear = 1235,
endYear = 1238,
kanji = "嘉禎"
},
{
article = "Bunryaku",
startYear = 1234,
endYear = 1235,
kanji = "文暦"
},
{
article = "Tenpuku",
startYear = 1233,
endYear = 1234,
kanji = "天福"
},
{
article = "Jōei",
startYear = 1232,
endYear = 1233,
kanji = "貞永"
},
{
article = "Kangi",
startYear = 1229,
endYear = 1232,
kanji = "寛喜"
},
{
article = "Antei",
startYear = 1227,
endYear = 1229,
kanji = "安貞"
},
{
article = "Karoku",
startYear = 1225,
endYear = 1227,
kanji = "嘉禄"
},
{
article = "Gennin",
startYear = 1224,
endYear = 1225,
kanji = "元仁"
},
{
article = "Jōō (Kamakura period)",
startYear = 1222,
endYear = 1224,
kanji = "貞応",
label = "Jōō"
},
{
article = "Jōkyū",
startYear = 1219,
endYear = 1222,
kanji = "承久"
},
{
article = "Kenpō (era)",
startYear = 1213,
endYear = 1219,
kanji = "建保",
label = "Kenpō"
},
{
article = "Kenryaku",
startYear = 1211,
endYear = 1213,
kanji = "建暦"
},
{
article = "Jōgen (Kamakura period)",
startYear = 1207,
endYear = 1211,
kanji = "承元",
label = "Jōgen"
},
{
article = "Ken'ei",
startYear = 1206,
endYear = 1207,
kanji = "建永"
},
{
article = "Genkyū",
startYear = 1204,
endYear = 1206,
kanji = "元久"
},
{
article = "Kennin",
startYear = 1201,
endYear = 1204,
kanji = "建仁"
},
{
article = "Shōji (era)",
startYear = 1199,
endYear = 1201,
kanji = "正治",
label = "Shōji"
},
{
article = "Kenkyū",
startYear = 1190,
endYear = 1199,
kanji = "建久"
},
{
article = "Bunji (era)",
startYear = 1185,
endYear = 1190,
kanji = "文治",
label = "Bunji"
},
{
article = "Genryaku",
startYear = 1184,
endYear = 1185,
kanji = "元暦"
},
{
article = "Juei",
startYear = 1182,
endYear = 1184,
kanji = "寿永"
},
{
article = "Yōwa",
startYear = 1181,
endYear = 1182,
kanji = "養和"
},
{
article = "Jishō",
startYear = 1177,
endYear = 1181,
kanji = "治承"
},
{
article = "Angen",
startYear = 1175,
endYear = 1177,
kanji = "安元"
},
{
article = "Jōan (era)",
startYear = 1171,
endYear = 1175,
kanji = "承安",
label = "Jōan"
},
{
article = "Kaō (era)",
startYear = 1169,
endYear = 1171,
kanji = "嘉応",
label = "Kaō"
},
{
article = "Nin'an",
startYear = 1166,
endYear = 1169,
kanji = "仁安"
},
{
article = "Eiman",
startYear = 1165,
endYear = 1166,
kanji = "永万"
},
{
article = "Chōkan",
startYear = 1163,
endYear = 1165,
kanji = "長寛"
},
{
article = "Ōhō",
startYear = 1161,
endYear = 1163,
kanji = "応保"
},
{
article = "Eiryaku",
startYear = 1160,
endYear = 1161,
kanji = "永暦"
},
{
article = "Heiji",
startYear = 1159,
endYear = 1160,
kanji = "平治"
},
{
article = "Hōgen (era)",
startYear = 1156,
endYear = 1159,
kanji = "保元",
label = "Hōgen"
},
{
article = "Kyūju",
startYear = 1154,
endYear = 1156,
kanji = "久寿"
},
{
article = "Ninpei",
startYear = 1151,
endYear = 1154,
kanji = "仁平"
},
{
article = "Kyūan",
startYear = 1145,
endYear = 1151,
kanji = "久安"
},
{
article = "Ten'yō",
startYear = 1144,
endYear = 1145,
kanji = "天養"
},
{
article = "Kōji (Heian period)",
startYear = 1142,
endYear = 1144,
kanji = "康治",
label = "Kōji"
},
{
article = "Eiji (era)",
startYear = 1141,
endYear = 1142,
kanji = "永治"
},
{
article = "Hōen",
startYear = 1135,
endYear = 1141,
kanji = "保延"
},
{
article = "Chōshō",
startYear = 1132,
endYear = 1135,
kanji = "長承"
},
{
article = "Tenshō (Heian period)",
startYear = 1131,
endYear = 1132,
kanji = "天承",
label = "Tenshō"
},
{
article = "Daiji (era)",
startYear = 1126,
endYear = 1131,
kanji = "大治",
label = "Daiji"
},
{
article = "Tenji (era)",
startYear = 1124,
endYear = 1126,
kanji = "天治",
label = "Tenji"
},
{
article = "Hōan",
startYear = 1120,
endYear = 1124,
kanji = "保安"
},
{
article = "Gen'ei",
startYear = 1118,
endYear = 1120,
kanji = "元永"
},
{
article = "Eikyū",
startYear = 1113,
endYear = 1118,
kanji = "永久"
},
{
article = "Ten'ei",
startYear = 1110,
endYear = 1113,
kanji = "天永"
},
{
article = "Tennin (era)",
startYear = 1108,
endYear = 1110,
kanji = "天仁",
label = "Tennin"
},
{
article = "Kajō",
startYear = 1106,
endYear = 1108,
kanji = "嘉承"
},
{
article = "Chōji",
startYear = 1104,
endYear = 1106,
kanji = "長治"
},
{
article = "Kōwa (Heian period)",
startYear = 1099,
endYear = 1104,
kanji = "康和",
label = "Kōwa"
},
{
article = "Jōtoku",
startYear = 1097,
endYear = 1099,
kanji = "承徳"
},
{
article = "Eichō",
startYear = 1096,
endYear = 1097,
kanji = "永長"
},
{
article = "Kahō",
startYear = 1094,
endYear = 1096,
kanji = "嘉保"
},
{
article = "Kanji (era)",
startYear = 1087,
endYear = 1094,
kanji = "寛治",
label = "Kanji"
},
{
article = "Ōtoku",
startYear = 1084,
endYear = 1087,
kanji = "応徳"
},
{
article = "Eihō",
startYear = 1081,
endYear = 1084,
kanji = "永保"
},
{
article = "Jōryaku",
startYear = 1077,
endYear = 1081,
kanji = "承暦"
},
{
article = "Jōhō",
startYear = 1074,
endYear = 1077,
kanji = "承保"
},
{
article = "Enkyū",
startYear = 1069,
endYear = 1074,
kanji = "延久"
},
{
article = "Jiryaku",
startYear = 1065,
endYear = 1069,
kanji = "治暦"
},
{
article = "Kōhei",
startYear = 1058,
endYear = 1065,
kanji = "康平"
},
{
article = "Tengi",
startYear = 1053,
endYear = 1058,
kanji = "天喜"
},
{
article = "Eishō (Heian period)",
startYear = 1046,
endYear = 1053,
kanji = "永承",
label = "Eishō"
},
{
article = "Kantoku",
startYear = 1044,
endYear = 1046,
kanji = "寛徳"
},
{
article = "Chōkyū",
startYear = 1040,
endYear = 1044,
kanji = "長久"
},
{
article = "Chōryaku",
startYear = 1037,
endYear = 1040,
kanji = "長暦"
},
{
article = "Chōgen",
startYear = 1028,
endYear = 1037,
kanji = "長元"
},
{
article = "Manju (era)",
startYear = 1024,
endYear = 1028,
kanji = "万寿",
label = "Manju"
},
{
article = "Jian (era)",
startYear = 1021,
endYear = 1024,
kanji = "治安",
label = "Jian"
},
{
article = "Kannin",
startYear = 1017,
endYear = 1021,
kanji = "寛仁"
},
{
article = "Chōwa",
startYear = 1012,
endYear = 1017,
kanji = "長和"
},
{
article = "Kankō",
startYear = 1004,
endYear = 1012,
kanji = "寛弘"
},
{
article = "Chōhō (era)",
startYear = 999,
endYear = 1004,
kanji = "長保",
label = "Chōhō"
},
{
article = "Chōtoku",
startYear = 995,
endYear = 999,
kanji = "長徳"
},
{
article = "Shōryaku",
startYear = 990,
endYear = 995,
kanji = "正暦"
},
{
article = "Eiso (era)",
startYear = 988,
endYear = 990,
kanji = "永祚",
label = "Eiso"
},
{
article = "Eien",
startYear = 987,
endYear = 988,
kanji = "永延"
},
{
article = "Kanna (era)",
startYear = 985,
endYear = 987,
kanji = "寛和",
label = "Kanna"
},
{
article = "Eikan",
startYear = 983,
endYear = 985,
kanji = "永観"
},
{
article = "Tengen (era)",
startYear = 978,
endYear = 983,
kanji = "天元",
label = "Tengen"
},
{
article = "Jōgen (Heian period)",
startYear = 976,
endYear = 978,
kanji = "貞元",
label = "Jōgen"
},
{
article = "Ten'en",
startYear = 973,
endYear = 976,
kanji = "天延"
},
{
article = "Tenroku",
startYear = 970,
endYear = 973,
kanji = "天禄"
},
{
article = "Anna (era)",
startYear = 968,
endYear = 970,
kanji = "安和",
label = "Anna"
},
{
article = "Kōhō",
startYear = 964,
endYear = 968,
kanji = "康保"
},
{
article = "Ōwa",
startYear = 961,
endYear = 964,
kanji = "応和"
},
{
article = "Tentoku",
startYear = 957,
endYear = 961,
kanji = "天徳"
},
{
article = "Tenryaku",
startYear = 947,
endYear = 957,
kanji = "天暦"
},
{
article = "Tengyō",
startYear = 938,
endYear = 947,
kanji = "天慶"
},
{
article = "Jōhei",
startYear = 931,
endYear = 938,
kanji = "承平"
},
{
article = "Enchō",
startYear = 923,
endYear = 931,
kanji = "延長"
},
{
article = "Engi (era)",
startYear = 901,
endYear = 923,
kanji = "延喜",
label = "Engi"
},
{
article = "Shōtai",
startYear = 898,
endYear = 901,
kanji = "昌泰"
},
{
article = "Kanpyō (era)",
startYear = 889,
endYear = 898,
kanji = "寛平",
label = "Kanpyō"
},
{
article = "Ninna",
startYear = 885,
endYear = 889,
kanji = "仁和"
},
{
article = "Gangyō",
startYear = 877,
endYear = 885,
kanji = "元慶"
},
{
article = "Jōgan",
startYear = 859,
endYear = 877,
kanji = "貞観"
},
{
article = "Ten'an",
startYear = 857,
endYear = 859,
kanji = "天安"
},
{
article = "Saikō",
startYear = 854,
endYear = 857,
kanji = "斉衡"
},
{
article = "Ninju",
startYear = 851,
endYear = 854,
kanji = "仁寿"
},
{
article = "Kashō",
startYear = 848,
endYear = 851,
kanji = "嘉祥"
},
{
article = "Jōwa (Heian period)",
startYear = 834,
endYear = 848,
kanji = "承和",
label = "Jōwa"
},
{
article = "Tenchō",
startYear = 824,
endYear = 834,
kanji = "天長"
},
{
article = "Kōnin (era)",
startYear = 810,
endYear = 824,
kanji = "弘仁",
label = "Kōnin"
},
{
article = "Daidō",
startYear = 806,
endYear = 810,
kanji = "大同"
},
{
article = "Enryaku",
startYear = 782,
endYear = 806,
kanji = "延暦"
},
{
article = "Ten'ō",
startYear = 781,
endYear = 782,
kanji = "天応"
},
{
article = "Hōki",
startYear = 770,
endYear = 781,
kanji = "宝亀"
},
{
article = "Jingo-keiun",
startYear = 767,
endYear = 770,
kanji = "神護景雲"
},
{
article = "Tenpyō-jingo",
startYear = 765,
endYear = 767,
kanji = "天平神護"
},
{
article = "Tenpyō-hōji",
startYear = 757,
endYear = 765,
kanji = "天平宝字"
},
{
article = "Tenpyō-shōhō",
startYear = 749,
endYear = 757,
kanji = "天平勝宝"
},
{
article = "Tenpyō-kanpō",
startYear = 749,
endYear = 749,
kanji = "天平感宝"
},
{
article = "Tenpyō",
startYear = 729,
endYear = 749,
kanji = "天平"
},
{
article = "Jinki (era)",
startYear = 724,
endYear = 729,
kanji = "神亀",
label = "Jinki"
},
{
article = "Yōrō",
startYear = 717,
endYear = 724,
kanji = "養老"
},
{
article = "Reiki (era)",
startYear = 715,
endYear = 717,
kanji = "霊亀",
label = "Reiki"
},
{
article = "Wadō (era)",
startYear = 708,
endYear = 715,
kanji = "和銅",
label = "Wadō"
},
{
article = "Keiun",
startYear = 704,
endYear = 708,
kanji = "慶雲"
},
{
article = "Taihō (era)",
startYear = 701,
endYear = 704,
kanji = "大宝",
label = "Taihō"
},
{
article = "Shuchō",
startYear = 686,
endYear = 686,
kanji = "朱鳥"
},
{
article = "Hakuchi (era)",
startYear = 650,
endYear = 654,
kanji = "白雉",
label = "Hakuchi"
},
{
article = "Taika (era)",
startYear = 645,
endYear = 650,
kanji = "大化",
label = "Taika"
}
}
return eras
2eygnvvs4aldb68962y64kiiptrh4mw
153361
153360
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Module:Japanese_calendar/data]]: Needed locally
153360
Scribunto
text/plain
-- This module stores the data for [[Module:Japanese calendar]]. The formatting is as follows:
--
-- {
-- article = "Shōwa (1926–1989)", -- The Wikipedia article about the era.
-- startYear = 1926, -- The year that the era started.
-- endYear = 1989, -- The year that the era ended.
-- kanji = "昭和", -- The kanji for the era.
-- label = "Shōwa" -- The romaji for the era, if the article name is disambiguated.
-- },
--
-- The "label" field may be absent some or most of the time, and the "article" and "kanji" values
-- may be set to "" (the blank string) if it is a period between era names.
-- See [[Japanese era name]] for more details on era names and how they correspond to
-- Gregorian calendar years.
eras = {
{
article = "Reiwa",
startYear = 2019,
kanji = "令和",
},
{
article = "Heisei",
startYear = 1989,
endyear = 2019,
kanji = "平成",
},
{
article = "Shōwa (1926–1989)",
startYear = 1926,
endYear = 1989,
kanji = "昭和",
label = "Shōwa"
},
{
article = "Taishō",
startYear = 1912,
endYear = 1926,
kanji = "大正",
},
{
article = "Meiji (era)",
startYear = 1868,
endYear = 1912,
kanji = "明治",
label = "Meiji"
},
{
article = "Keiō",
startYear = 1865,
endYear = 1868,
kanji = "慶応"
},
{
article = "Genji (era)",
startYear = 1864,
endYear = 1865,
kanji = "元治",
label = "Genji"
},
{
article = "Bunkyū",
startYear = 1861,
endYear = 1864,
kanji = "文久"
},
{
article = "Man'en",
startYear = 1860,
endYear = 1861,
kanji = "万延"
},
{
article = "Ansei",
startYear = 1854,
endYear = 1860,
kanji = "安政"
},
{
article = "Kaei",
startYear = 1848,
endYear = 1854,
kanji = "嘉永"
},
{
article = "Kōka",
startYear = 1844,
endYear = 1848,
kanji = "弘化"
},
{
article = "Tenpō",
startYear = 1830,
endYear = 1844,
kanji = "天保"
},
{
article = "Bunsei",
startYear = 1818,
endYear = 1830,
kanji = "文政"
},
{
article = "Bunka",
startYear = 1804,
endYear = 1818,
kanji = "文化"
},
{
article = "Kyōwa",
startYear = 1802,
endYear = 1804,
kanji = "享和"
},
{
article = "Kansei",
startYear = 1789,
endYear = 1802,
kanji = "寛政"
},
{
article = "Tenmei",
startYear = 1781,
endYear = 1789,
kanji = "天明"
},
{
article = "An'ei",
startYear = 1772,
endYear = 1781,
kanji = "安永"
},
{
article = "Meiwa",
startYear = 1764,
endYear = 1772,
kanji = "明和"
},
{
article = "Hōreki",
startYear = 1751,
endYear = 1764,
kanji = "宝暦"
},
{
article = "Kan'en",
startYear = 1748,
endYear = 1751,
kanji = "寛延"
},
{
article = "Enkyō (Edo period)",
startYear = 1744,
endYear = 1748,
kanji = "延享",
label = "Enkyō"
},
{
article = "Kanpō",
startYear = 1741,
endYear = 1744,
kanji = "寛保"
},
{
article = "Genbun",
startYear = 1736,
endYear = 1741,
kanji = "元文"
},
{
article = "Kyōhō",
startYear = 1716,
endYear = 1736,
kanji = "享保"
},
{
article = "Shōtoku (era)",
startYear = 1711,
endYear = 1716,
kanji = "正徳",
label = "Shōtoku"
},
{
article = "Hōei",
startYear = 1704,
endYear = 1711,
kanji = "宝永"
},
{
article = "Genroku",
startYear = 1688,
endYear = 1704,
kanji = "元禄"
},
{
article = "Jōkyō",
startYear = 1684,
endYear = 1688,
kanji = "貞享"
},
{
article = "Tenna",
startYear = 1681,
endYear = 1684,
kanji = "天和"
},
{
article = "Enpō",
startYear = 1673,
endYear = 1681,
kanji = "延宝"
},
{
article = "Kanbun (era)",
startYear = 1661,
endYear = 1673,
kanji = "寛文",
label = "Kanbun"
},
{
article = "Manji (era)",
startYear = 1658,
endYear = 1661,
kanji = "万治",
label = "Manji"
},
{
article = "Meireki",
startYear = 1655,
endYear = 1658,
kanji = "明暦"
},
{
article = "Jōō (Edo period)",
startYear = 1652,
endYear = 1655,
kanji = "承応",
label = "Jōō"
},
{
article = "Keian",
startYear = 1648,
endYear = 1652,
kanji = "慶安"
},
{
article = "Shōhō",
startYear = 1644,
endYear = 1648,
kanji = "正保"
},
{
article = "Kan'ei",
startYear = 1624,
endYear = 1644,
kanji = "寛永"
},
{
article = "Genna",
startYear = 1615,
endYear = 1624,
kanji = "元和"
},
{
article = "Keichō",
startYear = 1596,
endYear = 1615,
kanji = "慶長"
},
{
article = "Bunroku",
startYear = 1592,
endYear = 1596,
kanji = "文禄"
},
{
article = "Tenshō (Momoyama period)",
startYear = 1573,
endYear = 1592,
kanji = "天正",
label = "Tenshō"
},
{
article = "Genki (era)",
startYear = 1570,
endYear = 1573,
kanji = "元亀",
label = "Genki"
},
{
article = "Eiroku",
startYear = 1558,
endYear = 1570,
kanji = "永禄"
},
{
article = "Kōji (Muromachi period)",
startYear = 1555,
endYear = 1558,
kanji = "弘治",
label = "Kōji"
},
{
article = "Tenbun",
startYear = 1532,
endYear = 1555,
kanji = "天文"
},
{
article = "Kyōroku",
startYear = 1528,
endYear = 1532,
kanji = "享禄"
},
{
article = "Daiei (era)",
startYear = 1521,
endYear = 1528,
kanji = "大永",
label = "Daiei"
},
{
article = "Eishō (Muromachi period)",
startYear = 1504,
endYear = 1521,
kanji = "永正",
label = "Eishō"
},
{
article = "Bunki",
startYear = 1501,
endYear = 1504,
kanji = "文亀"
},
{
article = "Meiō",
startYear = 1492,
endYear = 1501,
kanji = "明応",
},
{
article = "Entoku",
startYear = 1489,
endYear = 1492,
kanji = "延徳"
},
{
article = "Chōkyō",
startYear = 1487,
endYear = 1489,
kanji = "長享"
},
{
article = "Bunmei",
startYear = 1469,
endYear = 1487,
kanji = "文明"
},
{
article = "Ōnin",
startYear = 1467,
endYear = 1469,
kanji = "応仁"
},
{
article = "Bunshō",
startYear = 1466,
endYear = 1467,
kanji = "文正"
},
{
article = "Kanshō",
startYear = 1460,
endYear = 1466,
kanji = "寛正"
},
{
article = "Chōroku",
startYear = 1457,
endYear = 1460,
kanji = "長禄"
},
{
article = "Kōshō",
startYear = 1455,
endYear = 1457,
kanji = "康正"
},
{
article = "Kyōtoku",
startYear = 1452,
endYear = 1455,
kanji = "享徳"
},
{
article = "Hōtoku",
startYear = 1449,
endYear = 1452,
kanji = "宝徳"
},
{
article = "Bun'an",
startYear = 1444,
endYear = 1449,
kanji = "文安"
},
{
article = "Kakitsu",
startYear = 1441,
endYear = 1444,
kanji = "嘉吉"
},
{
article = "Eikyō",
startYear = 1429,
endYear = 1441,
kanji = "永享"
},
{
article = "Shocho",
startYear = 1428,
endYear = 1429,
kanji = "正長"
},
{
article = "Ōei",
startYear = 1394,
endYear = 1428,
kanji = "応永"
},
{
article = "Meitoku",
startYear = 1390,
endYear = 1394,
kanji = "明徳"
},
{
article = "Kōō",
startYear = 1389,
endYear = 1390,
kanji = "康応"
},
{
article = "Kakei",
startYear = 1387,
endYear = 1389,
kanji = "嘉慶"
},
{
article = "Shitoku",
startYear = 1384,
endYear = 1387,
kanji = "至徳"
},
{
article = "Eitoku",
startYear = 1381,
endYear = 1384,
kanji = "永徳"
},
{
article = "Kōryaku",
startYear = 1379,
endYear = 1381,
kanji = "康暦"
},
{
article = "Eiwa",
startYear = 1375,
endYear = 1379,
kanji = "永和"
},
{
article = "Ōan",
startYear = 1368,
endYear = 1375,
kanji = "応安"
},
{
article = "Jōji",
startYear = 1362,
endYear = 1368,
kanji = "貞治"
},
{
article = "Kōan (Muromachi period)",
startYear = 1361,
endYear = 1362,
kanji = "康安",
label = "Kōan"
},
{
article = "Enbun",
startYear = 1356,
endYear = 1361,
kanji = "延文"
},
{
article = "Bunna",
startYear = 1352,
endYear = 1356,
kanji = "文和"
},
{
article = "Kannō",
startYear = 1350,
endYear = 1352,
kanji = "観応"
},
{
article = "Jōwa (Muromachi period)",
startYear = 1345,
endYear = 1350,
kanji = "貞和",
label = "Jōwa"
},
{
article = "Kōei",
startYear = 1342,
endYear = 1345,
kanji = "康永"
},
{
article = "Ryakuō",
startYear = 1338,
endYear = 1342,
kanji = "暦応"
},
{
article = "Shōkei",
startYear = 1332,
endYear = 1338,
kanji = "正慶"
},
{
article = "Kenmu",
startYear = 1334,
endYear = 1332,
kanji = "建武"
},
{
article = "Genkō (second)",
startYear = 1331,
endYear = 1334,
kanji = "元弘",
label = "Genkō"
},
{
article = "Gentoku",
startYear = 1329,
endYear = 1331,
kanji = "元徳"
},
{
article = "Karyaku",
startYear = 1326,
endYear = 1329,
kanji = "嘉暦"
},
{
article = "Shōchū (era)",
startYear = 1324,
endYear = 1326,
kanji = "正中",
label = "Shōchū"
},
{
article = "Genkō (first)",
startYear = 1321,
endYear = 1324,
kanji = "元亨",
label = "Genkō"
},
{
article = "Gen'ō",
startYear = 1319,
endYear = 1321,
kanji = "元応"
},
{
article = "Bunpō",
startYear = 1317,
endYear = 1319,
kanji = "文保"
},
{
article = "Shōwa (1312–1317)",
startYear = 1312,
endYear = 1317,
kanji = "正和",
label = "Shōwa"
},
{
article = "Ōchō",
startYear = 1311,
endYear = 1312,
kanji = "応長"
},
{
article = "Enkyō (Kamakura period)",
startYear = 1308,
endYear = 1311,
kanji = "延慶",
label = "Enkyō"
},
{
article = "Tokuji",
startYear = 1306,
endYear = 1308,
kanji = "徳治"
},
{
article = "Kagen",
startYear = 1303,
endYear = 1306,
kanji = "嘉元"
},
{
article = "Kengen",
startYear = 1302,
endYear = 1303,
kanji = "乾元"
},
{
article = "Shōan",
startYear = 1299,
endYear = 1302,
kanji = "正安"
},
{
article = "Einin",
startYear = 1293,
endYear = 1299,
kanji = "永仁"
},
{
article = "Shōō (Kamakura period)",
startYear = 1288,
endYear = 1293,
kanji = "正応",
label = "Shōō"
},
{
article = "Kōan (Kamakura period)",
startYear = 1278,
endYear = 1288,
kanji = "弘安",
label = "Kōan"
},
{
article = "Kenji (era)",
startYear = 1275,
endYear = 1278,
kanji = "建治",
label = "Kenji"
},
{
article = "Bun'ei",
startYear = 1264,
endYear = 1275,
kanji = "文永"
},
{
article = "Kōchō",
startYear = 1261,
endYear = 1264,
kanji = "弘長"
},
{
article = "Bun'ō",
startYear = 1260,
endYear = 1261,
kanji = "文応"
},
{
article = "Shōgen",
startYear = 1259,
endYear = 1260,
kanji = "正元"
},
{
article = "Shōka (era)",
startYear = 1257,
endYear = 1259,
kanji = "正嘉"
},
{
article = "Kōgen",
startYear = 1256,
endYear = 1257,
kanji = "康元"
},
{
article = "Kenchō",
startYear = 1249,
endYear = 1256,
kanji = "建長"
},
{
article = "Hōji (era)",
startYear = 1247,
endYear = 1249,
kanji = "宝治",
label = "Hōji"
},
{
article = "Kangen",
startYear = 1243,
endYear = 1247,
kanji = "寛元"
},
{
article = "Ninji",
startYear = 1240,
endYear = 1243,
kanji = "仁治"
},
{
article = "En'ō",
startYear = 1239,
endYear = 1240,
kanji = "延応"
},
{
article = "Ryakunin",
startYear = 1238,
endYear = 1239,
kanji = "暦仁"
},
{
article = "Katei",
startYear = 1235,
endYear = 1238,
kanji = "嘉禎"
},
{
article = "Bunryaku",
startYear = 1234,
endYear = 1235,
kanji = "文暦"
},
{
article = "Tenpuku",
startYear = 1233,
endYear = 1234,
kanji = "天福"
},
{
article = "Jōei",
startYear = 1232,
endYear = 1233,
kanji = "貞永"
},
{
article = "Kangi",
startYear = 1229,
endYear = 1232,
kanji = "寛喜"
},
{
article = "Antei",
startYear = 1227,
endYear = 1229,
kanji = "安貞"
},
{
article = "Karoku",
startYear = 1225,
endYear = 1227,
kanji = "嘉禄"
},
{
article = "Gennin",
startYear = 1224,
endYear = 1225,
kanji = "元仁"
},
{
article = "Jōō (Kamakura period)",
startYear = 1222,
endYear = 1224,
kanji = "貞応",
label = "Jōō"
},
{
article = "Jōkyū",
startYear = 1219,
endYear = 1222,
kanji = "承久"
},
{
article = "Kenpō (era)",
startYear = 1213,
endYear = 1219,
kanji = "建保",
label = "Kenpō"
},
{
article = "Kenryaku",
startYear = 1211,
endYear = 1213,
kanji = "建暦"
},
{
article = "Jōgen (Kamakura period)",
startYear = 1207,
endYear = 1211,
kanji = "承元",
label = "Jōgen"
},
{
article = "Ken'ei",
startYear = 1206,
endYear = 1207,
kanji = "建永"
},
{
article = "Genkyū",
startYear = 1204,
endYear = 1206,
kanji = "元久"
},
{
article = "Kennin",
startYear = 1201,
endYear = 1204,
kanji = "建仁"
},
{
article = "Shōji (era)",
startYear = 1199,
endYear = 1201,
kanji = "正治",
label = "Shōji"
},
{
article = "Kenkyū",
startYear = 1190,
endYear = 1199,
kanji = "建久"
},
{
article = "Bunji (era)",
startYear = 1185,
endYear = 1190,
kanji = "文治",
label = "Bunji"
},
{
article = "Genryaku",
startYear = 1184,
endYear = 1185,
kanji = "元暦"
},
{
article = "Juei",
startYear = 1182,
endYear = 1184,
kanji = "寿永"
},
{
article = "Yōwa",
startYear = 1181,
endYear = 1182,
kanji = "養和"
},
{
article = "Jishō",
startYear = 1177,
endYear = 1181,
kanji = "治承"
},
{
article = "Angen",
startYear = 1175,
endYear = 1177,
kanji = "安元"
},
{
article = "Jōan (era)",
startYear = 1171,
endYear = 1175,
kanji = "承安",
label = "Jōan"
},
{
article = "Kaō (era)",
startYear = 1169,
endYear = 1171,
kanji = "嘉応",
label = "Kaō"
},
{
article = "Nin'an",
startYear = 1166,
endYear = 1169,
kanji = "仁安"
},
{
article = "Eiman",
startYear = 1165,
endYear = 1166,
kanji = "永万"
},
{
article = "Chōkan",
startYear = 1163,
endYear = 1165,
kanji = "長寛"
},
{
article = "Ōhō",
startYear = 1161,
endYear = 1163,
kanji = "応保"
},
{
article = "Eiryaku",
startYear = 1160,
endYear = 1161,
kanji = "永暦"
},
{
article = "Heiji",
startYear = 1159,
endYear = 1160,
kanji = "平治"
},
{
article = "Hōgen (era)",
startYear = 1156,
endYear = 1159,
kanji = "保元",
label = "Hōgen"
},
{
article = "Kyūju",
startYear = 1154,
endYear = 1156,
kanji = "久寿"
},
{
article = "Ninpei",
startYear = 1151,
endYear = 1154,
kanji = "仁平"
},
{
article = "Kyūan",
startYear = 1145,
endYear = 1151,
kanji = "久安"
},
{
article = "Ten'yō",
startYear = 1144,
endYear = 1145,
kanji = "天養"
},
{
article = "Kōji (Heian period)",
startYear = 1142,
endYear = 1144,
kanji = "康治",
label = "Kōji"
},
{
article = "Eiji (era)",
startYear = 1141,
endYear = 1142,
kanji = "永治"
},
{
article = "Hōen",
startYear = 1135,
endYear = 1141,
kanji = "保延"
},
{
article = "Chōshō",
startYear = 1132,
endYear = 1135,
kanji = "長承"
},
{
article = "Tenshō (Heian period)",
startYear = 1131,
endYear = 1132,
kanji = "天承",
label = "Tenshō"
},
{
article = "Daiji (era)",
startYear = 1126,
endYear = 1131,
kanji = "大治",
label = "Daiji"
},
{
article = "Tenji (era)",
startYear = 1124,
endYear = 1126,
kanji = "天治",
label = "Tenji"
},
{
article = "Hōan",
startYear = 1120,
endYear = 1124,
kanji = "保安"
},
{
article = "Gen'ei",
startYear = 1118,
endYear = 1120,
kanji = "元永"
},
{
article = "Eikyū",
startYear = 1113,
endYear = 1118,
kanji = "永久"
},
{
article = "Ten'ei",
startYear = 1110,
endYear = 1113,
kanji = "天永"
},
{
article = "Tennin (era)",
startYear = 1108,
endYear = 1110,
kanji = "天仁",
label = "Tennin"
},
{
article = "Kajō",
startYear = 1106,
endYear = 1108,
kanji = "嘉承"
},
{
article = "Chōji",
startYear = 1104,
endYear = 1106,
kanji = "長治"
},
{
article = "Kōwa (Heian period)",
startYear = 1099,
endYear = 1104,
kanji = "康和",
label = "Kōwa"
},
{
article = "Jōtoku",
startYear = 1097,
endYear = 1099,
kanji = "承徳"
},
{
article = "Eichō",
startYear = 1096,
endYear = 1097,
kanji = "永長"
},
{
article = "Kahō",
startYear = 1094,
endYear = 1096,
kanji = "嘉保"
},
{
article = "Kanji (era)",
startYear = 1087,
endYear = 1094,
kanji = "寛治",
label = "Kanji"
},
{
article = "Ōtoku",
startYear = 1084,
endYear = 1087,
kanji = "応徳"
},
{
article = "Eihō",
startYear = 1081,
endYear = 1084,
kanji = "永保"
},
{
article = "Jōryaku",
startYear = 1077,
endYear = 1081,
kanji = "承暦"
},
{
article = "Jōhō",
startYear = 1074,
endYear = 1077,
kanji = "承保"
},
{
article = "Enkyū",
startYear = 1069,
endYear = 1074,
kanji = "延久"
},
{
article = "Jiryaku",
startYear = 1065,
endYear = 1069,
kanji = "治暦"
},
{
article = "Kōhei",
startYear = 1058,
endYear = 1065,
kanji = "康平"
},
{
article = "Tengi",
startYear = 1053,
endYear = 1058,
kanji = "天喜"
},
{
article = "Eishō (Heian period)",
startYear = 1046,
endYear = 1053,
kanji = "永承",
label = "Eishō"
},
{
article = "Kantoku",
startYear = 1044,
endYear = 1046,
kanji = "寛徳"
},
{
article = "Chōkyū",
startYear = 1040,
endYear = 1044,
kanji = "長久"
},
{
article = "Chōryaku",
startYear = 1037,
endYear = 1040,
kanji = "長暦"
},
{
article = "Chōgen",
startYear = 1028,
endYear = 1037,
kanji = "長元"
},
{
article = "Manju (era)",
startYear = 1024,
endYear = 1028,
kanji = "万寿",
label = "Manju"
},
{
article = "Jian (era)",
startYear = 1021,
endYear = 1024,
kanji = "治安",
label = "Jian"
},
{
article = "Kannin",
startYear = 1017,
endYear = 1021,
kanji = "寛仁"
},
{
article = "Chōwa",
startYear = 1012,
endYear = 1017,
kanji = "長和"
},
{
article = "Kankō",
startYear = 1004,
endYear = 1012,
kanji = "寛弘"
},
{
article = "Chōhō (era)",
startYear = 999,
endYear = 1004,
kanji = "長保",
label = "Chōhō"
},
{
article = "Chōtoku",
startYear = 995,
endYear = 999,
kanji = "長徳"
},
{
article = "Shōryaku",
startYear = 990,
endYear = 995,
kanji = "正暦"
},
{
article = "Eiso (era)",
startYear = 988,
endYear = 990,
kanji = "永祚",
label = "Eiso"
},
{
article = "Eien",
startYear = 987,
endYear = 988,
kanji = "永延"
},
{
article = "Kanna (era)",
startYear = 985,
endYear = 987,
kanji = "寛和",
label = "Kanna"
},
{
article = "Eikan",
startYear = 983,
endYear = 985,
kanji = "永観"
},
{
article = "Tengen (era)",
startYear = 978,
endYear = 983,
kanji = "天元",
label = "Tengen"
},
{
article = "Jōgen (Heian period)",
startYear = 976,
endYear = 978,
kanji = "貞元",
label = "Jōgen"
},
{
article = "Ten'en",
startYear = 973,
endYear = 976,
kanji = "天延"
},
{
article = "Tenroku",
startYear = 970,
endYear = 973,
kanji = "天禄"
},
{
article = "Anna (era)",
startYear = 968,
endYear = 970,
kanji = "安和",
label = "Anna"
},
{
article = "Kōhō",
startYear = 964,
endYear = 968,
kanji = "康保"
},
{
article = "Ōwa",
startYear = 961,
endYear = 964,
kanji = "応和"
},
{
article = "Tentoku",
startYear = 957,
endYear = 961,
kanji = "天徳"
},
{
article = "Tenryaku",
startYear = 947,
endYear = 957,
kanji = "天暦"
},
{
article = "Tengyō",
startYear = 938,
endYear = 947,
kanji = "天慶"
},
{
article = "Jōhei",
startYear = 931,
endYear = 938,
kanji = "承平"
},
{
article = "Enchō",
startYear = 923,
endYear = 931,
kanji = "延長"
},
{
article = "Engi (era)",
startYear = 901,
endYear = 923,
kanji = "延喜",
label = "Engi"
},
{
article = "Shōtai",
startYear = 898,
endYear = 901,
kanji = "昌泰"
},
{
article = "Kanpyō (era)",
startYear = 889,
endYear = 898,
kanji = "寛平",
label = "Kanpyō"
},
{
article = "Ninna",
startYear = 885,
endYear = 889,
kanji = "仁和"
},
{
article = "Gangyō",
startYear = 877,
endYear = 885,
kanji = "元慶"
},
{
article = "Jōgan",
startYear = 859,
endYear = 877,
kanji = "貞観"
},
{
article = "Ten'an",
startYear = 857,
endYear = 859,
kanji = "天安"
},
{
article = "Saikō",
startYear = 854,
endYear = 857,
kanji = "斉衡"
},
{
article = "Ninju",
startYear = 851,
endYear = 854,
kanji = "仁寿"
},
{
article = "Kashō",
startYear = 848,
endYear = 851,
kanji = "嘉祥"
},
{
article = "Jōwa (Heian period)",
startYear = 834,
endYear = 848,
kanji = "承和",
label = "Jōwa"
},
{
article = "Tenchō",
startYear = 824,
endYear = 834,
kanji = "天長"
},
{
article = "Kōnin (era)",
startYear = 810,
endYear = 824,
kanji = "弘仁",
label = "Kōnin"
},
{
article = "Daidō",
startYear = 806,
endYear = 810,
kanji = "大同"
},
{
article = "Enryaku",
startYear = 782,
endYear = 806,
kanji = "延暦"
},
{
article = "Ten'ō",
startYear = 781,
endYear = 782,
kanji = "天応"
},
{
article = "Hōki",
startYear = 770,
endYear = 781,
kanji = "宝亀"
},
{
article = "Jingo-keiun",
startYear = 767,
endYear = 770,
kanji = "神護景雲"
},
{
article = "Tenpyō-jingo",
startYear = 765,
endYear = 767,
kanji = "天平神護"
},
{
article = "Tenpyō-hōji",
startYear = 757,
endYear = 765,
kanji = "天平宝字"
},
{
article = "Tenpyō-shōhō",
startYear = 749,
endYear = 757,
kanji = "天平勝宝"
},
{
article = "Tenpyō-kanpō",
startYear = 749,
endYear = 749,
kanji = "天平感宝"
},
{
article = "Tenpyō",
startYear = 729,
endYear = 749,
kanji = "天平"
},
{
article = "Jinki (era)",
startYear = 724,
endYear = 729,
kanji = "神亀",
label = "Jinki"
},
{
article = "Yōrō",
startYear = 717,
endYear = 724,
kanji = "養老"
},
{
article = "Reiki (era)",
startYear = 715,
endYear = 717,
kanji = "霊亀",
label = "Reiki"
},
{
article = "Wadō (era)",
startYear = 708,
endYear = 715,
kanji = "和銅",
label = "Wadō"
},
{
article = "Keiun",
startYear = 704,
endYear = 708,
kanji = "慶雲"
},
{
article = "Taihō (era)",
startYear = 701,
endYear = 704,
kanji = "大宝",
label = "Taihō"
},
{
article = "Shuchō",
startYear = 686,
endYear = 686,
kanji = "朱鳥"
},
{
article = "Hakuchi (era)",
startYear = 650,
endYear = 654,
kanji = "白雉",
label = "Hakuchi"
},
{
article = "Taika (era)",
startYear = 645,
endYear = 650,
kanji = "大化",
label = "Taika"
}
}
return eras
2eygnvvs4aldb68962y64kiiptrh4mw
فرما:Template rating
10
33070
153370
2026-06-25T04:39:27Z
en>Jonesey95
0
Fix name of error category that is not an unknown parameter category
153370
wikitext
text/x-wiki
<includeonly>{{#if:{{{1|}}}<!-- Escape empty required first unnamed parameter -->|{{#switch:{{Namespace detect|template=t|module=m|demospace={{{demospace|}}}|page={{{demopage|}}}}}
|m
|t = <!-- ***** IF IN MODULE OR TEMPLATE NAMESPACE ***** -->{{ombox
| type = notice
| image = {{#switch: {{lc:{{{1|}}}}}
| pre-alpha | prealpha | pa | experimental = [[File:Ambox warning blue construction.svg|40x40px|link=|alt=]]
| alpha | a = [[File:Greek lc alpha icon.svg|class=skin-invert|26x26px|link=|alt=]]
| beta | b = [[File:Greek lc beta icon.svg|class=skin-invert|40x40px|link=|alt=]]
| release | r | general | g | stable | protected | protect | p | semiprotected | semiprotect | semi = [[File:Green check.svg|40x40px|link=|alt=]]
| broken | br | unstable = [[File:Red x.svg|40x40px|link=|alt=]]
| deprecated | d | defunct = [[File:Historical.svg|40x40px|link=|alt=]]
}}
| style =
| textstyle =
| text = {{#switch: {{lc:{{{1|}}}}}
| pre-alpha | prealpha | pa | experimental = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in pre-alpha development|pre-alpha]]. It is incomplete and may or may not be in active development. Do not use it in [[Wikipedia:Article namespace|article namespace]] pages. A {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}} remains in pre-alpha until its developer, or another editor who adopts it if it is abandoned for some time, considers the basic structure complete.
| alpha | a = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in alpha|alpha]]. It is ready for limited use and third-party feedback. It may be used on a small number of pages, but should be monitored closely. Suggestions for new features or adjustments to input and output are welcome.
| beta | b = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in beta|beta]]. It is considered ready for widespread use, but as it is still relatively new, it should be applied with some caution to ensure results are as expected.
| release | r | general | g | stable | protected | protect | p | semiprotected | semiprotect | semi = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s for general use|ready for general use]]. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on [[Wikipedia:Help pages|help pages]] and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through [[Wikipedia:Template sandbox and test cases|sandbox testing]] rather than repeated trial-and-error editing.
| broken | br | unstable = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:Unstable {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|unstable]]. It has missing dependencies, compatibility issues, or output errors that make it unusable. Editors are encouraged to [[Special:EditPage/{{FULLPAGENAME}}|improve its compatibility]] or [[Wikipedia:Templates for discussion|nominate it for deletion]] if it cannot be fixed.
| deprecated | d | defunct = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as '''[[:Category:Deprecated {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|deprecated]]''' and defunct.{{#if:{{{replaced|}}}|{{space}}It is recommended editors use [[{{{replaced}}}]].}}{{#if:{{{message|}}}|{{space}}{{{message}}}}}
| #default = {{error|Page using [[Template:Template rating]] with <u>invalid</u> template or module rating in {{para|1}} parameter.}}[[Category:Pages using template rating template with invalid rating|{{FULLPAGENAME}}]]
}}
}}<!-- Categorize.
-->{{#if:{{{demopage|}}}{{{demospace|}}}||
{{#switch: {{lc:{{SUBPAGENAME}}}}
| doc | sandbox =<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true
| <!-- No category if user sets nocat=true -->
| {{#switch: {{lc:{{{1|}}}}}
| pre-alpha | prealpha | pa | experimental = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in pre-alpha development|{{PAGENAME}}]]
| alpha | a = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in alpha|{{PAGENAME}}]]
| beta | b = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in beta|{{PAGENAME}}]]
| release | r | general | g | stable | protected | p | semiprotected | semiprotect | semi = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s for general use|{{PAGENAME}}]]
| deprecated | d | defunct = [[Category:Deprecated {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|{{PAGENAME}}]]
| broken | br | unstable = [[Category:Unstable {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|{{PAGENAME}}]]
}}
}}
}}
}}
| #default = <!-- ***** Error not in Template or Module namespaces ***** -->{{if preview|1={{error|Error: {{tl|Template rating}} can only be used on pages in the [[Wikipedia:Template namespace|Template:]] or [[Wikipedia:Module namespace|Module: namespaces]].}}}}[[Category:Pages with templates in the wrong namespace]]
}}<!-- End switch. -->|{{If preview|1={{error|Page using [[Template:Template rating]] with <u>empty</u> {{para|1}} module rating parameter.}}}}[[Category:Pages using template rating template with invalid rating|{{FULLPAGENAME}}]]<!--
-->}}<!-- End if. Display protection template if necessary, this will obviously show it for /doc page too since it uses {{FULLPAGENAME}}: -->{{#switch:{{Namespace detect|template=t|module=m|demospace={{{demospace|}}}}}
|t|m = {{#if:{{{suppress-pp|}}}
|
|{{#switch:{{#invoke:Effective protection level|edit|1={{{demopage|{{FULLPAGENAME}}}}}}}
|*|user = <!-- If not protected page, do nothing. -->
|#default = {{#ifeq:{{lc:{{SUBPAGENAME}}}}|doc
|<!-- {{#if:{{{2|}}}{{{doc-reason|}}}{{{3|}}}{{{doc-action|}}} --><!--
--><!-- | -->{{pp|{{{2|{{{doc-reason|}}}}}}|action={{{3|{{{doc-action|}}}}}}}}<!--
--><!-- }} -->
-->|{{pp|1={{{reason|{{{doc-reason|}}}}}}|action={{{action|{{{doc-action|}}}}}}|demolevel={{{demolevel|}}}}}<!--
-->}}<!--
-->}}<!--
-->}}
|#default = <!-- If not in template or module namespace, do nothing
-->}}<!--
End template, start tracking.
-->{{#invoke:Check for unknown parameters| check
| unknown = {{#if:{{{demopage|}}}{{{demospace|}}}||{{#switch:{{Namespace detect|template=t|module=m}}|m|t=[[Category:Pages using template rating template with unknown parameters|_VALUE_{{FULLPAGENAME}}]]}}}}
| preview = Page using [[Template:Template rating]] with unknown parameter "_VALUE_"
| ignoreblank=y | demospace | demopage | 1 | 2 | 3 | reason | action | doc-reason | doc-action | nocat | replaced | message | demolevel | suppress-pp | demopage
}}</includeonly><!-- End tracking. --><noinclude>
{{template rating/sandbox|release|nocat=true|demospace=template|demopage=template:template rating|demolevel=edit}}
{{mbox|text=The above template is a demo.}}
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go in Wikidata. -->
</noinclude>
1uyrkb0aphrohrsebghuak589eymdnp
153371
153370
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Template:Template_rating]]: Needed locally
153370
wikitext
text/x-wiki
<includeonly>{{#if:{{{1|}}}<!-- Escape empty required first unnamed parameter -->|{{#switch:{{Namespace detect|template=t|module=m|demospace={{{demospace|}}}|page={{{demopage|}}}}}
|m
|t = <!-- ***** IF IN MODULE OR TEMPLATE NAMESPACE ***** -->{{ombox
| type = notice
| image = {{#switch: {{lc:{{{1|}}}}}
| pre-alpha | prealpha | pa | experimental = [[File:Ambox warning blue construction.svg|40x40px|link=|alt=]]
| alpha | a = [[File:Greek lc alpha icon.svg|class=skin-invert|26x26px|link=|alt=]]
| beta | b = [[File:Greek lc beta icon.svg|class=skin-invert|40x40px|link=|alt=]]
| release | r | general | g | stable | protected | protect | p | semiprotected | semiprotect | semi = [[File:Green check.svg|40x40px|link=|alt=]]
| broken | br | unstable = [[File:Red x.svg|40x40px|link=|alt=]]
| deprecated | d | defunct = [[File:Historical.svg|40x40px|link=|alt=]]
}}
| style =
| textstyle =
| text = {{#switch: {{lc:{{{1|}}}}}
| pre-alpha | prealpha | pa | experimental = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in pre-alpha development|pre-alpha]]. It is incomplete and may or may not be in active development. Do not use it in [[Wikipedia:Article namespace|article namespace]] pages. A {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}} remains in pre-alpha until its developer, or another editor who adopts it if it is abandoned for some time, considers the basic structure complete.
| alpha | a = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in alpha|alpha]]. It is ready for limited use and third-party feedback. It may be used on a small number of pages, but should be monitored closely. Suggestions for new features or adjustments to input and output are welcome.
| beta | b = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in beta|beta]]. It is considered ready for widespread use, but as it is still relatively new, it should be applied with some caution to ensure results are as expected.
| release | r | general | g | stable | protected | protect | p | semiprotected | semiprotect | semi = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s for general use|ready for general use]]. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on [[Wikipedia:Help pages|help pages]] and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through [[Wikipedia:Template sandbox and test cases|sandbox testing]] rather than repeated trial-and-error editing.
| broken | br | unstable = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:Unstable {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|unstable]]. It has missing dependencies, compatibility issues, or output errors that make it unusable. Editors are encouraged to [[Special:EditPage/{{FULLPAGENAME}}|improve its compatibility]] or [[Wikipedia:Templates for discussion|nominate it for deletion]] if it cannot be fixed.
| deprecated | d | defunct = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as '''[[:Category:Deprecated {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|deprecated]]''' and defunct.{{#if:{{{replaced|}}}|{{space}}It is recommended editors use [[{{{replaced}}}]].}}{{#if:{{{message|}}}|{{space}}{{{message}}}}}
| #default = {{error|Page using [[Template:Template rating]] with <u>invalid</u> template or module rating in {{para|1}} parameter.}}[[Category:Pages using template rating template with invalid rating|{{FULLPAGENAME}}]]
}}
}}<!-- Categorize.
-->{{#if:{{{demopage|}}}{{{demospace|}}}||
{{#switch: {{lc:{{SUBPAGENAME}}}}
| doc | sandbox =<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true
| <!-- No category if user sets nocat=true -->
| {{#switch: {{lc:{{{1|}}}}}
| pre-alpha | prealpha | pa | experimental = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in pre-alpha development|{{PAGENAME}}]]
| alpha | a = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in alpha|{{PAGENAME}}]]
| beta | b = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in beta|{{PAGENAME}}]]
| release | r | general | g | stable | protected | p | semiprotected | semiprotect | semi = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s for general use|{{PAGENAME}}]]
| deprecated | d | defunct = [[Category:Deprecated {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|{{PAGENAME}}]]
| broken | br | unstable = [[Category:Unstable {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|{{PAGENAME}}]]
}}
}}
}}
}}
| #default = <!-- ***** Error not in Template or Module namespaces ***** -->{{if preview|1={{error|Error: {{tl|Template rating}} can only be used on pages in the [[Wikipedia:Template namespace|Template:]] or [[Wikipedia:Module namespace|Module: namespaces]].}}}}[[Category:Pages with templates in the wrong namespace]]
}}<!-- End switch. -->|{{If preview|1={{error|Page using [[Template:Template rating]] with <u>empty</u> {{para|1}} module rating parameter.}}}}[[Category:Pages using template rating template with invalid rating|{{FULLPAGENAME}}]]<!--
-->}}<!-- End if. Display protection template if necessary, this will obviously show it for /doc page too since it uses {{FULLPAGENAME}}: -->{{#switch:{{Namespace detect|template=t|module=m|demospace={{{demospace|}}}}}
|t|m = {{#if:{{{suppress-pp|}}}
|
|{{#switch:{{#invoke:Effective protection level|edit|1={{{demopage|{{FULLPAGENAME}}}}}}}
|*|user = <!-- If not protected page, do nothing. -->
|#default = {{#ifeq:{{lc:{{SUBPAGENAME}}}}|doc
|<!-- {{#if:{{{2|}}}{{{doc-reason|}}}{{{3|}}}{{{doc-action|}}} --><!--
--><!-- | -->{{pp|{{{2|{{{doc-reason|}}}}}}|action={{{3|{{{doc-action|}}}}}}}}<!--
--><!-- }} -->
-->|{{pp|1={{{reason|{{{doc-reason|}}}}}}|action={{{action|{{{doc-action|}}}}}}|demolevel={{{demolevel|}}}}}<!--
-->}}<!--
-->}}<!--
-->}}
|#default = <!-- If not in template or module namespace, do nothing
-->}}<!--
End template, start tracking.
-->{{#invoke:Check for unknown parameters| check
| unknown = {{#if:{{{demopage|}}}{{{demospace|}}}||{{#switch:{{Namespace detect|template=t|module=m}}|m|t=[[Category:Pages using template rating template with unknown parameters|_VALUE_{{FULLPAGENAME}}]]}}}}
| preview = Page using [[Template:Template rating]] with unknown parameter "_VALUE_"
| ignoreblank=y | demospace | demopage | 1 | 2 | 3 | reason | action | doc-reason | doc-action | nocat | replaced | message | demolevel | suppress-pp | demopage
}}</includeonly><!-- End tracking. --><noinclude>
{{template rating/sandbox|release|nocat=true|demospace=template|demopage=template:template rating|demolevel=edit}}
{{mbox|text=The above template is a demo.}}
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go in Wikidata. -->
</noinclude>
1uyrkb0aphrohrsebghuak589eymdnp
فرما:UF-hcal-auto
10
33071
153372
2026-01-22T23:39:00Z
en>JJMC89 bot III
0
Moving [[:Category:Microformat (uF) message templates]] to [[:Category:Microformat message templates]] per [[Wikipedia:Categories for discussion/Speedy]]
153372
wikitext
text/x-wiki
{{Microformat message
| format = hCalendar
| data = event/date details
|attendee |description |dtend |dtstart |location |summary |url |vevent
| nocollapse = on
}}<includeonly>{{#ifeq:{{SUBPAGENAME}}|doc | |{{#ifeq:{{SUBPAGENAME}}|sandbox | |[[Category:Templates generating hCalendars|{{PAGENAME}}]]}} }}</includeonly><noinclude>
{{Documentation |content={{Microformat message templates}}}}
[[Category:Microformat message templates]]
</noinclude>
iwml74vl7z9teqzbi0eh48ecqwfu7ea
153373
153372
2026-10-06T18:16:05Z
511KeV
8268
1 revision imported from [[:en:Template:UF-hcal-auto]]: Needed locally
153372
wikitext
text/x-wiki
{{Microformat message
| format = hCalendar
| data = event/date details
|attendee |description |dtend |dtstart |location |summary |url |vevent
| nocollapse = on
}}<includeonly>{{#ifeq:{{SUBPAGENAME}}|doc | |{{#ifeq:{{SUBPAGENAME}}|sandbox | |[[Category:Templates generating hCalendars|{{PAGENAME}}]]}} }}</includeonly><noinclude>
{{Documentation |content={{Microformat message templates}}}}
[[Category:Microformat message templates]]
</noinclude>
iwml74vl7z9teqzbi0eh48ecqwfu7ea
فرما:Horizontal list
10
33072
153376
2026-09-12T00:36:18Z
en>BD2412
0
RM closed as moved.
153376
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#invoke:list|horizontal}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
ihcdy525o8nnmq114czc48dpk6pnojd
153377
153376
2026-10-06T18:16:06Z
511KeV
8268
1 revision imported from [[:en:Template:Horizontal_list]]: Needed locally
153376
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#invoke:list|horizontal}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
ihcdy525o8nnmq114czc48dpk6pnojd
فرما:Year in various calendars/doc
10
33073
153378
2026-06-29T16:24:17Z
en>ABreault (WMF)
0
For [[phab:T353697|T353697]]
153378
wikitext
text/x-wiki
{{#ifeq:{{{type|}}}|module||
<noinclude>{{Documentation subpage}}</noinclude>
{{High-use}}
{{lua|Module:Year in various calendars|Module:Armenian}}
}}
{{Year in various calendars|{{CURRENTYEAR}}}}
This {{{type|template}}} produces the sidebar opposite displaying a given [[Gregorian calendar|Gregorian]] year in various different calendars.
===Syntax===
'''Simple'''
{{pre |<nowiki>{{</nowiki>{{#ifeq:{{{type|}}}|module |{{hash}}invoke:Year in various calendars{{!}}main |Year in various calendars}}<nowiki>}}</nowiki> }}
'''All parameters'''
{{pre |<nowiki>{{</nowiki>{{#ifeq:{{{type|}}}|module |{{hash}}invoke:Year in various calendars{{!}}main |Year in various calendars}} {{!}}year{{=}}''(n)'' {{!}}footnotes{{=}}''(footnotes)'' {{!}}gregcal{{=}}''(article name)''<nowiki>}}</nowiki> }}
===Parameters===
; year : Number specifying the year to be displayed. This can be negative and also can be in the format "''n BC''" to display BC dates or "''AD n''" as an alternative to a positive number. If not specified, the current year is used.
; footnotes : Any footnotes to be placed at the bottom of the sidebar.
; gregcal : Name of an article to be displayed for Gregorian and Julian years (e.g. "2000 BC"). Do not include square brackets.
===Microformat===
{{UF-hcal-auto}}
<includeonly>{{Sandbox other||{{#ifeq:{{{type|}}}|module||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Calendar templates]]
[[Category:History and events sidebar templates]]
}}}}</includeonly>
hm4f8ww35opj5p7iuomcieez7uqqs9h
153379
153378
2026-10-06T18:16:06Z
511KeV
8268
1 revision imported from [[:en:Template:Year_in_various_calendars/doc]]: Needed locally
153378
wikitext
text/x-wiki
{{#ifeq:{{{type|}}}|module||
<noinclude>{{Documentation subpage}}</noinclude>
{{High-use}}
{{lua|Module:Year in various calendars|Module:Armenian}}
}}
{{Year in various calendars|{{CURRENTYEAR}}}}
This {{{type|template}}} produces the sidebar opposite displaying a given [[Gregorian calendar|Gregorian]] year in various different calendars.
===Syntax===
'''Simple'''
{{pre |<nowiki>{{</nowiki>{{#ifeq:{{{type|}}}|module |{{hash}}invoke:Year in various calendars{{!}}main |Year in various calendars}}<nowiki>}}</nowiki> }}
'''All parameters'''
{{pre |<nowiki>{{</nowiki>{{#ifeq:{{{type|}}}|module |{{hash}}invoke:Year in various calendars{{!}}main |Year in various calendars}} {{!}}year{{=}}''(n)'' {{!}}footnotes{{=}}''(footnotes)'' {{!}}gregcal{{=}}''(article name)''<nowiki>}}</nowiki> }}
===Parameters===
; year : Number specifying the year to be displayed. This can be negative and also can be in the format "''n BC''" to display BC dates or "''AD n''" as an alternative to a positive number. If not specified, the current year is used.
; footnotes : Any footnotes to be placed at the bottom of the sidebar.
; gregcal : Name of an article to be displayed for Gregorian and Julian years (e.g. "2000 BC"). Do not include square brackets.
===Microformat===
{{UF-hcal-auto}}
<includeonly>{{Sandbox other||{{#ifeq:{{{type|}}}|module||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Calendar templates]]
[[Category:History and events sidebar templates]]
}}}}</includeonly>
hm4f8ww35opj5p7iuomcieez7uqqs9h
Module:Year in various calendars/doc
828
33074
153380
2023-12-28T14:57:18Z
en>Tom.Reding
0
/* top */{{High-use}}
153380
wikitext
text/x-wiki
{{High-use}}
{{Module rating|beta}}
{{Lua|Module:Roman|Module:Ancient Olympiads|Module:Ancient Egypt era|Module:Ancient Egypt kings|Module:Armenian|Module:British regnal year|Module:Japanese calendar|Module:Arguments}}
{{#invoke:Year in various calendars|main}}
{{Year in various calendars/doc|type=module}}
=== Adding new calendars ===
The module is set up to allow for easy addition of new calendars. Just scroll down to the "Build the box" section of the module code, and add your calendar as follows:
To display one year:
<div style="overflow: auto;"><syntaxhighlight lang="lua">
local myCalendar = calendar:new()
myCalendar:setLink( 'My calendar article' ) -- The name of the calendar's Wikipedia article.
myCalendar:setYear( year + 10 ) -- Lua code linking the Gregorian calendar year to your calendar's year.
box:addCalendar( myCalendar )
</syntaxhighlight></div>
To display a year range:
<div style="overflow: auto;"><syntaxhighlight lang="lua">
local myCalendar = calendar:new()
myCalendar:setLink( 'My calendar article' ) -- The name of the calendar's Wikipedia article.
myCalendar:setYearRange( year + 10, year + 11 ) -- Lua code outputting the start year and the end year of the year range.
box:addCalendar( myCalendar )
</syntaxhighlight></div>
More complicated calendars can be passed as a string to <code>calendar:setYear()</code>.
=== Technical details ===
The module defines three [[class (programming)|classes]] which do the work of setting up the sidebar and displaying the data provided by the calendar functions. These are the <code>calendarBox</code> class, which defines the sidebar; the <code>calendar</code> class, which holds the data for one calendar; and the <code>calendarGroup</code> object, which defines a group of calendar objects with a heading.
To load these classes from another module, use the following:
<div style="overflow: auto;"><syntaxhighlight lang="lua">
local yearInOtherCalendars = require( 'Module:Year in various calendars' )
local calendarBox = yearInOtherCalendars.calendarBox
local calendarGroup = yearInOtherCalendars.calendarGroup
local calendar = yearInOtherCalendars.calendar
</syntaxhighlight></div>
==== calendarBox class ====
A <code>calendarBox</code> object is initiated with:
{{pre|
<nowiki>local myCalendarBox = calendarBox:new{ year = </nowiki>''yyyy''<nowiki>, footnotes = </nowiki>''footnotes''<nowiki>, navbar = </nowiki>''page name''<nowiki> }</nowiki>
}}
* <code>year</code> - sets the Gregorian year to base calendar calculations on. If not specified, the current year is used.
* <code>footnotes</code> - sets text to be displayed in a footnotes section at the bottom of the sidebar.
* <code>navbar</code> - sets the page name to be used by the [[Template:Navbar|navbar]].
Calendar box objects have the following properties:
* <code>calendarBox.year</code> - the Gregorian year number. This is negative for BC years; for example, for the year 100 BC the value of calendarBox.year is <code>-99</code>. (BC years are calculated by "1 - n" rather than "0 - n", as there is no year zero.)
* <code>calendarBox.yearText</code> - the Gregorian year text. This is a string value of the format "n" for AD years and "n BC" for BC years.
* <code>calendarBox.caption</code> - the text of the box caption (the bold text that appears directly above the box). The default caption is the value of <code>calendarBox.yearText</code>.
* <code>calendarBox.footnotes</code> - the text of the box footnotes.
* <code>calendarBox.navbar</code> - the page name used by the navbar.
Calendar box objects have the following methods:
* <code>calendarBox:setCaption( ''caption'' )</code> - sets the box caption (the bold text that appears directly above the box). The default caption is the value of <code>calendarBox.yearText</code>.
* <code>calendarBox:addCalendar( ''obj'' )</code> - adds a calendar object or a calendar group object to the calendar box.
* <code>calendarBox:addCalendarGroup( ''obj'' )</code> - an alias for <code>myCalendarBox:addCalendar()</code>.
* <code>calendarBox:export()</code> - converts the calendar box object to wikicode. This calls <code>calendar:export()</code> and <code>calendarGroup:export()</code> to export calendar objects and calendar group objects.
==== calendar class ====
A <code>calendar</code> object is initiated with:
{{pre|
<nowiki>local myCalendar = calendar:new()</nowiki>
}}
Calendar objects have the following properties:
* <code>calendar.link</code> - the link name.
* <code>calendar.year</code> - the year value. This is always a string value.
Calendar objects have the following methods:
* <code>calendar:setLink( ''link'', ''display'' )</code> - sets the link name for the calendar object. <code>''link''</code> is the name of Wikipedia's article about the calendar, and <code>''display''</code> is an optional display name for the article link.
* <code>calendar:setRawLink( ''wikitext'' )</code> - sets the calendar link as raw wikitext.
* <code>calendar:getLink()</code> - gets the link value.
* <code>calendar:setYear( ''year'' )</code> - sets the year value for the calendar. <code>''year''</code> can be a number or a string.
* <code>calendar:setYearRange( ''startYear'', ''endYear'' )</code> - sets the year value for the calendar as a year range. Both <code>''startYear''</code> and <code>''endYear''</code> must be number values.
* <code>calendar:export()</code> - exports the calendar to wikitext. If no link value was found, this returns <code>nil</code>. If a link was found but no year value was found, the calendar is output with a value of <code>''N/A''</code> for the year.
==== calendarGroup class ====
A <code>calendarGroup</code> object is initiated with:
{{pre|
<nowiki>local myCalendarGroup = calendarGroup:new{ heading = </nowiki>''heading''<nowiki> }</nowiki>
}}
* <code>heading</code> - the wikitext heading for the calendar group (e.g. <code><nowiki>[[Hindu calendar]]s</nowiki></code>).
Calendar group objects have one property:
* <code>calendarGroup.heading</code> - the calendar group heading text.
Calendar group objects have the following methods:
* <code>calendarGroup:addCalendar( ''obj'' )</code> - adds a calendar object to the calendar group.
* <code>calendarGroup:export()</code> - converts a calendar group to wikitext. Calls <code>calendar:export()</code> to export individual calendar objects.
=== See also ===
{{tl|Year in various calendars}}
<includeonly>{{Sandbox other||
[[Category:Time, date and calendar modules]]
}}</includeonly>
7vq24ncmtjokp8totsy74dgvdtimbuu
153381
153380
2026-10-06T18:16:06Z
511KeV
8268
1 revision imported from [[:en:Module:Year_in_various_calendars/doc]]: Needed locally
153380
wikitext
text/x-wiki
{{High-use}}
{{Module rating|beta}}
{{Lua|Module:Roman|Module:Ancient Olympiads|Module:Ancient Egypt era|Module:Ancient Egypt kings|Module:Armenian|Module:British regnal year|Module:Japanese calendar|Module:Arguments}}
{{#invoke:Year in various calendars|main}}
{{Year in various calendars/doc|type=module}}
=== Adding new calendars ===
The module is set up to allow for easy addition of new calendars. Just scroll down to the "Build the box" section of the module code, and add your calendar as follows:
To display one year:
<div style="overflow: auto;"><syntaxhighlight lang="lua">
local myCalendar = calendar:new()
myCalendar:setLink( 'My calendar article' ) -- The name of the calendar's Wikipedia article.
myCalendar:setYear( year + 10 ) -- Lua code linking the Gregorian calendar year to your calendar's year.
box:addCalendar( myCalendar )
</syntaxhighlight></div>
To display a year range:
<div style="overflow: auto;"><syntaxhighlight lang="lua">
local myCalendar = calendar:new()
myCalendar:setLink( 'My calendar article' ) -- The name of the calendar's Wikipedia article.
myCalendar:setYearRange( year + 10, year + 11 ) -- Lua code outputting the start year and the end year of the year range.
box:addCalendar( myCalendar )
</syntaxhighlight></div>
More complicated calendars can be passed as a string to <code>calendar:setYear()</code>.
=== Technical details ===
The module defines three [[class (programming)|classes]] which do the work of setting up the sidebar and displaying the data provided by the calendar functions. These are the <code>calendarBox</code> class, which defines the sidebar; the <code>calendar</code> class, which holds the data for one calendar; and the <code>calendarGroup</code> object, which defines a group of calendar objects with a heading.
To load these classes from another module, use the following:
<div style="overflow: auto;"><syntaxhighlight lang="lua">
local yearInOtherCalendars = require( 'Module:Year in various calendars' )
local calendarBox = yearInOtherCalendars.calendarBox
local calendarGroup = yearInOtherCalendars.calendarGroup
local calendar = yearInOtherCalendars.calendar
</syntaxhighlight></div>
==== calendarBox class ====
A <code>calendarBox</code> object is initiated with:
{{pre|
<nowiki>local myCalendarBox = calendarBox:new{ year = </nowiki>''yyyy''<nowiki>, footnotes = </nowiki>''footnotes''<nowiki>, navbar = </nowiki>''page name''<nowiki> }</nowiki>
}}
* <code>year</code> - sets the Gregorian year to base calendar calculations on. If not specified, the current year is used.
* <code>footnotes</code> - sets text to be displayed in a footnotes section at the bottom of the sidebar.
* <code>navbar</code> - sets the page name to be used by the [[Template:Navbar|navbar]].
Calendar box objects have the following properties:
* <code>calendarBox.year</code> - the Gregorian year number. This is negative for BC years; for example, for the year 100 BC the value of calendarBox.year is <code>-99</code>. (BC years are calculated by "1 - n" rather than "0 - n", as there is no year zero.)
* <code>calendarBox.yearText</code> - the Gregorian year text. This is a string value of the format "n" for AD years and "n BC" for BC years.
* <code>calendarBox.caption</code> - the text of the box caption (the bold text that appears directly above the box). The default caption is the value of <code>calendarBox.yearText</code>.
* <code>calendarBox.footnotes</code> - the text of the box footnotes.
* <code>calendarBox.navbar</code> - the page name used by the navbar.
Calendar box objects have the following methods:
* <code>calendarBox:setCaption( ''caption'' )</code> - sets the box caption (the bold text that appears directly above the box). The default caption is the value of <code>calendarBox.yearText</code>.
* <code>calendarBox:addCalendar( ''obj'' )</code> - adds a calendar object or a calendar group object to the calendar box.
* <code>calendarBox:addCalendarGroup( ''obj'' )</code> - an alias for <code>myCalendarBox:addCalendar()</code>.
* <code>calendarBox:export()</code> - converts the calendar box object to wikicode. This calls <code>calendar:export()</code> and <code>calendarGroup:export()</code> to export calendar objects and calendar group objects.
==== calendar class ====
A <code>calendar</code> object is initiated with:
{{pre|
<nowiki>local myCalendar = calendar:new()</nowiki>
}}
Calendar objects have the following properties:
* <code>calendar.link</code> - the link name.
* <code>calendar.year</code> - the year value. This is always a string value.
Calendar objects have the following methods:
* <code>calendar:setLink( ''link'', ''display'' )</code> - sets the link name for the calendar object. <code>''link''</code> is the name of Wikipedia's article about the calendar, and <code>''display''</code> is an optional display name for the article link.
* <code>calendar:setRawLink( ''wikitext'' )</code> - sets the calendar link as raw wikitext.
* <code>calendar:getLink()</code> - gets the link value.
* <code>calendar:setYear( ''year'' )</code> - sets the year value for the calendar. <code>''year''</code> can be a number or a string.
* <code>calendar:setYearRange( ''startYear'', ''endYear'' )</code> - sets the year value for the calendar as a year range. Both <code>''startYear''</code> and <code>''endYear''</code> must be number values.
* <code>calendar:export()</code> - exports the calendar to wikitext. If no link value was found, this returns <code>nil</code>. If a link was found but no year value was found, the calendar is output with a value of <code>''N/A''</code> for the year.
==== calendarGroup class ====
A <code>calendarGroup</code> object is initiated with:
{{pre|
<nowiki>local myCalendarGroup = calendarGroup:new{ heading = </nowiki>''heading''<nowiki> }</nowiki>
}}
* <code>heading</code> - the wikitext heading for the calendar group (e.g. <code><nowiki>[[Hindu calendar]]s</nowiki></code>).
Calendar group objects have one property:
* <code>calendarGroup.heading</code> - the calendar group heading text.
Calendar group objects have the following methods:
* <code>calendarGroup:addCalendar( ''obj'' )</code> - adds a calendar object to the calendar group.
* <code>calendarGroup:export()</code> - converts a calendar group to wikitext. Calls <code>calendar:export()</code> to export individual calendar objects.
=== See also ===
{{tl|Year in various calendars}}
<includeonly>{{Sandbox other||
[[Category:Time, date and calendar modules]]
}}</includeonly>
7vq24ncmtjokp8totsy74dgvdtimbuu
فرما کَتھ:Year in various calendars
11
33075
153384
2026-09-05T18:55:41Z
en>Zackmann08
0
/* Template-protected edit request on 26 July 2026 */ Reply
153384
wikitext
text/x-wiki
{{Permanently protected}}
{{talkheader}}
{{WikiProject banner shell|
{{WikiProject Time}}
}}
{{Centralized talk page|text=all talk pages belonging to [[Template:Year in various calendars]] and [[Module:Year in various calendars]] redirect here.}}
<!--- Auto archiving configured by [[User:Mlpearc]] --->
{{User:MiszaBot/config
|algo = old(31d)
|archive = Template talk:Year in various calendars/Archive %(counter)d
|counter = 4
|maxarchivesize = 150K
|archiveheader = {{tan}}
|minthreadstoarchive = 2
|minthreadsleft = 3
}}
== Template-protected edit request on 11 February 2026 ==
{{edit template-protected|Module:Year in various calendars|answered=yes}}
[[Republic of China (1912–1949)]] is inaccurate, as there were actually two rival states within that time period that happened to share the name '''Republic of China'''. The [[Beiyang government]] was considered the legitimate government of China from 1912–1928, and the [[Nationalist government]] replaced it from 1928–1949, where it retreated to [[Taiwan]]. I've replaced all links to [[Republic of China (1912–1949)]] and added an additional elseif statement to distinguish between the two governments.
{{cot|Diff:}}
'''Diff:'''
{{col-begin}}
{{col-2}}
<syntaxhighlight lang="lua" line start="891">
local minguo = calendar:new()
minguo:setLink( 'Minguo calendar' )
if year > 1949 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Taiwan|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
elseif year > 1911 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Republic of China (1912–1949)|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
else
local minguoYear = 1911 - year + 1
minguo:setYear( string.format( '%d before [[Republic of China (1912–1949)|ROC]]<br />民前%d年', minguoYear, minguoYear ) )
end
box:addCalendar( minguo )
</syntaxhighlight>
{{col-2}}
<syntaxhighlight lang="lua" line start="891">
local minguo = calendar:new()
minguo:setLink( 'Minguo calendar' )
if year > 1949 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Taiwan|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
elseif year > 1928 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Nationalist government|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
elseif year > 1911 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Beiyang government|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
else
local minguoYear = 1911 - year + 1
minguo:setYear( string.format( '%d before [[Beiyang government|ROC]]<br />民前%d年', minguoYear, minguoYear ) )
end
box:addCalendar( minguo )
</syntaxhighlight>
{{col-end}}
{{cob}} [[User:Wasting-time-is-my-passion|Wasting-time-is-my-passion]] ([[User talk:Wasting-time-is-my-passion|talk]]) 17:07, 11 February 2026 (UTC)
:Please wait for the merge discussion and potential implementation to be completed. – [[User:Jonesey95|Jonesey95]] ([[User talk:Jonesey95|talk]]) 13:59, 12 February 2026 (UTC)
== Template-protected edit request on 20 March 2026 ==
{{edit template-protected|Module:Year in various calendars|answered=yed}}
The backend module for this template currently uses raw {{code|.infobox|lang=css}}, which will [[MediaWiki talk:Common.css/to do#Infobox|''eventually'' be removed]]. Please overwrite [[Module:Year in various calendars]] with [[Special:PermaLink/1344481968|its sandbox version]] which I've modified to go through the infobox module ([https://en.wikipedia.org/w/index.php?oldid=1323578091&diff=1344481968 diff]). — <span style="padding:2px 3px;color:black;font-variant:small-caps;font-variant:small-caps"><b>[[User:Chrs|<span style="color:#e36f0b">chrs</span>]] [[[User_talk:Chrs|<span style="color: red">talk</span>]]]</b></span> 20:08, 20 March 2026 (UTC)
:Done! [[User:Santiago Claudio|Santiago Claudio]] ([[User talk:Santiago Claudio|talk]]) 06:45, 22 March 2026 (UTC)
== Chinese calendar ==
The current so-called Chinese calendar in this template is a mix of the [[Sexagenary cycle]] and (not explicitly stated but supposedly) the [[zh:黄帝纪元|Yellow Emperor Calendar]].
However, the Yellow Emperor Calendar was only quasi-officially used for a short period in the early 20th century when debates were heated on which calendar to use, with the [[Gregorian Calendar]] and the [[zh:孔子紀年|Confucius Calendar]] being prominent rivals. So it might be not fully neutral if we only include the Yellow Emperor Calendar. Hence, I suggest removing the Yellow Emperor Calendar from this template due to lack of significance and neutrality.
Meanwhile, I suggest including the [[regnal year]] (like Japanese calendar and English regnal years in this template) in the Chinese calendar. And during the period when there were more than one regime, use the traditional one: [[Cao Wei]], [[Eastern Jin]], [[Liu Song]], [[Southern Qi]], [[Liang dynasty]], [[Chen dynasty]], [[Southern Song]]. For example, 353 C.E. corresponds to [[zh:永和_(东晋)|Yonghe]] 8 ([[Sexagenary cycle|壬子]]) - Yonghe 9 (癸丑). [[User:Gu0427|Gu0427]] ([[User talk:Gu0427|talk]]) 22:05, 31 March 2026 (UTC)
== Template-protected edit request on 26 July 2026 ==
{{Edit template-protected|Template:Year in various calendars|answered=yes}}
Would someone add a [[WP:PARAMETER|parameter]], where it only displays one specific calander similar to [[Template:Infobox calendar date today|other infobox]] and adding the [[Avasarpiṇī#Duṣama (read as Dukhma)|Jain calendar]]? – [[User:KaijuEditor|KaijuEditor]] ([[User talk:KaijuEditor|talk]]) 18:21, 28 July 2026 (UTC)
:{{Not done}}''':''' please make your requested changes to the template's sandbox first. See [[Wikipedia:Template sandbox and test cases|WP:TESTCASES]].<!-- Template:ETp --> '''[[User:Zackmann08|<span style="color:#00d5ff">Zack</span><span style="color:#007F94">mann</span>]]''' (<sup>[[User_talk:Zackmann08|Talk to me]]</sup>/<sub>[[Special:Contributions/Zackmann08|<span style="color:orange">What I been doing</span>]]</sub>) 16:24, 5 September 2026 (UTC)
::The [[WP:SB|sandbox]] redirects here. – [[User:KaijuEditor|KaijuEditor]] ([[User talk:KaijuEditor|talk]]) 17:55, 5 September 2026 (UTC)
:::The sandbox is [[Template:Year in various calendars/sandbox]] and doesn't redirect anywhere. '''[[User:Zackmann08|<span style="color:#00d5ff">Zack</span><span style="color:#007F94">mann</span>]]''' (<sup>[[User_talk:Zackmann08|Talk to me]]</sup>/<sub>[[Special:Contributions/Zackmann08|<span style="color:orange">What I been doing</span>]]</sub>) 18:31, 5 September 2026 (UTC)
::::The [[Template talk:Year in various calendars/sandbox|talk page]] does. — [[User:KaijuEditor|KaijuEditor]] ([[User talk:KaijuEditor|talk]]) 18:51, 5 September 2026 (UTC)
:::::You aren't editing the talk page... You need to edit the sandbox. What is the problem? '''[[User:Zackmann08|<span style="color:#00d5ff">Zack</span><span style="color:#007F94">mann</span>]]''' (<sup>[[User_talk:Zackmann08|Talk to me]]</sup>/<sub>[[Special:Contributions/Zackmann08|<span style="color:orange">What I been doing</span>]]</sub>) 18:55, 5 September 2026 (UTC)
qzx8lq9ytxivvjmqfco77ckxysaxijf
153385
153384
2026-10-06T18:16:07Z
511KeV
8268
1 revision imported from [[:en:Template_talk:Year_in_various_calendars]]: Needed locally
153384
wikitext
text/x-wiki
{{Permanently protected}}
{{talkheader}}
{{WikiProject banner shell|
{{WikiProject Time}}
}}
{{Centralized talk page|text=all talk pages belonging to [[Template:Year in various calendars]] and [[Module:Year in various calendars]] redirect here.}}
<!--- Auto archiving configured by [[User:Mlpearc]] --->
{{User:MiszaBot/config
|algo = old(31d)
|archive = Template talk:Year in various calendars/Archive %(counter)d
|counter = 4
|maxarchivesize = 150K
|archiveheader = {{tan}}
|minthreadstoarchive = 2
|minthreadsleft = 3
}}
== Template-protected edit request on 11 February 2026 ==
{{edit template-protected|Module:Year in various calendars|answered=yes}}
[[Republic of China (1912–1949)]] is inaccurate, as there were actually two rival states within that time period that happened to share the name '''Republic of China'''. The [[Beiyang government]] was considered the legitimate government of China from 1912–1928, and the [[Nationalist government]] replaced it from 1928–1949, where it retreated to [[Taiwan]]. I've replaced all links to [[Republic of China (1912–1949)]] and added an additional elseif statement to distinguish between the two governments.
{{cot|Diff:}}
'''Diff:'''
{{col-begin}}
{{col-2}}
<syntaxhighlight lang="lua" line start="891">
local minguo = calendar:new()
minguo:setLink( 'Minguo calendar' )
if year > 1949 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Taiwan|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
elseif year > 1911 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Republic of China (1912–1949)|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
else
local minguoYear = 1911 - year + 1
minguo:setYear( string.format( '%d before [[Republic of China (1912–1949)|ROC]]<br />民前%d年', minguoYear, minguoYear ) )
end
box:addCalendar( minguo )
</syntaxhighlight>
{{col-2}}
<syntaxhighlight lang="lua" line start="891">
local minguo = calendar:new()
minguo:setLink( 'Minguo calendar' )
if year > 1949 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Taiwan|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
elseif year > 1928 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Nationalist government|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
elseif year > 1911 then
local minguoYear = year - 1911
minguo:setYear( string.format( '[[Beiyang government|ROC]] %d<br />民國%d年', minguoYear, minguoYear ) )
else
local minguoYear = 1911 - year + 1
minguo:setYear( string.format( '%d before [[Beiyang government|ROC]]<br />民前%d年', minguoYear, minguoYear ) )
end
box:addCalendar( minguo )
</syntaxhighlight>
{{col-end}}
{{cob}} [[User:Wasting-time-is-my-passion|Wasting-time-is-my-passion]] ([[User talk:Wasting-time-is-my-passion|talk]]) 17:07, 11 February 2026 (UTC)
:Please wait for the merge discussion and potential implementation to be completed. – [[User:Jonesey95|Jonesey95]] ([[User talk:Jonesey95|talk]]) 13:59, 12 February 2026 (UTC)
== Template-protected edit request on 20 March 2026 ==
{{edit template-protected|Module:Year in various calendars|answered=yed}}
The backend module for this template currently uses raw {{code|.infobox|lang=css}}, which will [[MediaWiki talk:Common.css/to do#Infobox|''eventually'' be removed]]. Please overwrite [[Module:Year in various calendars]] with [[Special:PermaLink/1344481968|its sandbox version]] which I've modified to go through the infobox module ([https://en.wikipedia.org/w/index.php?oldid=1323578091&diff=1344481968 diff]). — <span style="padding:2px 3px;color:black;font-variant:small-caps;font-variant:small-caps"><b>[[User:Chrs|<span style="color:#e36f0b">chrs</span>]] [[[User_talk:Chrs|<span style="color: red">talk</span>]]]</b></span> 20:08, 20 March 2026 (UTC)
:Done! [[User:Santiago Claudio|Santiago Claudio]] ([[User talk:Santiago Claudio|talk]]) 06:45, 22 March 2026 (UTC)
== Chinese calendar ==
The current so-called Chinese calendar in this template is a mix of the [[Sexagenary cycle]] and (not explicitly stated but supposedly) the [[zh:黄帝纪元|Yellow Emperor Calendar]].
However, the Yellow Emperor Calendar was only quasi-officially used for a short period in the early 20th century when debates were heated on which calendar to use, with the [[Gregorian Calendar]] and the [[zh:孔子紀年|Confucius Calendar]] being prominent rivals. So it might be not fully neutral if we only include the Yellow Emperor Calendar. Hence, I suggest removing the Yellow Emperor Calendar from this template due to lack of significance and neutrality.
Meanwhile, I suggest including the [[regnal year]] (like Japanese calendar and English regnal years in this template) in the Chinese calendar. And during the period when there were more than one regime, use the traditional one: [[Cao Wei]], [[Eastern Jin]], [[Liu Song]], [[Southern Qi]], [[Liang dynasty]], [[Chen dynasty]], [[Southern Song]]. For example, 353 C.E. corresponds to [[zh:永和_(东晋)|Yonghe]] 8 ([[Sexagenary cycle|壬子]]) - Yonghe 9 (癸丑). [[User:Gu0427|Gu0427]] ([[User talk:Gu0427|talk]]) 22:05, 31 March 2026 (UTC)
== Template-protected edit request on 26 July 2026 ==
{{Edit template-protected|Template:Year in various calendars|answered=yes}}
Would someone add a [[WP:PARAMETER|parameter]], where it only displays one specific calander similar to [[Template:Infobox calendar date today|other infobox]] and adding the [[Avasarpiṇī#Duṣama (read as Dukhma)|Jain calendar]]? – [[User:KaijuEditor|KaijuEditor]] ([[User talk:KaijuEditor|talk]]) 18:21, 28 July 2026 (UTC)
:{{Not done}}''':''' please make your requested changes to the template's sandbox first. See [[Wikipedia:Template sandbox and test cases|WP:TESTCASES]].<!-- Template:ETp --> '''[[User:Zackmann08|<span style="color:#00d5ff">Zack</span><span style="color:#007F94">mann</span>]]''' (<sup>[[User_talk:Zackmann08|Talk to me]]</sup>/<sub>[[Special:Contributions/Zackmann08|<span style="color:orange">What I been doing</span>]]</sub>) 16:24, 5 September 2026 (UTC)
::The [[WP:SB|sandbox]] redirects here. – [[User:KaijuEditor|KaijuEditor]] ([[User talk:KaijuEditor|talk]]) 17:55, 5 September 2026 (UTC)
:::The sandbox is [[Template:Year in various calendars/sandbox]] and doesn't redirect anywhere. '''[[User:Zackmann08|<span style="color:#00d5ff">Zack</span><span style="color:#007F94">mann</span>]]''' (<sup>[[User_talk:Zackmann08|Talk to me]]</sup>/<sub>[[Special:Contributions/Zackmann08|<span style="color:orange">What I been doing</span>]]</sub>) 18:31, 5 September 2026 (UTC)
::::The [[Template talk:Year in various calendars/sandbox|talk page]] does. — [[User:KaijuEditor|KaijuEditor]] ([[User talk:KaijuEditor|talk]]) 18:51, 5 September 2026 (UTC)
:::::You aren't editing the talk page... You need to edit the sandbox. What is the problem? '''[[User:Zackmann08|<span style="color:#00d5ff">Zack</span><span style="color:#007F94">mann</span>]]''' (<sup>[[User_talk:Zackmann08|Talk to me]]</sup>/<sub>[[Special:Contributions/Zackmann08|<span style="color:orange">What I been doing</span>]]</sub>) 18:55, 5 September 2026 (UTC)
qzx8lq9ytxivvjmqfco77ckxysaxijf
Module talk:Year in various calendars
829
33076
153386
2025-07-10T09:10:51Z
en>Paine Ellsworth
0
add [[WP:RCAT|rcat template]]s
153386
wikitext
text/x-wiki
#REDIRECT [[Template talk:Year in various calendars]]
{{Rcat shell|
{{R from move}}
{{R from remote page}}
}}
q94lmm2b3mtf2mmvlaqxn5shqtha3m3
153387
153386
2026-10-06T18:16:07Z
511KeV
8268
1 revision imported from [[:en:Module_talk:Year_in_various_calendars]]: Needed locally
153386
wikitext
text/x-wiki
#REDIRECT [[Template talk:Year in various calendars]]
{{Rcat shell|
{{R from move}}
{{R from remote page}}
}}
q94lmm2b3mtf2mmvlaqxn5shqtha3m3
فرما:Protected page
10
33077
153388
2026-08-30T17:26:39Z
en>Primefac
0
/* top */ clean up post-move
153388
wikitext
text/x-wiki
<includeonly>{{#invoke:Protected page|main}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
6y1fepgg5duiitvvcck1nbt4hrqzfwb
153389
153388
2026-10-06T18:16:07Z
511KeV
8268
1 revision imported from [[:en:Template:Protected_page]]: Needed locally
153388
wikitext
text/x-wiki
<includeonly>{{#invoke:Protected page|main}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
6y1fepgg5duiitvvcck1nbt4hrqzfwb
Module:Protected page
828
33078
153390
2026-08-30T17:24:01Z
en>Primefac
0
update /config call
153390
Scribunto
text/plain
-- This module implements {{pp-meta}} and its daughter templates such as
-- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}.
-- Initialise necessary modules.
require('strict')
local makeFileLink = require('Module:File link')._main
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main
local yesno = require('Module:Yesno')
-- Lazily initialise modules and objects we don't always need.
local getArgs, makeMessageBox, lang
-- Set constants.
local CONFIG_MODULE = 'Module:Protected page/config'
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function makeCategoryLink(cat, sort)
if cat then
return string.format(
'[[%s:%s|%s]]',
mw.site.namespaces[14].name,
cat,
sort
)
end
end
-- Validation function for the expiry and the protection date
local function validateDate(dateString, dateType)
if not lang then
lang = mw.language.getContentLanguage()
end
local success, result = pcall(lang.formatDate, lang, 'U', dateString)
if success then
result = tonumber(result)
if result then
return result
end
end
error(string.format(
'invalid %s: %s',
dateType,
tostring(dateString)
), 4)
end
local function makeFullUrl(page, query, display)
return string.format(
'[%s %s]',
tostring(mw.uri.fullUrl(page, query)),
display
)
end
-- Given a directed graph formatted as node -> table of direct successors,
-- get a table of all nodes reachable from a given node (though always
-- including the given node).
local function getReachableNodes(graph, start)
local toWalk, retval = {[start] = true}, {}
while true do
-- Can't use pairs() since we're adding and removing things as we're iterating
local k = next(toWalk) -- This always gets the "first" key
if k == nil then
return retval
end
toWalk[k] = nil
retval[k] = true
for _,v in ipairs(graph[k]) do
if not retval[v] then
toWalk[v] = true
end
end
end
end
--------------------------------------------------------------------------------
-- Protection class
--------------------------------------------------------------------------------
local Protection = {}
Protection.__index = Protection
Protection.supportedActions = {
edit = true,
move = true,
autoreview = true,
upload = true
}
Protection.bannerConfigFields = {
'text',
'explanation',
'tooltip',
'alt',
'link',
'image'
}
function Protection.new(args, cfg, title)
local obj = {}
obj._cfg = cfg
obj.title = title or mw.title.getCurrentTitle()
-- Set action
if not args.action then
obj.action = 'edit'
elseif Protection.supportedActions[args.action] then
obj.action = args.action
else
error(string.format(
'invalid action: %s',
tostring(args.action)
), 3)
end
-- Set level
obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title)
if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then
-- Users need to be autoconfirmed to move pages anyway, so treat
-- semi-move-protected pages as unprotected.
obj.level = '*'
end
-- Set expiry
local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title)
if effectiveExpiry == 'infinity' then
obj.expiry = 'indef'
elseif effectiveExpiry ~= 'unknown' then
obj.expiry = validateDate(effectiveExpiry, 'expiry date')
end
-- Set reason
if args[1] then
obj.reason = mw.ustring.lower(args[1])
if obj.reason:find('|') then
error('reasons cannot contain the pipe character ("|")', 3)
end
end
-- Set protection date
if args.date then
obj.protectionDate = validateDate(args.date, 'protection date')
end
-- Set banner config
do
obj.bannerConfig = {}
local configTables = {}
if cfg.banners[obj.action] then
configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason]
end
if cfg.defaultBanners[obj.action] then
configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level]
configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default
end
configTables[#configTables + 1] = cfg.masterBanner
for i, field in ipairs(Protection.bannerConfigFields) do
for j, t in ipairs(configTables) do
if t[field] then
obj.bannerConfig[field] = t[field]
break
end
end
end
end
return setmetatable(obj, Protection)
end
function Protection:isUserScript()
-- Whether the page is a user JavaScript or CSS page.
local title = self.title
return title.namespace == 2 and (
title.contentModel == 'javascript' or title.contentModel == 'css'
)
end
function Protection:isProtected()
return self.level ~= '*'
end
function Protection:shouldShowLock()
-- Whether we should output a banner/padlock
return self:isProtected() and not self:isUserScript()
end
-- Whether this page needs a protection category.
Protection.shouldHaveProtectionCategory = Protection.shouldShowLock
function Protection:isTemporary()
return type(self.expiry) == 'number'
end
function Protection:makeProtectionCategory()
if not self:shouldHaveProtectionCategory() then
return ''
end
local cfg = self._cfg
local title = self.title
-- Get the expiry key fragment.
local expiryFragment
if self.expiry == 'indef' then
expiryFragment = self.expiry
elseif type(self.expiry) == 'number' then
expiryFragment = 'temp'
end
-- Get the namespace key fragment.
local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace]
if not namespaceFragment and title.namespace % 2 == 1 then
namespaceFragment = 'talk'
end
-- Define the order that key fragments are tested in. This is done with an
-- array of tables containing the value to be tested, along with its
-- position in the cfg.protectionCategories table.
local order = {
{val = expiryFragment, keypos = 1},
{val = namespaceFragment, keypos = 2},
{val = self.reason, keypos = 3},
{val = self.level, keypos = 4},
{val = self.action, keypos = 5}
}
--[[
-- The old protection templates used an ad-hoc protection category system,
-- with some templates prioritising namespaces in their categories, and
-- others prioritising the protection reason. To emulate this in this module
-- we use the config table cfg.reasonsWithNamespacePriority to set the
-- reasons for which namespaces have priority over protection reason.
-- If we are dealing with one of those reasons, move the namespace table to
-- the end of the order table, i.e. give it highest priority. If not, the
-- reason should have highest priority, so move that to the end of the table
-- instead.
--]]
table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3))
--[[
-- Define the attempt order. Inactive subtables (subtables with nil "value"
-- fields) are moved to the end, where they will later be given the key
-- "all". This is to cut down on the number of table lookups in
-- cfg.protectionCategories, which grows exponentially with the number of
-- non-nil keys. We keep track of the number of active subtables with the
-- noActive parameter.
--]]
local noActive, attemptOrder
do
local active, inactive = {}, {}
for i, t in ipairs(order) do
if t.val then
active[#active + 1] = t
else
inactive[#inactive + 1] = t
end
end
noActive = #active
attemptOrder = active
for i, t in ipairs(inactive) do
attemptOrder[#attemptOrder + 1] = t
end
end
--[[
-- Check increasingly generic key combinations until we find a match. If a
-- specific category exists for the combination of key fragments we are
-- given, that match will be found first. If not, we keep trying different
-- key fragment combinations until we match using the key
-- "all-all-all-all-all".
--
-- To generate the keys, we index the key subtables using a binary matrix
-- with indexes i and j. j is only calculated up to the number of active
-- subtables. For example, if there were three active subtables, the matrix
-- would look like this, with 0 corresponding to the key fragment "all", and
-- 1 corresponding to other key fragments.
--
-- j 1 2 3
-- i
-- 1 1 1 1
-- 2 0 1 1
-- 3 1 0 1
-- 4 0 0 1
-- 5 1 1 0
-- 6 0 1 0
-- 7 1 0 0
-- 8 0 0 0
--
-- Values of j higher than the number of active subtables are set
-- to the string "all".
--
-- A key for cfg.protectionCategories is constructed for each value of i.
-- The position of the value in the key is determined by the keypos field in
-- each subtable.
--]]
local cats = cfg.protectionCategories
for i = 1, 2^noActive do
local key = {}
for j, t in ipairs(attemptOrder) do
if j > noActive then
key[t.keypos] = 'all'
else
local quotient = i / 2 ^ (j - 1)
quotient = math.ceil(quotient)
if quotient % 2 == 1 then
key[t.keypos] = t.val
else
key[t.keypos] = 'all'
end
end
end
key = table.concat(key, '|')
local attempt = cats[key]
if attempt then
return makeCategoryLink(attempt, title.text)
end
end
return ''
end
function Protection:isIncorrect()
if not self:shouldHaveProtectionCategory() then
return true
end
if type(self.expiry) ~= 'number' then
return false
end
local expiry = os.date('*t', self.expiry)
-- Avoid checking today.day or os.time(), unless close. https://phabricator.wikimedia.org/T416616
local today = os.date('*t')
return (expiry.year < today.year)
or (expiry.year == today.year and expiry.month < today.month)
or (expiry.year == today.year and expiry.month == today.month and expiry.day < today.day)
or (expiry.year == today.year and expiry.month == today.month and expiry.day == today.day and self.expiry < os.time())
end
function Protection:isTemplateProtectedNonTemplate()
local action, namespace = self.action, self.title.namespace
return self.level == 'templateeditor'
and (
(action ~= 'edit' and action ~= 'move')
or (namespace ~= 10 and namespace ~= 828)
)
end
function Protection:makeCategoryLinks()
local msg = self._cfg.msg
local ret = {self:makeProtectionCategory()}
if self:isIncorrect() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-incorrect'],
self.title.text
)
end
if self:isTemplateProtectedNonTemplate() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-template'],
self.title.text
)
end
return table.concat(ret)
end
--------------------------------------------------------------------------------
-- Blurb class
--------------------------------------------------------------------------------
local Blurb = {}
Blurb.__index = Blurb
Blurb.bannerTextFields = {
text = true,
explanation = true,
tooltip = true,
alt = true,
link = true
}
function Blurb.new(protectionObj, args, cfg)
return setmetatable({
_cfg = cfg,
_protectionObj = protectionObj,
_args = args
}, Blurb)
end
-- Private methods --
function Blurb:_formatDate(num)
-- Formats a Unix timestamp into dd Month, YYYY format.
lang = lang or mw.language.getContentLanguage()
local success, date = pcall(
lang.formatDate,
lang,
self._cfg.msg['expiry-date-format'] or 'j F Y',
'@' .. tostring(num)
)
if success then
return date
end
end
function Blurb:_getExpandedMessage(msgKey)
return self:_substituteParameters(self._cfg.msg[msgKey])
end
function Blurb:_substituteParameters(msg)
if not self._params then
local parameterFuncs = {}
parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter
parameterFuncs.EDITREQUEST = self._makeEditRequestParameter
parameterFuncs.EXPIRY = self._makeExpiryParameter
parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter
parameterFuncs.IMAGELINK = self._makeImageLinkParameter
parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter
parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter
parameterFuncs.PAGETYPE = self._makePagetypeParameter
parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter
parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter
parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter
parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter
parameterFuncs.TALKPAGE = self._makeTalkPageParameter
parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter
parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter
parameterFuncs.VANDAL = self._makeVandalTemplateParameter
self._params = setmetatable({}, {
__index = function (t, k)
local param
if parameterFuncs[k] then
param = parameterFuncs[k](self)
end
param = param or ''
t[k] = param
return param
end
})
end
msg = msg:gsub('${(%u+)}', self._params)
return msg
end
function Blurb:_makeCurrentVersionParameter()
-- A link to the page history or the move log, depending on the kind of
-- protection.
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'move' then
-- We need the move log link.
return makeFullUrl(
'Special:Log',
{type = 'move', page = pagename},
self:_getExpandedMessage('current-version-move-display')
)
else
-- We need the history link.
return makeFullUrl(
pagename,
{action = 'history'},
self:_getExpandedMessage('current-version-edit-display')
)
end
end
function Blurb:_makeEditRequestParameter()
local mEditRequest = require('Module:Submit an edit request')
local action = self._protectionObj.action
local level = self._protectionObj.level
-- Get the edit request type.
local requestType
if action == 'edit' then
if level == 'autoconfirmed' then
requestType = 'semi'
elseif level == 'extendedconfirmed' then
requestType = 'extended'
elseif level == 'templateeditor' then
requestType = 'template'
end
end
requestType = requestType or 'full'
-- Get the display value.
local display = self:_getExpandedMessage('edit-request-display')
return mEditRequest._link{type = requestType, display = display}
end
function Blurb:_makeExpiryParameter()
local expiry = self._protectionObj.expiry
if type(expiry) == 'number' then
return self:_formatDate(expiry)
else
return expiry
end
end
function Blurb:_makeExplanationBlurbParameter()
-- Cover special cases first.
if self._protectionObj.title.namespace == 8 then
-- MediaWiki namespace
return self:_getExpandedMessage('explanation-blurb-nounprotect')
end
-- Get explanation blurb table keys
local action = self._protectionObj.action
local level = self._protectionObj.level
local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject'
-- Find the message in the explanation blurb table and substitute any
-- parameters.
local explanations = self._cfg.explanationBlurbs
local msg
if explanations[action][level] and explanations[action][level][talkKey] then
msg = explanations[action][level][talkKey]
elseif explanations[action][level] and explanations[action][level].default then
msg = explanations[action][level].default
elseif explanations[action].default and explanations[action].default[talkKey] then
msg = explanations[action].default[talkKey]
elseif explanations[action].default and explanations[action].default.default then
msg = explanations[action].default.default
else
error(string.format(
'could not find explanation blurb for action "%s", level "%s" and talk key "%s"',
action,
level,
talkKey
), 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeImageLinkParameter()
local imageLinks = self._cfg.imageLinks
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if imageLinks[action][level] then
msg = imageLinks[action][level]
elseif imageLinks[action].default then
msg = imageLinks[action].default
else
msg = imageLinks.edit.default
end
return self:_substituteParameters(msg)
end
function Blurb:_makeIntroBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-blurb-expiry')
else
return self:_getExpandedMessage('intro-blurb-noexpiry')
end
end
function Blurb:_makeIntroFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-fragment-expiry')
else
return self:_getExpandedMessage('intro-fragment-noexpiry')
end
end
function Blurb:_makePagetypeParameter()
local pagetypes = self._cfg.pagetypes
return pagetypes[self._protectionObj.title.namespace]
or pagetypes.default
or error('no default pagetype defined', 8)
end
function Blurb:_makeProtectionBlurbParameter()
local protectionBlurbs = self._cfg.protectionBlurbs
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionBlurbs[action][level] then
msg = protectionBlurbs[action][level]
elseif protectionBlurbs[action].default then
msg = protectionBlurbs[action].default
elseif protectionBlurbs.edit.default then
msg = protectionBlurbs.edit.default
else
error('no protection blurb defined for protectionBlurbs.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionDateParameter()
local protectionDate = self._protectionObj.protectionDate
if type(protectionDate) == 'number' then
return self:_formatDate(protectionDate)
else
return protectionDate
end
end
function Blurb:_makeProtectionLevelParameter()
local protectionLevels = self._cfg.protectionLevels
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionLevels[action][level] then
msg = protectionLevels[action][level]
elseif protectionLevels[action].default then
msg = protectionLevels[action].default
elseif protectionLevels.edit.default then
msg = protectionLevels.edit.default
else
error('no protection level defined for protectionLevels.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionLogParameter()
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'autoreview' then
-- We need the pending changes log.
return makeFullUrl(
'Special:Log',
{type = 'stable', page = pagename},
self:_getExpandedMessage('pc-log-display')
)
else
-- We need the protection log.
return makeFullUrl(
'Special:Log',
{type = 'protect', page = pagename},
self:_getExpandedMessage('protection-log-display')
)
end
end
function Blurb:_makeTalkPageParameter()
return string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[self._protectionObj.title.namespace].talk.name,
self._protectionObj.title.text,
self._args.section or 'top',
self:_getExpandedMessage('talk-page-link-display')
)
end
function Blurb:_makeTooltipBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-blurb-expiry')
else
return self:_getExpandedMessage('tooltip-blurb-noexpiry')
end
end
function Blurb:_makeTooltipFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-fragment-expiry')
else
return self:_getExpandedMessage('tooltip-fragment-noexpiry')
end
end
function Blurb:_makeVandalTemplateParameter()
return mw.getCurrentFrame():expandTemplate{
title="vandal-m",
args={self._args.user or self._protectionObj.title.baseText}
}
end
-- Public methods --
function Blurb:makeBannerText(key)
-- Validate input.
if not key or not Blurb.bannerTextFields[key] then
error(string.format(
'"%s" is not a valid banner config field',
tostring(key)
), 2)
end
-- Generate the text.
local msg = self._protectionObj.bannerConfig[key]
if type(msg) == 'string' then
return self:_substituteParameters(msg)
elseif type(msg) == 'function' then
msg = msg(self._protectionObj, self._args)
if type(msg) ~= 'string' then
error(string.format(
'bad output from banner config function with key "%s"'
.. ' (expected string, got %s)',
tostring(key),
type(msg)
), 4)
end
return self:_substituteParameters(msg)
end
end
--------------------------------------------------------------------------------
-- BannerTemplate class
--------------------------------------------------------------------------------
local BannerTemplate = {}
BannerTemplate.__index = BannerTemplate
function BannerTemplate.new(protectionObj, cfg)
local obj = {}
obj._cfg = cfg
-- Set the image filename.
local imageFilename = protectionObj.bannerConfig.image
if imageFilename then
obj._imageFilename = imageFilename
else
-- If an image filename isn't specified explicitly in the banner config,
-- generate it from the protection status and the namespace.
local action = protectionObj.action
local level = protectionObj.level
local namespace = protectionObj.title.namespace
local reason = protectionObj.reason
-- Deal with special cases first.
if (
namespace == 10
or namespace == 828
or reason and obj._cfg.indefImageReasons[reason]
)
and action == 'edit'
and level == 'sysop'
and not protectionObj:isTemporary()
then
-- Fully protected modules and templates get the special red "indef"
-- padlock.
obj._imageFilename = obj._cfg.msg['image-filename-indef']
else
-- Deal with regular protection types.
local images = obj._cfg.images
if images[action] then
if images[action][level] then
obj._imageFilename = images[action][level]
elseif images[action].default then
obj._imageFilename = images[action].default
end
end
end
end
return setmetatable(obj, BannerTemplate)
end
function BannerTemplate:renderImage()
local filename = self._imageFilename
or self._cfg.msg['image-filename-default']
or 'Transparent.gif'
return makeFileLink{
file = filename,
size = (self.imageWidth or 20) .. 'px',
alt = self._imageAlt,
link = self._imageLink,
caption = self.imageCaption
}
end
--------------------------------------------------------------------------------
-- Banner class
--------------------------------------------------------------------------------
local Banner = setmetatable({}, BannerTemplate)
Banner.__index = Banner
function Banner.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 40
obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip.
obj._reasonText = blurbObj:makeBannerText('text')
obj._explanationText = blurbObj:makeBannerText('explanation')
obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing.
return setmetatable(obj, Banner)
end
function Banner:__tostring()
-- Renders the banner.
makeMessageBox = makeMessageBox or require('Module:Message box').main
local reasonText = self._reasonText or error('no reason text set', 2)
local explanationText = self._explanationText
local mbargs = {
page = self._page,
type = 'protection',
image = self:renderImage(),
text = string.format(
"'''%s'''%s",
reasonText,
explanationText and '<br />' .. explanationText or ''
)
}
return makeMessageBox('mbox', mbargs)
end
--------------------------------------------------------------------------------
-- Padlock class
--------------------------------------------------------------------------------
local Padlock = setmetatable({}, BannerTemplate)
Padlock.__index = Padlock
function Padlock.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 20
obj.imageCaption = blurbObj:makeBannerText('tooltip')
obj._imageAlt = blurbObj:makeBannerText('alt')
obj._imageLink = blurbObj:makeBannerText('link')
obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action]
or cfg.padlockIndicatorNames.default
or 'pp-default'
return setmetatable(obj, Padlock)
end
function Padlock:__tostring()
local frame = mw.getCurrentFrame()
-- The nowiki tag helps prevent whitespace at the top of articles.
return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{
name = 'indicator',
args = {name = self._indicatorName},
content = self:renderImage()
}
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- This is used for testing purposes.
return {
Protection = Protection,
Blurb = Blurb,
BannerTemplate = BannerTemplate,
Banner = Banner,
Padlock = Padlock,
}
end
function p._main(args, cfg, title)
args = args or {}
cfg = cfg or require(CONFIG_MODULE)
local protectionObj = Protection.new(args, cfg, title)
local ret = {}
-- If a page's edit protection is equally or more restrictive than its
-- protection from some other action, then don't bother displaying anything
-- for the other action (except categories).
if not yesno(args.catonly) and (protectionObj.action == 'edit' or
args.demolevel or
not getReachableNodes(
cfg.hierarchy,
protectionObj.level
)[effectiveProtectionLevel('edit', protectionObj.title)])
then
-- Initialise the blurb object
local blurbObj = Blurb.new(protectionObj, args, cfg)
-- Render the banner
if protectionObj:shouldShowLock() then
ret[#ret + 1] = tostring(
(yesno(args.small) and Padlock or Banner)
.new(protectionObj, blurbObj, cfg)
)
end
end
-- Render the categories
if yesno(args.category) ~= false then
ret[#ret + 1] = protectionObj:makeCategoryLinks()
end
-- For arbitration enforcement, flagging [[WP:PIA]] pages to enable [[Special:AbuseFilter/1339]] to flag edits to them
if protectionObj.level == "extendedconfirmed" then
if require("Module:TableTools").inArray(protectionObj.title.talkPageTitle.categories, "Wikipedia pages subject to the extended confirmed restriction related to the Arab-Israeli conflict") then
ret[#ret + 1] = "<p class='PIA-flag' style='display:none; visibility:hidden;' title='This page is subject to the extended confirmed restriction related to the Arab-Israeli conflict.'></p>"
end
end
return table.concat(ret)
end
function p.main(frame, cfg)
cfg = cfg or require(CONFIG_MODULE)
-- Find default args, if any.
local parent = frame.getParent and frame:getParent()
local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')]
-- Find user args, and use the parent frame if we are being called from a
-- wrapper template.
getArgs = getArgs or require('Module:Arguments').getArgs
local userArgs = getArgs(frame, {
parentOnly = defaultArgs,
frameOnly = not defaultArgs
})
-- Build the args table. User-specified args overwrite default args.
local args = {}
for k, v in pairs(defaultArgs or {}) do
args[k] = v
end
for k, v in pairs(userArgs) do
args[k] = v
end
return p._main(args, cfg)
end
return p
p8ryzquso3eyufqyguwh2oyqz5eu1l6
153391
153390
2026-10-06T18:16:07Z
511KeV
8268
1 revision imported from [[:en:Module:Protected_page]]: Needed locally
153390
Scribunto
text/plain
-- This module implements {{pp-meta}} and its daughter templates such as
-- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}.
-- Initialise necessary modules.
require('strict')
local makeFileLink = require('Module:File link')._main
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main
local yesno = require('Module:Yesno')
-- Lazily initialise modules and objects we don't always need.
local getArgs, makeMessageBox, lang
-- Set constants.
local CONFIG_MODULE = 'Module:Protected page/config'
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function makeCategoryLink(cat, sort)
if cat then
return string.format(
'[[%s:%s|%s]]',
mw.site.namespaces[14].name,
cat,
sort
)
end
end
-- Validation function for the expiry and the protection date
local function validateDate(dateString, dateType)
if not lang then
lang = mw.language.getContentLanguage()
end
local success, result = pcall(lang.formatDate, lang, 'U', dateString)
if success then
result = tonumber(result)
if result then
return result
end
end
error(string.format(
'invalid %s: %s',
dateType,
tostring(dateString)
), 4)
end
local function makeFullUrl(page, query, display)
return string.format(
'[%s %s]',
tostring(mw.uri.fullUrl(page, query)),
display
)
end
-- Given a directed graph formatted as node -> table of direct successors,
-- get a table of all nodes reachable from a given node (though always
-- including the given node).
local function getReachableNodes(graph, start)
local toWalk, retval = {[start] = true}, {}
while true do
-- Can't use pairs() since we're adding and removing things as we're iterating
local k = next(toWalk) -- This always gets the "first" key
if k == nil then
return retval
end
toWalk[k] = nil
retval[k] = true
for _,v in ipairs(graph[k]) do
if not retval[v] then
toWalk[v] = true
end
end
end
end
--------------------------------------------------------------------------------
-- Protection class
--------------------------------------------------------------------------------
local Protection = {}
Protection.__index = Protection
Protection.supportedActions = {
edit = true,
move = true,
autoreview = true,
upload = true
}
Protection.bannerConfigFields = {
'text',
'explanation',
'tooltip',
'alt',
'link',
'image'
}
function Protection.new(args, cfg, title)
local obj = {}
obj._cfg = cfg
obj.title = title or mw.title.getCurrentTitle()
-- Set action
if not args.action then
obj.action = 'edit'
elseif Protection.supportedActions[args.action] then
obj.action = args.action
else
error(string.format(
'invalid action: %s',
tostring(args.action)
), 3)
end
-- Set level
obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title)
if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then
-- Users need to be autoconfirmed to move pages anyway, so treat
-- semi-move-protected pages as unprotected.
obj.level = '*'
end
-- Set expiry
local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title)
if effectiveExpiry == 'infinity' then
obj.expiry = 'indef'
elseif effectiveExpiry ~= 'unknown' then
obj.expiry = validateDate(effectiveExpiry, 'expiry date')
end
-- Set reason
if args[1] then
obj.reason = mw.ustring.lower(args[1])
if obj.reason:find('|') then
error('reasons cannot contain the pipe character ("|")', 3)
end
end
-- Set protection date
if args.date then
obj.protectionDate = validateDate(args.date, 'protection date')
end
-- Set banner config
do
obj.bannerConfig = {}
local configTables = {}
if cfg.banners[obj.action] then
configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason]
end
if cfg.defaultBanners[obj.action] then
configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level]
configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default
end
configTables[#configTables + 1] = cfg.masterBanner
for i, field in ipairs(Protection.bannerConfigFields) do
for j, t in ipairs(configTables) do
if t[field] then
obj.bannerConfig[field] = t[field]
break
end
end
end
end
return setmetatable(obj, Protection)
end
function Protection:isUserScript()
-- Whether the page is a user JavaScript or CSS page.
local title = self.title
return title.namespace == 2 and (
title.contentModel == 'javascript' or title.contentModel == 'css'
)
end
function Protection:isProtected()
return self.level ~= '*'
end
function Protection:shouldShowLock()
-- Whether we should output a banner/padlock
return self:isProtected() and not self:isUserScript()
end
-- Whether this page needs a protection category.
Protection.shouldHaveProtectionCategory = Protection.shouldShowLock
function Protection:isTemporary()
return type(self.expiry) == 'number'
end
function Protection:makeProtectionCategory()
if not self:shouldHaveProtectionCategory() then
return ''
end
local cfg = self._cfg
local title = self.title
-- Get the expiry key fragment.
local expiryFragment
if self.expiry == 'indef' then
expiryFragment = self.expiry
elseif type(self.expiry) == 'number' then
expiryFragment = 'temp'
end
-- Get the namespace key fragment.
local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace]
if not namespaceFragment and title.namespace % 2 == 1 then
namespaceFragment = 'talk'
end
-- Define the order that key fragments are tested in. This is done with an
-- array of tables containing the value to be tested, along with its
-- position in the cfg.protectionCategories table.
local order = {
{val = expiryFragment, keypos = 1},
{val = namespaceFragment, keypos = 2},
{val = self.reason, keypos = 3},
{val = self.level, keypos = 4},
{val = self.action, keypos = 5}
}
--[[
-- The old protection templates used an ad-hoc protection category system,
-- with some templates prioritising namespaces in their categories, and
-- others prioritising the protection reason. To emulate this in this module
-- we use the config table cfg.reasonsWithNamespacePriority to set the
-- reasons for which namespaces have priority over protection reason.
-- If we are dealing with one of those reasons, move the namespace table to
-- the end of the order table, i.e. give it highest priority. If not, the
-- reason should have highest priority, so move that to the end of the table
-- instead.
--]]
table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3))
--[[
-- Define the attempt order. Inactive subtables (subtables with nil "value"
-- fields) are moved to the end, where they will later be given the key
-- "all". This is to cut down on the number of table lookups in
-- cfg.protectionCategories, which grows exponentially with the number of
-- non-nil keys. We keep track of the number of active subtables with the
-- noActive parameter.
--]]
local noActive, attemptOrder
do
local active, inactive = {}, {}
for i, t in ipairs(order) do
if t.val then
active[#active + 1] = t
else
inactive[#inactive + 1] = t
end
end
noActive = #active
attemptOrder = active
for i, t in ipairs(inactive) do
attemptOrder[#attemptOrder + 1] = t
end
end
--[[
-- Check increasingly generic key combinations until we find a match. If a
-- specific category exists for the combination of key fragments we are
-- given, that match will be found first. If not, we keep trying different
-- key fragment combinations until we match using the key
-- "all-all-all-all-all".
--
-- To generate the keys, we index the key subtables using a binary matrix
-- with indexes i and j. j is only calculated up to the number of active
-- subtables. For example, if there were three active subtables, the matrix
-- would look like this, with 0 corresponding to the key fragment "all", and
-- 1 corresponding to other key fragments.
--
-- j 1 2 3
-- i
-- 1 1 1 1
-- 2 0 1 1
-- 3 1 0 1
-- 4 0 0 1
-- 5 1 1 0
-- 6 0 1 0
-- 7 1 0 0
-- 8 0 0 0
--
-- Values of j higher than the number of active subtables are set
-- to the string "all".
--
-- A key for cfg.protectionCategories is constructed for each value of i.
-- The position of the value in the key is determined by the keypos field in
-- each subtable.
--]]
local cats = cfg.protectionCategories
for i = 1, 2^noActive do
local key = {}
for j, t in ipairs(attemptOrder) do
if j > noActive then
key[t.keypos] = 'all'
else
local quotient = i / 2 ^ (j - 1)
quotient = math.ceil(quotient)
if quotient % 2 == 1 then
key[t.keypos] = t.val
else
key[t.keypos] = 'all'
end
end
end
key = table.concat(key, '|')
local attempt = cats[key]
if attempt then
return makeCategoryLink(attempt, title.text)
end
end
return ''
end
function Protection:isIncorrect()
if not self:shouldHaveProtectionCategory() then
return true
end
if type(self.expiry) ~= 'number' then
return false
end
local expiry = os.date('*t', self.expiry)
-- Avoid checking today.day or os.time(), unless close. https://phabricator.wikimedia.org/T416616
local today = os.date('*t')
return (expiry.year < today.year)
or (expiry.year == today.year and expiry.month < today.month)
or (expiry.year == today.year and expiry.month == today.month and expiry.day < today.day)
or (expiry.year == today.year and expiry.month == today.month and expiry.day == today.day and self.expiry < os.time())
end
function Protection:isTemplateProtectedNonTemplate()
local action, namespace = self.action, self.title.namespace
return self.level == 'templateeditor'
and (
(action ~= 'edit' and action ~= 'move')
or (namespace ~= 10 and namespace ~= 828)
)
end
function Protection:makeCategoryLinks()
local msg = self._cfg.msg
local ret = {self:makeProtectionCategory()}
if self:isIncorrect() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-incorrect'],
self.title.text
)
end
if self:isTemplateProtectedNonTemplate() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-template'],
self.title.text
)
end
return table.concat(ret)
end
--------------------------------------------------------------------------------
-- Blurb class
--------------------------------------------------------------------------------
local Blurb = {}
Blurb.__index = Blurb
Blurb.bannerTextFields = {
text = true,
explanation = true,
tooltip = true,
alt = true,
link = true
}
function Blurb.new(protectionObj, args, cfg)
return setmetatable({
_cfg = cfg,
_protectionObj = protectionObj,
_args = args
}, Blurb)
end
-- Private methods --
function Blurb:_formatDate(num)
-- Formats a Unix timestamp into dd Month, YYYY format.
lang = lang or mw.language.getContentLanguage()
local success, date = pcall(
lang.formatDate,
lang,
self._cfg.msg['expiry-date-format'] or 'j F Y',
'@' .. tostring(num)
)
if success then
return date
end
end
function Blurb:_getExpandedMessage(msgKey)
return self:_substituteParameters(self._cfg.msg[msgKey])
end
function Blurb:_substituteParameters(msg)
if not self._params then
local parameterFuncs = {}
parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter
parameterFuncs.EDITREQUEST = self._makeEditRequestParameter
parameterFuncs.EXPIRY = self._makeExpiryParameter
parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter
parameterFuncs.IMAGELINK = self._makeImageLinkParameter
parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter
parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter
parameterFuncs.PAGETYPE = self._makePagetypeParameter
parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter
parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter
parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter
parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter
parameterFuncs.TALKPAGE = self._makeTalkPageParameter
parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter
parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter
parameterFuncs.VANDAL = self._makeVandalTemplateParameter
self._params = setmetatable({}, {
__index = function (t, k)
local param
if parameterFuncs[k] then
param = parameterFuncs[k](self)
end
param = param or ''
t[k] = param
return param
end
})
end
msg = msg:gsub('${(%u+)}', self._params)
return msg
end
function Blurb:_makeCurrentVersionParameter()
-- A link to the page history or the move log, depending on the kind of
-- protection.
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'move' then
-- We need the move log link.
return makeFullUrl(
'Special:Log',
{type = 'move', page = pagename},
self:_getExpandedMessage('current-version-move-display')
)
else
-- We need the history link.
return makeFullUrl(
pagename,
{action = 'history'},
self:_getExpandedMessage('current-version-edit-display')
)
end
end
function Blurb:_makeEditRequestParameter()
local mEditRequest = require('Module:Submit an edit request')
local action = self._protectionObj.action
local level = self._protectionObj.level
-- Get the edit request type.
local requestType
if action == 'edit' then
if level == 'autoconfirmed' then
requestType = 'semi'
elseif level == 'extendedconfirmed' then
requestType = 'extended'
elseif level == 'templateeditor' then
requestType = 'template'
end
end
requestType = requestType or 'full'
-- Get the display value.
local display = self:_getExpandedMessage('edit-request-display')
return mEditRequest._link{type = requestType, display = display}
end
function Blurb:_makeExpiryParameter()
local expiry = self._protectionObj.expiry
if type(expiry) == 'number' then
return self:_formatDate(expiry)
else
return expiry
end
end
function Blurb:_makeExplanationBlurbParameter()
-- Cover special cases first.
if self._protectionObj.title.namespace == 8 then
-- MediaWiki namespace
return self:_getExpandedMessage('explanation-blurb-nounprotect')
end
-- Get explanation blurb table keys
local action = self._protectionObj.action
local level = self._protectionObj.level
local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject'
-- Find the message in the explanation blurb table and substitute any
-- parameters.
local explanations = self._cfg.explanationBlurbs
local msg
if explanations[action][level] and explanations[action][level][talkKey] then
msg = explanations[action][level][talkKey]
elseif explanations[action][level] and explanations[action][level].default then
msg = explanations[action][level].default
elseif explanations[action].default and explanations[action].default[talkKey] then
msg = explanations[action].default[talkKey]
elseif explanations[action].default and explanations[action].default.default then
msg = explanations[action].default.default
else
error(string.format(
'could not find explanation blurb for action "%s", level "%s" and talk key "%s"',
action,
level,
talkKey
), 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeImageLinkParameter()
local imageLinks = self._cfg.imageLinks
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if imageLinks[action][level] then
msg = imageLinks[action][level]
elseif imageLinks[action].default then
msg = imageLinks[action].default
else
msg = imageLinks.edit.default
end
return self:_substituteParameters(msg)
end
function Blurb:_makeIntroBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-blurb-expiry')
else
return self:_getExpandedMessage('intro-blurb-noexpiry')
end
end
function Blurb:_makeIntroFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-fragment-expiry')
else
return self:_getExpandedMessage('intro-fragment-noexpiry')
end
end
function Blurb:_makePagetypeParameter()
local pagetypes = self._cfg.pagetypes
return pagetypes[self._protectionObj.title.namespace]
or pagetypes.default
or error('no default pagetype defined', 8)
end
function Blurb:_makeProtectionBlurbParameter()
local protectionBlurbs = self._cfg.protectionBlurbs
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionBlurbs[action][level] then
msg = protectionBlurbs[action][level]
elseif protectionBlurbs[action].default then
msg = protectionBlurbs[action].default
elseif protectionBlurbs.edit.default then
msg = protectionBlurbs.edit.default
else
error('no protection blurb defined for protectionBlurbs.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionDateParameter()
local protectionDate = self._protectionObj.protectionDate
if type(protectionDate) == 'number' then
return self:_formatDate(protectionDate)
else
return protectionDate
end
end
function Blurb:_makeProtectionLevelParameter()
local protectionLevels = self._cfg.protectionLevels
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionLevels[action][level] then
msg = protectionLevels[action][level]
elseif protectionLevels[action].default then
msg = protectionLevels[action].default
elseif protectionLevels.edit.default then
msg = protectionLevels.edit.default
else
error('no protection level defined for protectionLevels.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionLogParameter()
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'autoreview' then
-- We need the pending changes log.
return makeFullUrl(
'Special:Log',
{type = 'stable', page = pagename},
self:_getExpandedMessage('pc-log-display')
)
else
-- We need the protection log.
return makeFullUrl(
'Special:Log',
{type = 'protect', page = pagename},
self:_getExpandedMessage('protection-log-display')
)
end
end
function Blurb:_makeTalkPageParameter()
return string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[self._protectionObj.title.namespace].talk.name,
self._protectionObj.title.text,
self._args.section or 'top',
self:_getExpandedMessage('talk-page-link-display')
)
end
function Blurb:_makeTooltipBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-blurb-expiry')
else
return self:_getExpandedMessage('tooltip-blurb-noexpiry')
end
end
function Blurb:_makeTooltipFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-fragment-expiry')
else
return self:_getExpandedMessage('tooltip-fragment-noexpiry')
end
end
function Blurb:_makeVandalTemplateParameter()
return mw.getCurrentFrame():expandTemplate{
title="vandal-m",
args={self._args.user or self._protectionObj.title.baseText}
}
end
-- Public methods --
function Blurb:makeBannerText(key)
-- Validate input.
if not key or not Blurb.bannerTextFields[key] then
error(string.format(
'"%s" is not a valid banner config field',
tostring(key)
), 2)
end
-- Generate the text.
local msg = self._protectionObj.bannerConfig[key]
if type(msg) == 'string' then
return self:_substituteParameters(msg)
elseif type(msg) == 'function' then
msg = msg(self._protectionObj, self._args)
if type(msg) ~= 'string' then
error(string.format(
'bad output from banner config function with key "%s"'
.. ' (expected string, got %s)',
tostring(key),
type(msg)
), 4)
end
return self:_substituteParameters(msg)
end
end
--------------------------------------------------------------------------------
-- BannerTemplate class
--------------------------------------------------------------------------------
local BannerTemplate = {}
BannerTemplate.__index = BannerTemplate
function BannerTemplate.new(protectionObj, cfg)
local obj = {}
obj._cfg = cfg
-- Set the image filename.
local imageFilename = protectionObj.bannerConfig.image
if imageFilename then
obj._imageFilename = imageFilename
else
-- If an image filename isn't specified explicitly in the banner config,
-- generate it from the protection status and the namespace.
local action = protectionObj.action
local level = protectionObj.level
local namespace = protectionObj.title.namespace
local reason = protectionObj.reason
-- Deal with special cases first.
if (
namespace == 10
or namespace == 828
or reason and obj._cfg.indefImageReasons[reason]
)
and action == 'edit'
and level == 'sysop'
and not protectionObj:isTemporary()
then
-- Fully protected modules and templates get the special red "indef"
-- padlock.
obj._imageFilename = obj._cfg.msg['image-filename-indef']
else
-- Deal with regular protection types.
local images = obj._cfg.images
if images[action] then
if images[action][level] then
obj._imageFilename = images[action][level]
elseif images[action].default then
obj._imageFilename = images[action].default
end
end
end
end
return setmetatable(obj, BannerTemplate)
end
function BannerTemplate:renderImage()
local filename = self._imageFilename
or self._cfg.msg['image-filename-default']
or 'Transparent.gif'
return makeFileLink{
file = filename,
size = (self.imageWidth or 20) .. 'px',
alt = self._imageAlt,
link = self._imageLink,
caption = self.imageCaption
}
end
--------------------------------------------------------------------------------
-- Banner class
--------------------------------------------------------------------------------
local Banner = setmetatable({}, BannerTemplate)
Banner.__index = Banner
function Banner.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 40
obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip.
obj._reasonText = blurbObj:makeBannerText('text')
obj._explanationText = blurbObj:makeBannerText('explanation')
obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing.
return setmetatable(obj, Banner)
end
function Banner:__tostring()
-- Renders the banner.
makeMessageBox = makeMessageBox or require('Module:Message box').main
local reasonText = self._reasonText or error('no reason text set', 2)
local explanationText = self._explanationText
local mbargs = {
page = self._page,
type = 'protection',
image = self:renderImage(),
text = string.format(
"'''%s'''%s",
reasonText,
explanationText and '<br />' .. explanationText or ''
)
}
return makeMessageBox('mbox', mbargs)
end
--------------------------------------------------------------------------------
-- Padlock class
--------------------------------------------------------------------------------
local Padlock = setmetatable({}, BannerTemplate)
Padlock.__index = Padlock
function Padlock.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 20
obj.imageCaption = blurbObj:makeBannerText('tooltip')
obj._imageAlt = blurbObj:makeBannerText('alt')
obj._imageLink = blurbObj:makeBannerText('link')
obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action]
or cfg.padlockIndicatorNames.default
or 'pp-default'
return setmetatable(obj, Padlock)
end
function Padlock:__tostring()
local frame = mw.getCurrentFrame()
-- The nowiki tag helps prevent whitespace at the top of articles.
return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{
name = 'indicator',
args = {name = self._indicatorName},
content = self:renderImage()
}
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- This is used for testing purposes.
return {
Protection = Protection,
Blurb = Blurb,
BannerTemplate = BannerTemplate,
Banner = Banner,
Padlock = Padlock,
}
end
function p._main(args, cfg, title)
args = args or {}
cfg = cfg or require(CONFIG_MODULE)
local protectionObj = Protection.new(args, cfg, title)
local ret = {}
-- If a page's edit protection is equally or more restrictive than its
-- protection from some other action, then don't bother displaying anything
-- for the other action (except categories).
if not yesno(args.catonly) and (protectionObj.action == 'edit' or
args.demolevel or
not getReachableNodes(
cfg.hierarchy,
protectionObj.level
)[effectiveProtectionLevel('edit', protectionObj.title)])
then
-- Initialise the blurb object
local blurbObj = Blurb.new(protectionObj, args, cfg)
-- Render the banner
if protectionObj:shouldShowLock() then
ret[#ret + 1] = tostring(
(yesno(args.small) and Padlock or Banner)
.new(protectionObj, blurbObj, cfg)
)
end
end
-- Render the categories
if yesno(args.category) ~= false then
ret[#ret + 1] = protectionObj:makeCategoryLinks()
end
-- For arbitration enforcement, flagging [[WP:PIA]] pages to enable [[Special:AbuseFilter/1339]] to flag edits to them
if protectionObj.level == "extendedconfirmed" then
if require("Module:TableTools").inArray(protectionObj.title.talkPageTitle.categories, "Wikipedia pages subject to the extended confirmed restriction related to the Arab-Israeli conflict") then
ret[#ret + 1] = "<p class='PIA-flag' style='display:none; visibility:hidden;' title='This page is subject to the extended confirmed restriction related to the Arab-Israeli conflict.'></p>"
end
end
return table.concat(ret)
end
function p.main(frame, cfg)
cfg = cfg or require(CONFIG_MODULE)
-- Find default args, if any.
local parent = frame.getParent and frame:getParent()
local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')]
-- Find user args, and use the parent frame if we are being called from a
-- wrapper template.
getArgs = getArgs or require('Module:Arguments').getArgs
local userArgs = getArgs(frame, {
parentOnly = defaultArgs,
frameOnly = not defaultArgs
})
-- Build the args table. User-specified args overwrite default args.
local args = {}
for k, v in pairs(defaultArgs or {}) do
args[k] = v
end
for k, v in pairs(userArgs) do
args[k] = v
end
return p._main(args, cfg)
end
return p
p8ryzquso3eyufqyguwh2oyqz5eu1l6
Module:Protected page/config
828
33079
153392
2026-08-30T17:22:32Z
en>Primefac
0
per prev, old wrappers moved, removing from this list
153392
Scribunto
text/plain
-- This module provides configuration data for [[Module:Protection banner]].
return {
--------------------------------------------------------------------------------
--
-- BANNER DATA
--
--------------------------------------------------------------------------------
--[[
-- Banner data consists of six fields:
-- * text - the main protection text that appears at the top of protection
-- banners.
-- * explanation - the text that appears below the main protection text, used
-- to explain the details of the protection.
-- * tooltip - the tooltip text you see when you move the mouse over a small
-- padlock icon.
-- * link - the page that the small padlock icon links to.
-- * alt - the alt text for the small padlock icon. This is also used as tooltip
-- text for the large protection banners.
-- * image - the padlock image used in both protection banners and small padlock
-- icons.
--
-- The module checks in three separate tables to find a value for each field.
-- First it checks the banners table, which has values specific to the reason
-- for the page being protected. Then the module checks the defaultBanners
-- table, which has values specific to each protection level. Finally, the
-- module checks the masterBanner table, which holds data for protection
-- templates to use if no data has been found in the previous two tables.
--
-- The values in the banner data can take parameters. These are specified
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name
-- enclosed in curly braces).
--
-- Available parameters:
--
-- ${CURRENTVERSION} - a link to the page history or the move log, with the
-- display message "current-version-edit-display" or
-- "current-version-move-display".
--
-- ${EDITREQUEST} - a link to create an edit request for the current page.
--
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes
-- on the talk page; you may submit a request to ask an administrator to make
-- an edit if it is minor or supported by consensus."
--
-- ${IMAGELINK} - a link to set the image to, depending on the protection
-- action and protection level.
--
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry
-- is set. E.g. "Editing of this page by new or unregistered users is currently
-- disabled until dd Month YYYY."
--
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation
-- so that it can be used in run-on sentences.
--
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
-- Defined in the cfg.pagetypes table.
--
-- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g.
-- "Editing of this page by new or unregistered users is currently disabled"
--
-- ${PROTECTIONDATE} - the protection date, if it has been supplied to the
-- template.
--
-- ${PROTECTIONLEVEL} - the protection level, e.g. "fully protected" or
-- "semi-protected".
--
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,
-- depending on the protection action.
--
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links
-- straight to that talk page section.
--
-- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to
-- create a blurb like "This template is semi-protected", or "This article is
-- move-protected until DD Month YYYY".
--
-- ${VANDAL} - links for the specified username (or the root page name)
-- using Module:Vandal-m.
--
-- Functions
--
-- For advanced users, it is possible to use Lua functions instead of strings
-- in the banner config tables. Using functions gives flexibility that is not
-- possible just by using parameters. Functions take two arguments, the
-- protection object and the template arguments, and they must output a string.
--
-- For example:
--
-- text = function (protectionObj, args)
-- if protectionObj.level == 'autoconfirmed' then
-- return 'foo'
-- else
-- return 'bar'
-- end
-- end
--
-- Some protection object properties and methods that may be useful:
-- protectionObj.action - the protection action
-- protectionObj.level - the protection level
-- protectionObj.reason - the protection reason
-- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set
-- to indefinite, and the protection time in unix time if temporary.
-- protectionObj.protectionDate - the protection date in unix time, or nil if
-- unspecified.
-- protectionObj.bannerConfig - the banner config found by the module. Beware
-- of editing the config field used by the function, as it could create an
-- infinite loop.
-- protectionObj:isProtected - returns a boolean showing whether the page is
-- protected.
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is
-- temporary.
-- protectionObj:isIncorrect - returns a boolean showing whether the protection
-- template is incorrect.
--]]
-- The master banner data, used if no values have been found in banners or
-- defaultBanners.
masterBanner = {
text = '${INTROBLURB}',
explanation = '${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPBLURB}',
link = '${IMAGELINK}',
alt = 'Page ${PROTECTIONLEVEL}'
},
-- The default banner data. This holds banner data for different protection
-- levels.
-- *required* - this table needs edit, move, autoreview and upload subtables.
defaultBanners = {
edit = {},
move = {},
autoreview = {
default = {
alt = 'Page protected with pending changes',
tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users',
image = 'Pending-protection-shackle.svg'
}
},
upload = {}
},
-- The banner data. This holds banner data for different protection reasons.
-- In fact, the reasons specified in this table control which reasons are
-- valid inputs to the first positional parameter.
--
-- There is also a non-standard "description" field that can be used for items
-- in this table. This is a description of the protection reason for use in the
-- module documentation.
--
-- *required* - this table needs edit, move, autoreview and upload subtables.
banners = {
edit = {
blp = {
description = 'For pages protected to promote compliance with the'
.. ' [[Wikipedia:Biographies of living persons'
.. '|biographies of living persons]] policy',
text = '${INTROFRAGMENT} to promote compliance with'
.. ' [[Wikipedia:Biographies of living persons'
.. "|Wikipedia's policy on the biographies"
.. ' of living people]].',
tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on'
.. ' biographies of living persons',
},
deceased = {
description = 'For user pages of Wikipedia users who are deceased',
text = '${INTROFRAGMENT} to prevent vandalism of a deceased'
.. ' Wikipedian\'s user page.'
.. ' A family member who wishes to edit this user page can use this'
.. ' user\'s ${TALKPAGE} or submit a request to [[Wikipedia:VRT|the'
.. ' Volunteer Response Team]].',
tooltip = '${TOOLTIPFRAGMENT} because this Wikipedian is deceased'
},
dmca = {
description = 'For pages protected by the Wikimedia Foundation'
.. ' due to [[Digital Millennium Copyright Act]] takedown requests',
explanation = function (protectionObj, args)
local ret = 'Pursuant to a rights owner notice under the Digital'
.. ' Millennium Copyright Act (DMCA) regarding some content'
.. ' in this article, the Wikimedia Foundation acted under'
.. ' applicable law and took down and restricted the content'
.. ' in question.'
if args.notice then
ret = ret .. ' A copy of the received notice can be found here: '
.. args.notice .. '.'
end
ret = ret .. ' For more information, including websites discussing'
.. ' how to file a counter-notice, please see'
.. " [[Wikipedia:Office actions]] and the article's ${TALKPAGE}."
.. "'''Do not remove this template from the article until the"
.. " restrictions are withdrawn'''."
return ret
end,
image = 'Office-protection-shackle.svg',
link = 'Wikipedia:Protection policy#office',
},
dispute = {
description = 'For pages protected due to editing disputes',
text = function (protectionObj, args)
-- Find the value of "disputes".
local display = 'disputes'
local disputes
if args.section then
disputes = string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[protectionObj.title.namespace].talk.name,
protectionObj.title.text,
args.section,
display
)
else
disputes = display
end
-- Make the blurb, depending on the expiry.
local msg
if type(protectionObj.expiry) == 'number' then
msg = '${INTROFRAGMENT} or until editing %s have been resolved.'
else
msg = '${INTROFRAGMENT} until editing %s have been resolved.'
end
return string.format(msg, disputes)
end,
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPFRAGMENT} due to editing disputes',
},
ecp = {
description = 'For articles in topic areas authorized by'
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] or'
.. ' meets the criteria for community use',
alt = 'Extended-protected ${PAGETYPE}',
},
mainpage = {
description = 'For pages protected for being displayed on the [[Main Page]]',
text = 'This file is currently'
.. ' [[Wikipedia:This page is protected|protected]] from'
.. ' editing because it is currently or will soon be displayed'
.. ' on the [[Main Page]].',
explanation = 'Images on the Main Page are protected due to their high'
.. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.'
.. '<br /><span style="font-size:90%;">'
.. "'''Administrators:''' Once this image is definitely off the Main Page,"
.. ' please unprotect this file, or reduce to semi-protection,'
.. ' as appropriate.</span>',
},
office = {
description = 'For pages protected by the Wikimedia Foundation',
text = function (protectionObj, args)
local ret = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.'
if protectionObj.protectionDate then
ret = ret .. ' It has been protected since ${PROTECTIONDATE}.'
end
return ret
end,
explanation = "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not remove protection from this"
.. " page unless you are authorized by the Wikimedia Foundation to do"
.. " so.'''",
image = 'Office-protection-shackle.svg',
link = 'Wikipedia:Protection policy#office',
},
reset = {
description = 'For pages protected by the Wikimedia Foundation and'
.. ' "reset" to a bare-bones version',
text = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.protectionDate then
ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was'
else
ret = ret .. 'This ${PAGETYPE} has been'
end
ret = ret .. ' reduced to a'
.. ' simplified, "bare bones" version so that it may be completely'
.. ' rewritten to ensure it meets the policies of'
.. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].'
.. ' Standard Wikipedia policies will apply to its rewriting—which'
.. ' will eventually be open to all editors—and will be strictly'
.. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while'
.. ' it is being rebuilt.\n\n'
.. 'Any insertion of material directly from'
.. ' pre-protection revisions of the ${PAGETYPE} will be removed, as'
.. ' will any material added to the ${PAGETYPE} that is not properly'
.. ' sourced. The associated talk page(s) were also cleared on the'
.. " same date.\n\n"
.. "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not override"
.. " this action, and do not remove protection from this page,"
.. " unless you are authorized by the Wikimedia Foundation"
.. " to do so. No editor may remove this notice.'''"
return ret
end,
image = 'Office-protection-shackle.svg',
link = 'Wikipedia:Protection policy#office',
},
sock = {
description = 'For pages protected due to'
.. ' [[Wikipedia:Sock puppetry|sock puppetry]]',
text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of'
.. ' [[Wikipedia:Blocking policy|blocked]] or'
.. ' [[Wikipedia:Banning policy|banned users]]'
.. ' from editing it.',
tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from'
.. ' editing it',
},
template = {
description = 'For [[Wikipedia:High-risk templates|high-risk]]'
.. ' templates and Lua modules',
text = 'This is a permanently [[Wikipedia:Protection policy|protected]] ${PAGETYPE},'
.. ' as it is [[Wikipedia:High-risk templates|high-risk]].',
explanation = 'Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] or'
.. ' [[Wikipedia:Template editor|template editor]] to make an edit if'
.. ' it is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by'
.. ' [[Wikipedia:Consensus|consensus]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}'
.. ' to prevent vandalism',
alt = 'Permanently protected ${PAGETYPE}',
},
usertalk = {
description = 'For pages protected against disruptive edits by a'
.. ' particular user',
text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,'
.. ' such as abusing the'
.. ' {{[[Template:unblock|unblock]]}} template.',
explanation = 'If you cannot edit this user talk page and you need to'
.. ' make a change or leave a message, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for edits to a protected page'
.. '|request an edit]],'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]],'
.. ' [[Special:Userlogin|log in]],'
.. ' or [[Special:UserLogin/signup|create an account]].',
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism|vandalism]]',
text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.level == 'sysop' then
ret = ret .. "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. '
end
return ret .. '${EXPLANATIONBLURB}'
end,
tooltip = '${TOOLTIPFRAGMENT} due to vandalism',
}
},
move = {
dispute = {
description = 'For pages protected against page moves due to'
.. ' disputes over the page title',
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
image = 'Move-protection-shackle.svg'
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism#Page-move vandalism'
.. ' |page-move vandalism]]'
}
},
autoreview = {},
upload = {}
},
--------------------------------------------------------------------------------
--
-- GENERAL DATA TABLES
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Protection blurbs
--------------------------------------------------------------------------------
-- This table produces the protection blurbs available with the
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and
-- protection level, and is checked by the module in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionBlurbs = {
edit = {
default = 'This ${PAGETYPE} is currently [[Wikipedia:Protection policy#full|'
.. 'protected]] from editing',
templateeditor = 'This ${PAGETYPE} is currently [[Wikipedia:Protection policy#template'
.. '|protected]] from editing',
autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access'
.. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered'
.. ' users|unregistered]] users is currently [[Wikipedia:Protection'
.. ' policy#semi|disabled]]',
extendedconfirmed = 'This ${PAGETYPE} is currently under [[Wikipedia:Protection'
.. ' policy#extended|extended confirmed protection]]',
},
move = {
default = 'This ${PAGETYPE} is currently [[Wikipedia:Protection policy#Move'
.. ' protection|protected]] from [[Help:Moving a page|page moves]]'
},
autoreview = {
default = 'All edits made to this ${PAGETYPE} by'
.. ' [[Wikipedia:User access levels#New users|new]] or'
.. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]'
.. ' users are currently'
.. ' [[Wikipedia:Pending changes|subject to review]]'
},
upload = {
default = 'Uploading new versions of this ${PAGETYPE} is currently disabled'
}
},
--------------------------------------------------------------------------------
-- Explanation blurbs
--------------------------------------------------------------------------------
-- This table produces the explanation blurbs available with the
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,
-- protection level, and whether the page is a talk page or not. If the page is
-- a talk page it will have a talk key of "talk"; otherwise it will have a talk
-- key of "subject". The table is checked in the following order:
-- 1. page's protection action, page's protection level, page's talk key
-- 2. page's protection action, page's protection level, default talk key
-- 3. page's protection action, default protection level, page's talk key
-- 4. page's protection action, default protection level, default talk key
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
explanationBlurbs = {
edit = {
autoconfirmed = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
},
extendedconfirmed = {
default = 'Extended confirmed protection prevents edits from all unregistered editors'
.. ' and registered users with fewer than 30 days tenure and 500 edits.'
.. ' The [[Wikipedia:Protection policy#extended|policy on community use]]'
.. ' specifies that extended confirmed protection can be applied to combat'
.. ' disruption, if semi-protection has proven to be ineffective.'
.. ' Extended confirmed protection may also be applied to enforce'
.. ' [[Wikipedia:Arbitration Committee|arbitration sanctions]].'
.. ' Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask for uncontroversial changes supported by'
.. ' [[Wikipedia:Consensus|consensus]].'
},
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]]. You may also [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|request]] that this page be unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' You may [[Wikipedia:Requests for page'
.. ' protection#Current requests for edits to a protected page|request an'
.. ' edit]] to this page, or [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|ask]] for it to be unprotected.'
}
},
move = {
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves on the'
.. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves at'
.. ' [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.'
}
},
autoreview = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Edits to this ${PAGETYPE} by new and unregistered users'
.. ' will not be visible to readers until they are accepted by'
.. ' a reviewer. To avoid the need for your edits to be'
.. ' reviewed, you may'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].'
},
},
upload = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but new versions of the file'
.. ' cannot be uploaded until it is unprotected. You can'
.. ' request that a new version be uploaded by using a'
.. ' [[Wikipedia:Edit requests|protected edit request]], or you'
.. ' can [[Wikipedia:Requests for page protection|request]]'
.. ' that the file be unprotected.'
}
}
},
--------------------------------------------------------------------------------
-- Protection levels
--------------------------------------------------------------------------------
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which
-- produces a short label for different protection levels. It is sorted by
-- protection action and protection level, and is checked in the following
-- order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionLevels = {
edit = {
default = 'protected',
templateeditor = 'template-protected',
extendedconfirmed = 'extended-confirmed-protected',
autoconfirmed = 'semi-protected',
},
move = {
default = 'move-protected'
},
autoreview = {
},
upload = {
default = 'upload-protected'
}
},
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- This table lists different padlock images for each protection action and
-- protection level. It is used if an image is not specified in any of the
-- banner data tables, and if the page does not satisfy the conditions for using
-- the ['image-filename-indef'] image. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
images = {
edit = {
default = 'Full-protection-shackle.svg',
templateeditor = 'Template-protection-shackle.svg',
extendedconfirmed = 'Extended-protection-shackle.svg',
autoconfirmed = 'Semi-protection-shackle.svg'
},
move = {
default = 'Move-protection-shackle.svg',
},
autoreview = {
default = 'Pending-protection-shackle.svg'
},
upload = {
default = 'Upload-protection-shackle.svg'
}
},
-- Pages with a reason specified in this table will show the special "indef"
-- padlock, defined in the 'image-filename-indef' message, if no expiry is set.
indefImageReasons = {
template = true
},
--------------------------------------------------------------------------------
-- Image links
--------------------------------------------------------------------------------
-- This table provides the data for the ${IMAGELINK} parameter, which gets
-- the image link for small padlock icons based on the page's protection action
-- and protection level. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
imageLinks = {
edit = {
default = 'Wikipedia:Protection policy#full',
templateeditor = 'Wikipedia:Protection policy#template',
extendedconfirmed = 'Wikipedia:Protection policy#extended',
autoconfirmed = 'Wikipedia:Protection policy#semi'
},
move = {
default = 'Wikipedia:Protection policy#move'
},
autoreview = {
default = 'Wikipedia:Protection policy#pending'
},
upload = {
default = 'Wikipedia:Protection policy#upload'
}
},
--------------------------------------------------------------------------------
-- Padlock indicator names
--------------------------------------------------------------------------------
-- This table provides the "name" attribute for the <indicator> extension tag
-- with which small padlock icons are generated. All indicator tags on a page
-- are displayed in alphabetical order based on this attribute, and with
-- indicator tags with duplicate names, the last tag on the page wins.
-- The attribute is chosen based on the protection action; table keys must be a
-- protection action name or the string "default".
padlockIndicatorNames = {
autoreview = 'pp-autoreview',
default = 'pp-default'
},
--------------------------------------------------------------------------------
-- Protection categories
--------------------------------------------------------------------------------
--[[
-- The protection categories are stored in the protectionCategories table.
-- Keys to this table are made up of the following strings:
--
-- 1. the expiry date
-- 2. the namespace
-- 3. the protection reason (e.g. "dispute" or "vandalism")
-- 4. the protection level (e.g. "sysop" or "autoconfirmed")
-- 5. the action (e.g. "edit" or "move")
--
-- When the module looks up a category in the table, first it will will check to
-- see a key exists that corresponds to all five parameters. For example, a
-- user page semi-protected from vandalism for two weeks would have the key
-- "temp-user-vandalism-autoconfirmed-edit". If no match is found, the module
-- changes the first part of the key to "all" and checks the table again. It
-- keeps checking increasingly generic key combinations until it finds the
-- field, or until it reaches the key "all-all-all-all-all".
--
-- The module uses a binary matrix to determine the order in which to search.
-- This is best demonstrated by a table. In this table, the "0" values
-- represent "all", and the "1" values represent the original data (e.g.
-- "indef" or "file" or "vandalism").
--
-- expiry namespace reason level action
-- order
-- 1 1 1 1 1 1
-- 2 0 1 1 1 1
-- 3 1 0 1 1 1
-- 4 0 0 1 1 1
-- 5 1 1 0 1 1
-- 6 0 1 0 1 1
-- 7 1 0 0 1 1
-- 8 0 0 0 1 1
-- 9 1 1 1 0 1
-- 10 0 1 1 0 1
-- 11 1 0 1 0 1
-- 12 0 0 1 0 1
-- 13 1 1 0 0 1
-- 14 0 1 0 0 1
-- 15 1 0 0 0 1
-- 16 0 0 0 0 1
-- 17 1 1 1 1 0
-- 18 0 1 1 1 0
-- 19 1 0 1 1 0
-- 20 0 0 1 1 0
-- 21 1 1 0 1 0
-- 22 0 1 0 1 0
-- 23 1 0 0 1 0
-- 24 0 0 0 1 0
-- 25 1 1 1 0 0
-- 26 0 1 1 0 0
-- 27 1 0 1 0 0
-- 28 0 0 1 0 0
-- 29 1 1 0 0 0
-- 30 0 1 0 0 0
-- 31 1 0 0 0 0
-- 32 0 0 0 0 0
--
-- In this scheme the action has the highest priority, as it is the last
-- to change, and the expiry has the least priority, as it changes the most.
-- The priorities of the expiry, the protection level and the action are
-- fixed, but the priorities of the reason and the namespace can be swapped
-- through the use of the cfg.bannerDataNamespaceHasPriority table.
--]]
-- If the reason specified to the template is listed in this table,
-- namespace data will take priority over reason data in the protectionCategories
-- table.
reasonsWithNamespacePriority = {
vandalism = true,
},
-- The string to use as a namespace key for the protectionCategories table for each
-- namespace number.
categoryNamespaceKeys = {
[ 2] = 'user',
[ 3] = 'user',
[ 4] = 'project',
[ 6] = 'file',
[ 8] = 'mediawiki',
[ 10] = 'template',
[ 12] = 'project',
[ 14] = 'category',
[100] = 'portal',
[828] = 'module',
},
protectionCategories = {
['all|all|all|all|all'] = 'Wikipedia fully protected pages',
['all|all|office|all|all'] = 'Wikipedia Office-protected pages',
['all|all|reset|all|all'] = 'Wikipedia Office-protected pages',
['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages',
['all|all|mainpage|all|all'] = 'Wikipedia fully protected main page files',
['all|all|all|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|template|all|all|edit'] = 'Wikipedia fully protected templates',
['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages',
['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages',
['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people',
['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people',
['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute',
['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users',
['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism',
['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories',
['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files',
['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals',
['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages',
['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages',
['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates',
['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages',
['all|all|all|templateeditor|move'] = 'Wikipedia template-protected pages other than templates and modules',
['all|all|all|templateeditor|edit'] = 'Wikipedia template-protected pages other than templates and modules',
['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates',
['all|template|all|templateeditor|move'] = 'Wikipedia template-protected templates', -- move-protected templates
['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people',
['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people',
['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute',
['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users',
['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism',
['all|category|all|sysop|edit'] = 'Wikipedia fully protected categories',
['all|file|all|sysop|edit'] = 'Wikipedia fully protected files',
['all|project|all|sysop|edit'] = 'Wikipedia fully protected project pages',
['all|talk|all|sysop|edit'] = 'Wikipedia fully protected talk pages',
['all|template|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected templates',
['all|template|all|extendedconfirmed|move'] = 'Wikipedia extended-confirmed-protected templates',
['all|template|all|sysop|edit'] = 'Wikipedia fully protected templates',
['all|user|all|sysop|edit'] = 'Wikipedia fully protected user and user talk pages',
['all|module|all|all|edit'] = 'Wikipedia fully protected modules',
['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules',
['all|module|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected modules',
['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules',
['all|all|all|sysop|move'] = 'Wikipedia move-protected pages',
['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages',
['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute',
['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism',
['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals',
['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages',
['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages',
['all|template|all|sysop|move'] = 'Wikipedia move-protected templates',
['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages',
['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages',
['all|file|all|all|upload'] = 'Wikipedia upload-protected files',
},
--------------------------------------------------------------------------------
-- Expiry category config
--------------------------------------------------------------------------------
-- This table configures the expiry category behaviour for each protection
-- action.
-- * If set to true, setting that action will always categorise the page if
-- an expiry parameter is not set.
-- * If set to false, setting that action will never categorise the page.
-- * If set to nil, the module will categorise the page if:
-- 1) an expiry parameter is not set, and
-- 2) a reason is provided, and
-- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck
-- table.
expiryCheckActions = {
edit = nil,
move = false,
autoreview = true,
upload = false
},
reasonsWithoutExpiryCheck = {
blp = true,
template = true,
},
--------------------------------------------------------------------------------
-- Pagetypes
--------------------------------------------------------------------------------
-- This table produces the page types available with the ${PAGETYPE} parameter.
-- Keys are namespace numbers, or the string "default" for the default value.
pagetypes = {
[0] = 'article',
[6] = 'file',
[10] = 'template',
[14] = 'category',
[828] = 'module',
default = 'page'
},
--------------------------------------------------------------------------------
-- Strings marking indefinite protection
--------------------------------------------------------------------------------
-- This table contains values passed to the expiry parameter that mean the page
-- is protected indefinitely.
indefStrings = {
['indef'] = true,
['indefinite'] = true,
['indefinitely'] = true,
['infinite'] = true,
},
--------------------------------------------------------------------------------
-- Group hierarchy
--------------------------------------------------------------------------------
-- This table maps each group to all groups that have a superset of the original
-- group's page editing permissions.
hierarchy = {
sysop = {},
reviewer = {'sysop'},
filemover = {'sysop'},
templateeditor = {'sysop'},
extendedconfirmed = {'sysop'},
autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'},
user = {'autoconfirmed'},
['*'] = {'user'}
},
--------------------------------------------------------------------------------
-- Wrapper templates and their default arguments
--------------------------------------------------------------------------------
-- This table contains wrapper templates used with the module, and their
-- default arguments. Templates specified in this table should contain the
-- following invocation, and no other template content:
--
-- {{#invoke:Protection banner|main}}
--
-- If other content is desired, it can be added between
-- <noinclude>...</noinclude> tags.
--
-- When a user calls one of these wrapper templates, they will use the
-- default arguments automatically. However, users can override any of the
-- arguments.
wrappers = {
['Template:Protected page'] = {},
['Template:Extended confirmed–protected'] = {'ecp'},
['Template:Protected biography of a living person'] = {'blp'},
['Template:Protected due to a dispute'] = {'dispute'},
['Template:Move-protected'] = {action = 'move', catonly = 'yes'},
['Template:Move-protected due to a dispute'] = {'dispute', action = 'move', catonly = 'yes'},
['Template:Move-protected due to vandalism'] = {'vandalism', action = 'move', catonly = 'yes'},
['Template:Office-protected'] = {'office'},
['Template:Pending changes–protected'] = {action = 'autoreview', small = true},
['Template:Semi-protected indefinitely'] = {small = true},
['Template:Protected due to sockpuppetry'] = {'sock'},
['Template:Template-protected'] = {'template', small = true},
['Template:Upload-protected'] = {action = 'upload'},
['Template:Protected talk page of a blocked user'] = {'usertalk'},
['Template:Protected due to vandalism'] = {'vandalism'},
},
--------------------------------------------------------------------------------
--
-- MESSAGES
--
--------------------------------------------------------------------------------
msg = {
--------------------------------------------------------------------------------
-- Intro blurb and intro fragment
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${INTROBLURB} and
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use
-- intro-blurb-noexpiry or intro-fragment-noexpiry.
-- It is possible to use banner parameters in these messages.
['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.',
['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.',
['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},',
['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}',
--------------------------------------------------------------------------------
-- Tooltip blurb
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.
-- If the protection is temporary the tooltip-blurb-expiry message is used, and
-- if not the tooltip-blurb-noexpiry message is used.
-- It is possible to use banner parameters in these messages.
['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.',
['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.',
['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},',
['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}',
--------------------------------------------------------------------------------
-- Special explanation blurb
--------------------------------------------------------------------------------
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages
-- in the MediaWiki namespace.
-- It is possible to use banner parameters in this message.
['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]].',
--------------------------------------------------------------------------------
-- Protection log display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the protection log link
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.
-- It is possible to use banner parameters in these messages.
['protection-log-display'] = 'protection log',
['pc-log-display'] = 'pending changes log',
--------------------------------------------------------------------------------
-- Current version display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the page history link
-- or the move log link produced by the ${CURRENTVERSION} parameter.
-- It is possible to use banner parameters in these messages.
['current-version-move-display'] = 'current title',
['current-version-edit-display'] = 'current version',
--------------------------------------------------------------------------------
-- Talk page
--------------------------------------------------------------------------------
-- This message determines the display value of the talk page link produced
-- with the ${TALKPAGE} parameter.
-- It is possible to use banner parameters in this message.
['talk-page-link-display'] = 'talk page',
--------------------------------------------------------------------------------
-- Edit requests
--------------------------------------------------------------------------------
-- This message determines the display value of the edit request link produced
-- with the ${EDITREQUEST} parameter.
-- It is possible to use banner parameters in this message.
['edit-request-display'] = 'submit an edit request',
--------------------------------------------------------------------------------
-- Expiry date format
--------------------------------------------------------------------------------
-- This is the format for the blurb expiry date. It should be valid input for
-- the first parameter of the #time parser function.
['expiry-date-format'] = 'F j, Y "at" H:i e',
--------------------------------------------------------------------------------
-- Tracking categories
--------------------------------------------------------------------------------
-- These messages determine which tracking categories the module outputs.
['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates',
['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules',
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- These are images that are not defined by their protection action and protection level.
['image-filename-indef'] = 'Full-protection-shackle.svg',
['image-filename-default'] = 'Transparent.gif',
--------------------------------------------------------------------------------
-- End messages
--------------------------------------------------------------------------------
}
--------------------------------------------------------------------------------
-- End configuration
--------------------------------------------------------------------------------
}
pj6zo6l44p4bk4pwax9tlbkyf7cpx34
153393
153392
2026-10-06T18:16:07Z
511KeV
8268
1 revision imported from [[:en:Module:Protected_page/config]]: Needed locally
153392
Scribunto
text/plain
-- This module provides configuration data for [[Module:Protection banner]].
return {
--------------------------------------------------------------------------------
--
-- BANNER DATA
--
--------------------------------------------------------------------------------
--[[
-- Banner data consists of six fields:
-- * text - the main protection text that appears at the top of protection
-- banners.
-- * explanation - the text that appears below the main protection text, used
-- to explain the details of the protection.
-- * tooltip - the tooltip text you see when you move the mouse over a small
-- padlock icon.
-- * link - the page that the small padlock icon links to.
-- * alt - the alt text for the small padlock icon. This is also used as tooltip
-- text for the large protection banners.
-- * image - the padlock image used in both protection banners and small padlock
-- icons.
--
-- The module checks in three separate tables to find a value for each field.
-- First it checks the banners table, which has values specific to the reason
-- for the page being protected. Then the module checks the defaultBanners
-- table, which has values specific to each protection level. Finally, the
-- module checks the masterBanner table, which holds data for protection
-- templates to use if no data has been found in the previous two tables.
--
-- The values in the banner data can take parameters. These are specified
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name
-- enclosed in curly braces).
--
-- Available parameters:
--
-- ${CURRENTVERSION} - a link to the page history or the move log, with the
-- display message "current-version-edit-display" or
-- "current-version-move-display".
--
-- ${EDITREQUEST} - a link to create an edit request for the current page.
--
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes
-- on the talk page; you may submit a request to ask an administrator to make
-- an edit if it is minor or supported by consensus."
--
-- ${IMAGELINK} - a link to set the image to, depending on the protection
-- action and protection level.
--
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry
-- is set. E.g. "Editing of this page by new or unregistered users is currently
-- disabled until dd Month YYYY."
--
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation
-- so that it can be used in run-on sentences.
--
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
-- Defined in the cfg.pagetypes table.
--
-- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g.
-- "Editing of this page by new or unregistered users is currently disabled"
--
-- ${PROTECTIONDATE} - the protection date, if it has been supplied to the
-- template.
--
-- ${PROTECTIONLEVEL} - the protection level, e.g. "fully protected" or
-- "semi-protected".
--
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,
-- depending on the protection action.
--
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links
-- straight to that talk page section.
--
-- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to
-- create a blurb like "This template is semi-protected", or "This article is
-- move-protected until DD Month YYYY".
--
-- ${VANDAL} - links for the specified username (or the root page name)
-- using Module:Vandal-m.
--
-- Functions
--
-- For advanced users, it is possible to use Lua functions instead of strings
-- in the banner config tables. Using functions gives flexibility that is not
-- possible just by using parameters. Functions take two arguments, the
-- protection object and the template arguments, and they must output a string.
--
-- For example:
--
-- text = function (protectionObj, args)
-- if protectionObj.level == 'autoconfirmed' then
-- return 'foo'
-- else
-- return 'bar'
-- end
-- end
--
-- Some protection object properties and methods that may be useful:
-- protectionObj.action - the protection action
-- protectionObj.level - the protection level
-- protectionObj.reason - the protection reason
-- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set
-- to indefinite, and the protection time in unix time if temporary.
-- protectionObj.protectionDate - the protection date in unix time, or nil if
-- unspecified.
-- protectionObj.bannerConfig - the banner config found by the module. Beware
-- of editing the config field used by the function, as it could create an
-- infinite loop.
-- protectionObj:isProtected - returns a boolean showing whether the page is
-- protected.
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is
-- temporary.
-- protectionObj:isIncorrect - returns a boolean showing whether the protection
-- template is incorrect.
--]]
-- The master banner data, used if no values have been found in banners or
-- defaultBanners.
masterBanner = {
text = '${INTROBLURB}',
explanation = '${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPBLURB}',
link = '${IMAGELINK}',
alt = 'Page ${PROTECTIONLEVEL}'
},
-- The default banner data. This holds banner data for different protection
-- levels.
-- *required* - this table needs edit, move, autoreview and upload subtables.
defaultBanners = {
edit = {},
move = {},
autoreview = {
default = {
alt = 'Page protected with pending changes',
tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users',
image = 'Pending-protection-shackle.svg'
}
},
upload = {}
},
-- The banner data. This holds banner data for different protection reasons.
-- In fact, the reasons specified in this table control which reasons are
-- valid inputs to the first positional parameter.
--
-- There is also a non-standard "description" field that can be used for items
-- in this table. This is a description of the protection reason for use in the
-- module documentation.
--
-- *required* - this table needs edit, move, autoreview and upload subtables.
banners = {
edit = {
blp = {
description = 'For pages protected to promote compliance with the'
.. ' [[Wikipedia:Biographies of living persons'
.. '|biographies of living persons]] policy',
text = '${INTROFRAGMENT} to promote compliance with'
.. ' [[Wikipedia:Biographies of living persons'
.. "|Wikipedia's policy on the biographies"
.. ' of living people]].',
tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on'
.. ' biographies of living persons',
},
deceased = {
description = 'For user pages of Wikipedia users who are deceased',
text = '${INTROFRAGMENT} to prevent vandalism of a deceased'
.. ' Wikipedian\'s user page.'
.. ' A family member who wishes to edit this user page can use this'
.. ' user\'s ${TALKPAGE} or submit a request to [[Wikipedia:VRT|the'
.. ' Volunteer Response Team]].',
tooltip = '${TOOLTIPFRAGMENT} because this Wikipedian is deceased'
},
dmca = {
description = 'For pages protected by the Wikimedia Foundation'
.. ' due to [[Digital Millennium Copyright Act]] takedown requests',
explanation = function (protectionObj, args)
local ret = 'Pursuant to a rights owner notice under the Digital'
.. ' Millennium Copyright Act (DMCA) regarding some content'
.. ' in this article, the Wikimedia Foundation acted under'
.. ' applicable law and took down and restricted the content'
.. ' in question.'
if args.notice then
ret = ret .. ' A copy of the received notice can be found here: '
.. args.notice .. '.'
end
ret = ret .. ' For more information, including websites discussing'
.. ' how to file a counter-notice, please see'
.. " [[Wikipedia:Office actions]] and the article's ${TALKPAGE}."
.. "'''Do not remove this template from the article until the"
.. " restrictions are withdrawn'''."
return ret
end,
image = 'Office-protection-shackle.svg',
link = 'Wikipedia:Protection policy#office',
},
dispute = {
description = 'For pages protected due to editing disputes',
text = function (protectionObj, args)
-- Find the value of "disputes".
local display = 'disputes'
local disputes
if args.section then
disputes = string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[protectionObj.title.namespace].talk.name,
protectionObj.title.text,
args.section,
display
)
else
disputes = display
end
-- Make the blurb, depending on the expiry.
local msg
if type(protectionObj.expiry) == 'number' then
msg = '${INTROFRAGMENT} or until editing %s have been resolved.'
else
msg = '${INTROFRAGMENT} until editing %s have been resolved.'
end
return string.format(msg, disputes)
end,
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPFRAGMENT} due to editing disputes',
},
ecp = {
description = 'For articles in topic areas authorized by'
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] or'
.. ' meets the criteria for community use',
alt = 'Extended-protected ${PAGETYPE}',
},
mainpage = {
description = 'For pages protected for being displayed on the [[Main Page]]',
text = 'This file is currently'
.. ' [[Wikipedia:This page is protected|protected]] from'
.. ' editing because it is currently or will soon be displayed'
.. ' on the [[Main Page]].',
explanation = 'Images on the Main Page are protected due to their high'
.. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.'
.. '<br /><span style="font-size:90%;">'
.. "'''Administrators:''' Once this image is definitely off the Main Page,"
.. ' please unprotect this file, or reduce to semi-protection,'
.. ' as appropriate.</span>',
},
office = {
description = 'For pages protected by the Wikimedia Foundation',
text = function (protectionObj, args)
local ret = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.'
if protectionObj.protectionDate then
ret = ret .. ' It has been protected since ${PROTECTIONDATE}.'
end
return ret
end,
explanation = "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not remove protection from this"
.. " page unless you are authorized by the Wikimedia Foundation to do"
.. " so.'''",
image = 'Office-protection-shackle.svg',
link = 'Wikipedia:Protection policy#office',
},
reset = {
description = 'For pages protected by the Wikimedia Foundation and'
.. ' "reset" to a bare-bones version',
text = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.protectionDate then
ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was'
else
ret = ret .. 'This ${PAGETYPE} has been'
end
ret = ret .. ' reduced to a'
.. ' simplified, "bare bones" version so that it may be completely'
.. ' rewritten to ensure it meets the policies of'
.. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].'
.. ' Standard Wikipedia policies will apply to its rewriting—which'
.. ' will eventually be open to all editors—and will be strictly'
.. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while'
.. ' it is being rebuilt.\n\n'
.. 'Any insertion of material directly from'
.. ' pre-protection revisions of the ${PAGETYPE} will be removed, as'
.. ' will any material added to the ${PAGETYPE} that is not properly'
.. ' sourced. The associated talk page(s) were also cleared on the'
.. " same date.\n\n"
.. "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not override"
.. " this action, and do not remove protection from this page,"
.. " unless you are authorized by the Wikimedia Foundation"
.. " to do so. No editor may remove this notice.'''"
return ret
end,
image = 'Office-protection-shackle.svg',
link = 'Wikipedia:Protection policy#office',
},
sock = {
description = 'For pages protected due to'
.. ' [[Wikipedia:Sock puppetry|sock puppetry]]',
text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of'
.. ' [[Wikipedia:Blocking policy|blocked]] or'
.. ' [[Wikipedia:Banning policy|banned users]]'
.. ' from editing it.',
tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from'
.. ' editing it',
},
template = {
description = 'For [[Wikipedia:High-risk templates|high-risk]]'
.. ' templates and Lua modules',
text = 'This is a permanently [[Wikipedia:Protection policy|protected]] ${PAGETYPE},'
.. ' as it is [[Wikipedia:High-risk templates|high-risk]].',
explanation = 'Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] or'
.. ' [[Wikipedia:Template editor|template editor]] to make an edit if'
.. ' it is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by'
.. ' [[Wikipedia:Consensus|consensus]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}'
.. ' to prevent vandalism',
alt = 'Permanently protected ${PAGETYPE}',
},
usertalk = {
description = 'For pages protected against disruptive edits by a'
.. ' particular user',
text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,'
.. ' such as abusing the'
.. ' {{[[Template:unblock|unblock]]}} template.',
explanation = 'If you cannot edit this user talk page and you need to'
.. ' make a change or leave a message, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for edits to a protected page'
.. '|request an edit]],'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]],'
.. ' [[Special:Userlogin|log in]],'
.. ' or [[Special:UserLogin/signup|create an account]].',
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism|vandalism]]',
text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.level == 'sysop' then
ret = ret .. "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. '
end
return ret .. '${EXPLANATIONBLURB}'
end,
tooltip = '${TOOLTIPFRAGMENT} due to vandalism',
}
},
move = {
dispute = {
description = 'For pages protected against page moves due to'
.. ' disputes over the page title',
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
image = 'Move-protection-shackle.svg'
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism#Page-move vandalism'
.. ' |page-move vandalism]]'
}
},
autoreview = {},
upload = {}
},
--------------------------------------------------------------------------------
--
-- GENERAL DATA TABLES
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Protection blurbs
--------------------------------------------------------------------------------
-- This table produces the protection blurbs available with the
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and
-- protection level, and is checked by the module in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionBlurbs = {
edit = {
default = 'This ${PAGETYPE} is currently [[Wikipedia:Protection policy#full|'
.. 'protected]] from editing',
templateeditor = 'This ${PAGETYPE} is currently [[Wikipedia:Protection policy#template'
.. '|protected]] from editing',
autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access'
.. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered'
.. ' users|unregistered]] users is currently [[Wikipedia:Protection'
.. ' policy#semi|disabled]]',
extendedconfirmed = 'This ${PAGETYPE} is currently under [[Wikipedia:Protection'
.. ' policy#extended|extended confirmed protection]]',
},
move = {
default = 'This ${PAGETYPE} is currently [[Wikipedia:Protection policy#Move'
.. ' protection|protected]] from [[Help:Moving a page|page moves]]'
},
autoreview = {
default = 'All edits made to this ${PAGETYPE} by'
.. ' [[Wikipedia:User access levels#New users|new]] or'
.. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]'
.. ' users are currently'
.. ' [[Wikipedia:Pending changes|subject to review]]'
},
upload = {
default = 'Uploading new versions of this ${PAGETYPE} is currently disabled'
}
},
--------------------------------------------------------------------------------
-- Explanation blurbs
--------------------------------------------------------------------------------
-- This table produces the explanation blurbs available with the
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,
-- protection level, and whether the page is a talk page or not. If the page is
-- a talk page it will have a talk key of "talk"; otherwise it will have a talk
-- key of "subject". The table is checked in the following order:
-- 1. page's protection action, page's protection level, page's talk key
-- 2. page's protection action, page's protection level, default talk key
-- 3. page's protection action, default protection level, page's talk key
-- 4. page's protection action, default protection level, default talk key
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
explanationBlurbs = {
edit = {
autoconfirmed = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
},
extendedconfirmed = {
default = 'Extended confirmed protection prevents edits from all unregistered editors'
.. ' and registered users with fewer than 30 days tenure and 500 edits.'
.. ' The [[Wikipedia:Protection policy#extended|policy on community use]]'
.. ' specifies that extended confirmed protection can be applied to combat'
.. ' disruption, if semi-protection has proven to be ineffective.'
.. ' Extended confirmed protection may also be applied to enforce'
.. ' [[Wikipedia:Arbitration Committee|arbitration sanctions]].'
.. ' Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask for uncontroversial changes supported by'
.. ' [[Wikipedia:Consensus|consensus]].'
},
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]]. You may also [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|request]] that this page be unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' You may [[Wikipedia:Requests for page'
.. ' protection#Current requests for edits to a protected page|request an'
.. ' edit]] to this page, or [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|ask]] for it to be unprotected.'
}
},
move = {
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves on the'
.. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves at'
.. ' [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.'
}
},
autoreview = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Edits to this ${PAGETYPE} by new and unregistered users'
.. ' will not be visible to readers until they are accepted by'
.. ' a reviewer. To avoid the need for your edits to be'
.. ' reviewed, you may'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].'
},
},
upload = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but new versions of the file'
.. ' cannot be uploaded until it is unprotected. You can'
.. ' request that a new version be uploaded by using a'
.. ' [[Wikipedia:Edit requests|protected edit request]], or you'
.. ' can [[Wikipedia:Requests for page protection|request]]'
.. ' that the file be unprotected.'
}
}
},
--------------------------------------------------------------------------------
-- Protection levels
--------------------------------------------------------------------------------
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which
-- produces a short label for different protection levels. It is sorted by
-- protection action and protection level, and is checked in the following
-- order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionLevels = {
edit = {
default = 'protected',
templateeditor = 'template-protected',
extendedconfirmed = 'extended-confirmed-protected',
autoconfirmed = 'semi-protected',
},
move = {
default = 'move-protected'
},
autoreview = {
},
upload = {
default = 'upload-protected'
}
},
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- This table lists different padlock images for each protection action and
-- protection level. It is used if an image is not specified in any of the
-- banner data tables, and if the page does not satisfy the conditions for using
-- the ['image-filename-indef'] image. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
images = {
edit = {
default = 'Full-protection-shackle.svg',
templateeditor = 'Template-protection-shackle.svg',
extendedconfirmed = 'Extended-protection-shackle.svg',
autoconfirmed = 'Semi-protection-shackle.svg'
},
move = {
default = 'Move-protection-shackle.svg',
},
autoreview = {
default = 'Pending-protection-shackle.svg'
},
upload = {
default = 'Upload-protection-shackle.svg'
}
},
-- Pages with a reason specified in this table will show the special "indef"
-- padlock, defined in the 'image-filename-indef' message, if no expiry is set.
indefImageReasons = {
template = true
},
--------------------------------------------------------------------------------
-- Image links
--------------------------------------------------------------------------------
-- This table provides the data for the ${IMAGELINK} parameter, which gets
-- the image link for small padlock icons based on the page's protection action
-- and protection level. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
imageLinks = {
edit = {
default = 'Wikipedia:Protection policy#full',
templateeditor = 'Wikipedia:Protection policy#template',
extendedconfirmed = 'Wikipedia:Protection policy#extended',
autoconfirmed = 'Wikipedia:Protection policy#semi'
},
move = {
default = 'Wikipedia:Protection policy#move'
},
autoreview = {
default = 'Wikipedia:Protection policy#pending'
},
upload = {
default = 'Wikipedia:Protection policy#upload'
}
},
--------------------------------------------------------------------------------
-- Padlock indicator names
--------------------------------------------------------------------------------
-- This table provides the "name" attribute for the <indicator> extension tag
-- with which small padlock icons are generated. All indicator tags on a page
-- are displayed in alphabetical order based on this attribute, and with
-- indicator tags with duplicate names, the last tag on the page wins.
-- The attribute is chosen based on the protection action; table keys must be a
-- protection action name or the string "default".
padlockIndicatorNames = {
autoreview = 'pp-autoreview',
default = 'pp-default'
},
--------------------------------------------------------------------------------
-- Protection categories
--------------------------------------------------------------------------------
--[[
-- The protection categories are stored in the protectionCategories table.
-- Keys to this table are made up of the following strings:
--
-- 1. the expiry date
-- 2. the namespace
-- 3. the protection reason (e.g. "dispute" or "vandalism")
-- 4. the protection level (e.g. "sysop" or "autoconfirmed")
-- 5. the action (e.g. "edit" or "move")
--
-- When the module looks up a category in the table, first it will will check to
-- see a key exists that corresponds to all five parameters. For example, a
-- user page semi-protected from vandalism for two weeks would have the key
-- "temp-user-vandalism-autoconfirmed-edit". If no match is found, the module
-- changes the first part of the key to "all" and checks the table again. It
-- keeps checking increasingly generic key combinations until it finds the
-- field, or until it reaches the key "all-all-all-all-all".
--
-- The module uses a binary matrix to determine the order in which to search.
-- This is best demonstrated by a table. In this table, the "0" values
-- represent "all", and the "1" values represent the original data (e.g.
-- "indef" or "file" or "vandalism").
--
-- expiry namespace reason level action
-- order
-- 1 1 1 1 1 1
-- 2 0 1 1 1 1
-- 3 1 0 1 1 1
-- 4 0 0 1 1 1
-- 5 1 1 0 1 1
-- 6 0 1 0 1 1
-- 7 1 0 0 1 1
-- 8 0 0 0 1 1
-- 9 1 1 1 0 1
-- 10 0 1 1 0 1
-- 11 1 0 1 0 1
-- 12 0 0 1 0 1
-- 13 1 1 0 0 1
-- 14 0 1 0 0 1
-- 15 1 0 0 0 1
-- 16 0 0 0 0 1
-- 17 1 1 1 1 0
-- 18 0 1 1 1 0
-- 19 1 0 1 1 0
-- 20 0 0 1 1 0
-- 21 1 1 0 1 0
-- 22 0 1 0 1 0
-- 23 1 0 0 1 0
-- 24 0 0 0 1 0
-- 25 1 1 1 0 0
-- 26 0 1 1 0 0
-- 27 1 0 1 0 0
-- 28 0 0 1 0 0
-- 29 1 1 0 0 0
-- 30 0 1 0 0 0
-- 31 1 0 0 0 0
-- 32 0 0 0 0 0
--
-- In this scheme the action has the highest priority, as it is the last
-- to change, and the expiry has the least priority, as it changes the most.
-- The priorities of the expiry, the protection level and the action are
-- fixed, but the priorities of the reason and the namespace can be swapped
-- through the use of the cfg.bannerDataNamespaceHasPriority table.
--]]
-- If the reason specified to the template is listed in this table,
-- namespace data will take priority over reason data in the protectionCategories
-- table.
reasonsWithNamespacePriority = {
vandalism = true,
},
-- The string to use as a namespace key for the protectionCategories table for each
-- namespace number.
categoryNamespaceKeys = {
[ 2] = 'user',
[ 3] = 'user',
[ 4] = 'project',
[ 6] = 'file',
[ 8] = 'mediawiki',
[ 10] = 'template',
[ 12] = 'project',
[ 14] = 'category',
[100] = 'portal',
[828] = 'module',
},
protectionCategories = {
['all|all|all|all|all'] = 'Wikipedia fully protected pages',
['all|all|office|all|all'] = 'Wikipedia Office-protected pages',
['all|all|reset|all|all'] = 'Wikipedia Office-protected pages',
['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages',
['all|all|mainpage|all|all'] = 'Wikipedia fully protected main page files',
['all|all|all|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|template|all|all|edit'] = 'Wikipedia fully protected templates',
['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages',
['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages',
['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people',
['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people',
['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute',
['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users',
['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism',
['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories',
['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files',
['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals',
['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages',
['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages',
['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates',
['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages',
['all|all|all|templateeditor|move'] = 'Wikipedia template-protected pages other than templates and modules',
['all|all|all|templateeditor|edit'] = 'Wikipedia template-protected pages other than templates and modules',
['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates',
['all|template|all|templateeditor|move'] = 'Wikipedia template-protected templates', -- move-protected templates
['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people',
['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people',
['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute',
['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users',
['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism',
['all|category|all|sysop|edit'] = 'Wikipedia fully protected categories',
['all|file|all|sysop|edit'] = 'Wikipedia fully protected files',
['all|project|all|sysop|edit'] = 'Wikipedia fully protected project pages',
['all|talk|all|sysop|edit'] = 'Wikipedia fully protected talk pages',
['all|template|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected templates',
['all|template|all|extendedconfirmed|move'] = 'Wikipedia extended-confirmed-protected templates',
['all|template|all|sysop|edit'] = 'Wikipedia fully protected templates',
['all|user|all|sysop|edit'] = 'Wikipedia fully protected user and user talk pages',
['all|module|all|all|edit'] = 'Wikipedia fully protected modules',
['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules',
['all|module|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected modules',
['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules',
['all|all|all|sysop|move'] = 'Wikipedia move-protected pages',
['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages',
['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute',
['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism',
['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals',
['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages',
['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages',
['all|template|all|sysop|move'] = 'Wikipedia move-protected templates',
['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages',
['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages',
['all|file|all|all|upload'] = 'Wikipedia upload-protected files',
},
--------------------------------------------------------------------------------
-- Expiry category config
--------------------------------------------------------------------------------
-- This table configures the expiry category behaviour for each protection
-- action.
-- * If set to true, setting that action will always categorise the page if
-- an expiry parameter is not set.
-- * If set to false, setting that action will never categorise the page.
-- * If set to nil, the module will categorise the page if:
-- 1) an expiry parameter is not set, and
-- 2) a reason is provided, and
-- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck
-- table.
expiryCheckActions = {
edit = nil,
move = false,
autoreview = true,
upload = false
},
reasonsWithoutExpiryCheck = {
blp = true,
template = true,
},
--------------------------------------------------------------------------------
-- Pagetypes
--------------------------------------------------------------------------------
-- This table produces the page types available with the ${PAGETYPE} parameter.
-- Keys are namespace numbers, or the string "default" for the default value.
pagetypes = {
[0] = 'article',
[6] = 'file',
[10] = 'template',
[14] = 'category',
[828] = 'module',
default = 'page'
},
--------------------------------------------------------------------------------
-- Strings marking indefinite protection
--------------------------------------------------------------------------------
-- This table contains values passed to the expiry parameter that mean the page
-- is protected indefinitely.
indefStrings = {
['indef'] = true,
['indefinite'] = true,
['indefinitely'] = true,
['infinite'] = true,
},
--------------------------------------------------------------------------------
-- Group hierarchy
--------------------------------------------------------------------------------
-- This table maps each group to all groups that have a superset of the original
-- group's page editing permissions.
hierarchy = {
sysop = {},
reviewer = {'sysop'},
filemover = {'sysop'},
templateeditor = {'sysop'},
extendedconfirmed = {'sysop'},
autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'},
user = {'autoconfirmed'},
['*'] = {'user'}
},
--------------------------------------------------------------------------------
-- Wrapper templates and their default arguments
--------------------------------------------------------------------------------
-- This table contains wrapper templates used with the module, and their
-- default arguments. Templates specified in this table should contain the
-- following invocation, and no other template content:
--
-- {{#invoke:Protection banner|main}}
--
-- If other content is desired, it can be added between
-- <noinclude>...</noinclude> tags.
--
-- When a user calls one of these wrapper templates, they will use the
-- default arguments automatically. However, users can override any of the
-- arguments.
wrappers = {
['Template:Protected page'] = {},
['Template:Extended confirmed–protected'] = {'ecp'},
['Template:Protected biography of a living person'] = {'blp'},
['Template:Protected due to a dispute'] = {'dispute'},
['Template:Move-protected'] = {action = 'move', catonly = 'yes'},
['Template:Move-protected due to a dispute'] = {'dispute', action = 'move', catonly = 'yes'},
['Template:Move-protected due to vandalism'] = {'vandalism', action = 'move', catonly = 'yes'},
['Template:Office-protected'] = {'office'},
['Template:Pending changes–protected'] = {action = 'autoreview', small = true},
['Template:Semi-protected indefinitely'] = {small = true},
['Template:Protected due to sockpuppetry'] = {'sock'},
['Template:Template-protected'] = {'template', small = true},
['Template:Upload-protected'] = {action = 'upload'},
['Template:Protected talk page of a blocked user'] = {'usertalk'},
['Template:Protected due to vandalism'] = {'vandalism'},
},
--------------------------------------------------------------------------------
--
-- MESSAGES
--
--------------------------------------------------------------------------------
msg = {
--------------------------------------------------------------------------------
-- Intro blurb and intro fragment
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${INTROBLURB} and
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use
-- intro-blurb-noexpiry or intro-fragment-noexpiry.
-- It is possible to use banner parameters in these messages.
['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.',
['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.',
['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},',
['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}',
--------------------------------------------------------------------------------
-- Tooltip blurb
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.
-- If the protection is temporary the tooltip-blurb-expiry message is used, and
-- if not the tooltip-blurb-noexpiry message is used.
-- It is possible to use banner parameters in these messages.
['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.',
['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.',
['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},',
['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}',
--------------------------------------------------------------------------------
-- Special explanation blurb
--------------------------------------------------------------------------------
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages
-- in the MediaWiki namespace.
-- It is possible to use banner parameters in this message.
['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]].',
--------------------------------------------------------------------------------
-- Protection log display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the protection log link
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.
-- It is possible to use banner parameters in these messages.
['protection-log-display'] = 'protection log',
['pc-log-display'] = 'pending changes log',
--------------------------------------------------------------------------------
-- Current version display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the page history link
-- or the move log link produced by the ${CURRENTVERSION} parameter.
-- It is possible to use banner parameters in these messages.
['current-version-move-display'] = 'current title',
['current-version-edit-display'] = 'current version',
--------------------------------------------------------------------------------
-- Talk page
--------------------------------------------------------------------------------
-- This message determines the display value of the talk page link produced
-- with the ${TALKPAGE} parameter.
-- It is possible to use banner parameters in this message.
['talk-page-link-display'] = 'talk page',
--------------------------------------------------------------------------------
-- Edit requests
--------------------------------------------------------------------------------
-- This message determines the display value of the edit request link produced
-- with the ${EDITREQUEST} parameter.
-- It is possible to use banner parameters in this message.
['edit-request-display'] = 'submit an edit request',
--------------------------------------------------------------------------------
-- Expiry date format
--------------------------------------------------------------------------------
-- This is the format for the blurb expiry date. It should be valid input for
-- the first parameter of the #time parser function.
['expiry-date-format'] = 'F j, Y "at" H:i e',
--------------------------------------------------------------------------------
-- Tracking categories
--------------------------------------------------------------------------------
-- These messages determine which tracking categories the module outputs.
['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates',
['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules',
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- These are images that are not defined by their protection action and protection level.
['image-filename-indef'] = 'Full-protection-shackle.svg',
['image-filename-default'] = 'Transparent.gif',
--------------------------------------------------------------------------------
-- End messages
--------------------------------------------------------------------------------
}
--------------------------------------------------------------------------------
-- End configuration
--------------------------------------------------------------------------------
}
pj6zo6l44p4bk4pwax9tlbkyf7cpx34
Gregorian calendar
0
33080
153395
2026-10-06T18:24:19Z
511KeV
8268
Redirect
153395
wikitext
text/x-wiki
#Redirect [[گریگورین کیلنڈر]]
1lfk2h2nyl9kmbimyxcfuvl37vblzc1
مُحمد اِقبال شیدایی
0
33081
153398
2026-10-06T18:44:56Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1377230732|Mohammad Iqbal Shedai]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
153398
wikitext
text/x-wiki
'''مُحمد اِقبال شیدایی''' ({{زَبان|پَنٛجٲبؠ زَبان|محمد اقبال شیدہائی}}) اوس اکھ برطانوی ہندوستٲنی تہٕ پتہٕ پٲکستٲنؠ کارکن ییٚمۍ ہندوستان خٲطرٕ آزٲدی تہٕ برطانوی نوآبادیاتی پالیسین ہٕنٛز مخالفت ہٕنٛز حمایت کٔر۔ تٔمۍ گزٲر پنٛنہِ زِنٛدگی ہنٛد زیٛادٕ تر حصہٕ ایشیٲیی تہٕ یوٗرَپی ملکن منٛز پانہٕ جلاے وطن گژھنس منٛز۔
3w0uoej0v4k0z4qsahez1w1cpmg58ky
153399
153398
2026-10-06T18:46:18Z
آیات محراج
11062
/* */
153399
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}}
'''مُحمد اِقبال شیدایی''' ({{زَبان|پَنٛجٲبؠ زَبان|محمد اقبال شیدہائی}}) اوس اکھ برطانوی ہندوستٲنی تہٕ پتہٕ پٲکستٲنؠ کارکن ییٚمۍ ہندوستان خٲطرٕ آزٲدی تہٕ برطانوی نوآبادیاتی پالیسین ہٕنٛز مخالفت ہٕنٛز حمایت کٔر۔ تٔمۍ گزٲر پنٛنہِ زِنٛدگی ہنٛد زیٛادٕ تر حصہٕ ایشیٲیی تہٕ یوٗرَپی ملکن منٛز پانہٕ جلاے وطن گژھنس منٛز۔<ref>Iftikhar Haider Malik, ''US-South Asia relations, 1784-1940: a historical perspective'', Area Study Centre for Africa, North & South America, Quaid-i-Azam University, 1988, p. 229</ref>
myn5zmfa9lh1cq1fcttq2p0in2hvb00
153400
153399
2026-10-06T18:47:34Z
آیات محراج
11062
+[[زٲژ:1888 پٲدٲیِش]]; +[[زٲژ:1974 وَفات]]; +[[زٲژ:پٲکِستٲنؠ لوٗکھ]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
153400
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}}
'''مُحمد اِقبال شیدایی''' ({{زَبان|پَنٛجٲبؠ زَبان|محمد اقبال شیدہائی}}) اوس اکھ برطانوی ہندوستٲنی تہٕ پتہٕ پٲکستٲنؠ کارکن ییٚمۍ ہندوستان خٲطرٕ آزٲدی تہٕ برطانوی نوآبادیاتی پالیسین ہٕنٛز مخالفت ہٕنٛز حمایت کٔر۔ تٔمۍ گزٲر پنٛنہِ زِنٛدگی ہنٛد زیٛادٕ تر حصہٕ ایشیٲیی تہٕ یوٗرَپی ملکن منٛز پانہٕ جلاے وطن گژھنس منٛز۔<ref>Iftikhar Haider Malik, ''US-South Asia relations, 1784-1940: a historical perspective'', Area Study Centre for Africa, North & South America, Quaid-i-Azam University, 1988, p. 229</ref>
==حَوالہٕ==
[[زٲژ:1888 پٲدٲیِش]]
[[زٲژ:1974 وَفات]]
[[زٲژ:پٲکِستٲنؠ لوٗکھ]]
mxp00rqghjuyav2t6gv10hkc7dk3x3t
153401
153400
2026-10-06T18:48:18Z
آیات محراج
11062
/* */
153401
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=No|noicon=Yes}}
'''مُحمد اِقبال شیدایی''' ({{زَبان|پَنٛجٲبؠ زَبان|محمد اقبال شیدائی}}) اوس اکھ برطانوی ہندوستٲنی تہٕ پتہٕ پٲکستٲنؠ کارکن ییٚمۍ ہندوستان خٲطرٕ آزٲدی تہٕ برطانوی نوآبادیاتی پالیسین ہٕنٛز مخالفت ہٕنٛز حمایت کٔر۔ تٔمۍ گزٲر پنٛنہِ زِنٛدگی ہنٛد زیٛادٕ تر حصہٕ ایشیٲیی تہٕ یوٗرَپی ملکن منٛز پانہٕ جلاے وطن گژھنس منٛز۔<ref>Iftikhar Haider Malik, ''US-South Asia relations, 1784-1940: a historical perspective'', Area Study Centre for Africa, North & South America, Quaid-i-Azam University, 1988, p. 229</ref>
==حَوالہٕ==
[[زٲژ:1888 پٲدٲیِش]]
[[زٲژ:1974 وَفات]]
[[زٲژ:پٲکِستٲنؠ لوٗکھ]]
muig8nc97c9272hvnbd19wfok1vk1vo
جولس چیریٹ
0
33082
153402
2026-10-06T19:09:43Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1364956228|Jules Chéret]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
153402
wikitext
text/x-wiki
جولس چیریٹ (31 مئی 1836 - 23 ستمبر 1932) اوس اکھ فرانسیسی مصور تہٕ لیتھوگرافر یُس بیلے ایپوک پوسٹر آرٹُک ماسٹر بنیوو۔ تس چُھ جدید پوسٹرُک مول وننہٕ یوان۔
3kc5ot0p1dg4da3340vz61byqhc17dx
153440
153402
2026-10-07T06:38:21Z
511KeV
8268
/* */ Databox
153440
wikitext
text/x-wiki
{{Databox}}
جولس چیریٹ (31 مئی 1836 - 23 ستمبر 1932) اوس اکھ فرانسیسی مصور تہٕ لیتھوگرافر یُس بیلے ایپوک پوسٹر آرٹُک ماسٹر بنیوو۔ تس چُھ جدید پوسٹرُک مول وننہٕ یوان۔
04pgcdgy03mjjpkx86din2ei489jcbg
153441
153440
2026-10-07T06:44:30Z
آیات محراج
11062
153441
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=Yes}}
جولس چیریٹ (31 مئی 1836 - 23 ستمبر 1932) اوس اکھ فرانسیسی مصور تہٕ لیتھوگرافر یُس بیلے ایپوک پوسٹر آرٹُک ماسٹر بنیوو۔ تس چُھ جدید پوسٹرُک مول وننہٕ یوان۔<ref>{{Cite book|last=Ray|first=Gordon N|title=The art of the French illustrated book, 1700 to 1914|publisher=New York, N.Y. : Pierpont Morgan Library; Ithaca, N.Y. : Cornell University Press|year=1982|pages=467-468|language=English}}</ref>
q43x15k6qptz9xmbyewf3wd7udrdaku
153442
153441
2026-10-07T06:45:27Z
آیات محراج
11062
+[[زٲژ:1836 پٲدٲیِش]]; +[[زٲژ:1932 وَفات]]; +[[زٲژ:فرٛانٛسی لوٗکھ]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
153442
wikitext
text/x-wiki
{{Infobox person/Wikidata|fetchwikidata=ALL|onlysourced=Yes}}
جولس چیریٹ (31 مئی 1836 - 23 ستمبر 1932) اوس اکھ فرانسیسی مصور تہٕ لیتھوگرافر یُس بیلے ایپوک پوسٹر آرٹُک ماسٹر بنیوو۔ تس چُھ جدید پوسٹرُک مول وننہٕ یوان۔<ref>{{Cite book|last=Ray|first=Gordon N|title=The art of the French illustrated book, 1700 to 1914|publisher=New York, N.Y. : Pierpont Morgan Library; Ithaca, N.Y. : Cornell University Press|year=1982|pages=467-468|language=English}}</ref>
== حَوالہٕ ==
[[زٲژ:1836 پٲدٲیِش]]
[[زٲژ:1932 وَفات]]
[[زٲژ:فرٛانٛسی لوٗکھ]]
sxkjynd2o5x1hctn0149gm1824miu1f
جوب وادی ریلوے
0
33083
153403
2026-10-06T19:18:30Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1350190371|Zhob Valley Railway]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
153403
wikitext
text/x-wiki
جوب ویلی ریلوے ({{زَبان|اُردوٗ|ژوب وادی ریلوے}}) ٲس پاکستانس منٛز واریاہو برانچ لائنو منٛز اکھ، یۄس پاکستان ریلوے کہ ذٔریع چلاونہٕ تہٕ رٲچھ راوٹھ ٲس۔ یہ لایِن ٲس بوستان جنکشنس پیٹھ شروع گژھان تہٕ [[جوب|جوبس]] پیٹھ ختم گٔیہٕ۔ امہِ ریلوے لائنُک کُل زیچھر چھُ 298 کلومیٹر (185 میل) یتھ منٛز 14 ریلوے سٹیشن چھِ۔ مقابلہٕ پتہٕ بنیوو 762 ملی میٹر (2 فٹ 6 انچ) ریلوے خطُک ساروٕے کھۄتہٕ زیوٗٹھ نیرو گیج سسٹم۔
0s0d4fvx5tnhe9w8gl8uxajtq0ajxtg
153404
153403
2026-10-06T19:18:59Z
آیات محراج
11062
/* */
153404
wikitext
text/x-wiki
{{مولوٗماتھ}}
'''جوب ویلی ریلوے''' ({{زَبان|اُردوٗ|ژوب وادی ریلوے}}) ٲس پاکستانس منٛز واریاہو برانچ لائنو منٛز اکھ، یۄس پاکستان ریلوے کہ ذٔریع چلاونہٕ تہٕ رٲچھ راوٹھ ٲس۔ یہ لایِن ٲس بوستان جنکشنس پیٹھ شروع گژھان تہٕ [[جوب|جوبس]] پیٹھ ختم گٔیہٕ۔ امہِ ریلوے لائنُک کُل زیچھر چھُ 298 کلومیٹر (185 میل) یتھ منٛز 14 ریلوے سٹیشن چھِ۔ مقابلہٕ پتہٕ بنیوو 762 ملی میٹر (2 فٹ 6 انچ) ریلوے خطُک ساروٕے کھۄتہٕ زیوٗٹھ نیرو گیج سسٹم۔
rrxq7il80fztoyg9rnu86px3qa6i49h
153443
153404
2026-10-07T06:46:32Z
آیات محراج
11062
/* */
153443
wikitext
text/x-wiki
{{مولوٗماتھ}}
'''جوب ویلی ریلوے''' ({{زَبان|اُردوٗ|ژوب وادی ریلوے}}) ٲس پاکستانس منٛز واریاہو برانچ لائنو منٛز اکھ، یۄس پاکستان ریلوے کہ ذٔریع چلاونہٕ تہٕ رٲچھ راوٹھ ٲس۔ یہ لایِن ٲس بوستان جنکشنس پیٹھ شروع گژھان تہٕ [[جوب|جوبس]] پیٹھ ختم گٔیہٕ۔<ref>{{cite web|title=Off-track railways|url=https://www.dawn.com/news/1204766|access-date=21 May 2017|publisher=Dawn}}</ref> امہِ ریلوے لائنُک کُل زیچھر چھُ 298 کلومیٹر (185 میل) یتھ منٛز 14 ریلوے سٹیشن چھِ۔ مقابلہٕ پتہٕ بنیوو 762 ملی میٹر (2 فٹ 6 انچ) ریلوے خطُک ساروٕے کھۄتہٕ زیوٗٹھ نیرو گیج سسٹم۔
== حَوالہٕ ==
372fr99sla614wnoil1e22wfpmik9qd
153444
153443
2026-10-07T06:47:00Z
آیات محراج
11062
مِلاوُن [[زٲژ:ریل سٔروِس]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
153444
wikitext
text/x-wiki
{{مولوٗماتھ}}
'''جوب ویلی ریلوے''' ({{زَبان|اُردوٗ|ژوب وادی ریلوے}}) ٲس پاکستانس منٛز واریاہو برانچ لائنو منٛز اکھ، یۄس پاکستان ریلوے کہ ذٔریع چلاونہٕ تہٕ رٲچھ راوٹھ ٲس۔ یہ لایِن ٲس بوستان جنکشنس پیٹھ شروع گژھان تہٕ [[جوب|جوبس]] پیٹھ ختم گٔیہٕ۔<ref>{{cite web|title=Off-track railways|url=https://www.dawn.com/news/1204766|access-date=21 May 2017|publisher=Dawn}}</ref> امہِ ریلوے لائنُک کُل زیچھر چھُ 298 کلومیٹر (185 میل) یتھ منٛز 14 ریلوے سٹیشن چھِ۔ مقابلہٕ پتہٕ بنیوو 762 ملی میٹر (2 فٹ 6 انچ) ریلوے خطُک ساروٕے کھۄتہٕ زیوٗٹھ نیرو گیج سسٹم۔
== حَوالہٕ ==
[[زٲژ:ریل سٔروِس]]
aq00auolklgfqqlndw6pxvgl6nuhnc5
جارکینٛت مٔشیٖد
0
33084
153445
2026-10-07T07:00:07Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1377324505|Jarkent Mosque]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
153445
wikitext
text/x-wiki
[[File:Zharkent_Mosque_1.jpg|thumb|مٔشیٖد ہُنٛد بَر]]
'''جارکینٛت مٔشیٖد''' ({{زَبان|قازق زَبان|Жаркент мешіті}}) چھِ مَرکَزی مٔشیٖد [[جارکینٛت]]، [[قازقستان|قازقستانس]] مَنٛز.یِہ مسجد ٲس 1895 منٛز چینی معمار ہون پیکیٹ کس ڈیزائنس پیٹھ تارکین وطنن ہنٛد جمع کرنہٕ آمت فنڈز استعمال کرتھ تعٲمیر کرنہٕ آمٕژ۔ مسجد چھ 1982 پیٹھہٕ فن تعمیرچ یادگار تہِ جمہوری اہمیتک تٲریخک یادگار کس طورس پیٹھ ریاستی تحفظس منٛز۔
pbfrva0297kr7y0oqesampfmvu28jz4
153446
153445
2026-10-07T07:08:08Z
آیات محراج
11062
/* */
153446
wikitext
text/x-wiki
[[File:Zharkent_Mosque_1.jpg|thumb|مٔشیٖد ہُنٛد بَر]]
'''جارکینٛت مٔشیٖد''' ({{زَبان|قازق زَبان|Жаркент мешіті}}) چھِ مَرکَزی مٔشیٖد [[جارکینٛت]]، [[قازقستان|قازقستانس]] مَنٛز.یِہ مسجد ٲس 1895 منٛز چینی معمار ہون پیکیٹ کس ڈیزائنس پیٹھ تارکین وطنن ہنٛد جمع کرنہٕ آمت فنڈز استعمال کرتھ تعٲمیر کرنہٕ آمٕژ۔ مسجد چھ 1982 پیٹھہٕ فن تعمیرچ یادگار تہِ جمہوری اہمیتک تٲریخک یادگار کس طورس پیٹھ ریاستی تحفظس منٛز۔<ref>https://en.wikipedia.org/wiki/Jarkent_Mosque</ref>
pylm8ny0w25pclvj3a2406xlhzv2akr
153447
153446
2026-10-07T07:16:37Z
آیات محراج
11062
153447
wikitext
text/x-wiki
{{Infobox structure}}[[File:Zharkent_Mosque_1.jpg|thumb|مٔشیٖد ہُنٛد بَر]]
'''جارکینٛت مٔشیٖد''' ({{زَبان|قازق زَبان|Жаркент мешіті}}) چھِ مَرکَزی مٔشیٖد [[جارکینٛت]]، [[قازقستان|قازقستانس]] مَنٛز.یِہ مسجد ٲس 1895 منٛز چینی معمار ہون پیکیٹ کس ڈیزائنس پیٹھ تارکین وطنن ہنٛد جمع کرنہٕ آمت فنڈز استعمال کرتھ تعٲمیر کرنہٕ آمٕژ۔ مسجد چھ 1982 پیٹھہٕ فن تعمیرچ یادگار تہِ جمہوری اہمیتک تٲریخک یادگار کس طورس پیٹھ ریاستی تحفظس منٛز۔<ref>https://en.wikipedia.org/wiki/Jarkent_Mosque</ref>
ko44rpjg27zvbem7qk0e2llt81ca2km
153448
153447
2026-10-07T07:18:37Z
آیات محراج
11062
مِلاوُن [[زٲژ:مسجد]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
153448
wikitext
text/x-wiki
{{Infobox structure}}[[File:Zharkent_Mosque_1.jpg|thumb|مٔشیٖد ہُنٛد بَر]]
'''جارکینٛت مٔشیٖد''' ({{زَبان|قازق زَبان|Жаркент мешіті}}) چھِ مَرکَزی مٔشیٖد [[جارکینٛت]]، [[قازقستان|قازقستانس]] مَنٛز.یِہ مسجد ٲس 1895 منٛز چینی معمار ہون پیکیٹ کس ڈیزائنس پیٹھ تارکین وطنن ہنٛد جمع کرنہٕ آمت فنڈز استعمال کرتھ تعٲمیر کرنہٕ آمٕژ۔ مسجد چھ 1982 پیٹھہٕ فن تعمیرچ یادگار تہِ جمہوری اہمیتک تٲریخک یادگار کس طورس پیٹھ ریاستی تحفظس منٛز۔<ref>https://en.wikipedia.org/wiki/Jarkent_Mosque</ref>
== حَوالہٕ ==
[[زٲژ:مسجد]]
j6c6nmxbyilgip9u9ulheqdtos3miwd
قازق زَبان
0
33085
153449
2026-10-07T07:27:45Z
آیات محراج
11062
"[[:en:Special:Redirect/revision/1378621430|Kazakh language]]" ضفُک اِنتدٲیی حِصُک تَرجَمہٕ طور تَخلیق کَرنہٕ آمُت
153449
wikitext
text/x-wiki
.
6t9fg2gmch401ldtk8m7pyzz632ixbb
153450
153449
2026-10-07T07:29:05Z
آیات محراج
11062
153450
wikitext
text/x-wiki
قَزاق چھےٚ قِپچاق شاخٕچ اَکھ تُرکِک زَبان، یۄس مَنٛز ایشیاہَس مَنٛز قَزاق لوٗکَن ہٕنٛدِ دٔسؠ بولنہٕ چھےٚ یِوان۔ یہِ چھےٚ نوغائی، کِرٛگِز تہٕ قَراقَلپاق زَبانہِ سٟتؠ نزدیٖک وابَستہٕ۔ یہِ چھےٚ قَزاقِستانٕچ سَرکٲری زَبان تہٕ روٗسٕچ اَلتائی جۆمہوٗریَت مَنٛز چھےٚ اَتھ سَرکٲری حثیَت حٲصِل۔ اَمہِ عَلایِو چھےٚ یہِ چیٖنٕکِس شِنٛجیٛانٛگ علاقَس مَنٛز اِلی قَزاق خۄد اِختیار پریفیکچَر اَندَر، تہٕ مَغرِبی مَنٛگولِیا کِس بَیان-اولگی صوٗبَس مَنٛز اَکھ اَقَلِیَتی زَبان۔ یہِ زَبان چھےٚ سابِقہٕ سۆوِیَت یوٗنِیَن کؠن واریاہَن قَزاق لوٗکَن ہٕنٛدِ دٔسؠ تہِ بولنہٕ یِوان (۲۰۱۰ کِس روٗسی مَردَم شُمٲری مُطٲبِق تَقریٖبَن ۴۷۲،۰۰۰ لوٗکھ روٗسَس مَنٛز)، سٟتؠ سٟتؠ جَرمَنی تہٕ تُرکی مَنٛز تہِ۔
باقی تُرکِک زَبانَن ہِش، قَزاق چھےٚ اَکھ اِلتِصاقی (agglutinative) زَبان تہٕ وول ہارمنی (vowel harmony) اِستِعمال کَران۔ قَزاق لَفٕظ بَنٛاونہٕ باپَتھ چھےٚ لَفظٕکِس جَڑَس اَکھ اَکھ کٔرِتھ لاحِقہٕ (suffixes) رَلاوان، یَتھ مَنٛز پرٛؠتھ لاحِقہٕ اَکھ مَخصوٗص معنی پٲدٕ چھےٚ کَران۔ ایتھنولوگ (Ethnologue) مُطٲبِق چھےٚ اَمٕکؠ ترٛےٚ بٲہَمی صَلٲحِیَت دار لہجہٕ گرٛوٗپ: شُمال-مَشرِقی قَزاق (یۄس ساروٕے کھۄتہٕ زِیٛادٕ بولنہٕ یِوان چھےٚ تہٕ سَرکٲری زَبان ہُنٛد بُنیاد بَنٛوان چھےٚ)، جَنوٗبی قَزاق، تہٕ مَغرِبی قَزاق۔ اَمٕکؠ مَغرِبی لہجہٕ چھےٚ اَلتائی زَبانَن سٟتؠ تہِ حَد بَند مِلاوٹ تھاوان۔
اکتوٗبَر ۲۰۱۷ مَنٛز، تَتِکِس صَدٕر نوٗرسُلطان نَزَربایِوَن کٔر حُکُم نامہٕ جٲری زِ لؠکھنُک نِظام یِیہِ ۲۰۲۵ تام سِرِلِک پؠٹھٕ لاطینی رَسمُ الخَطَس مَنٛز تَبدِیٖل کَرنہٕ۔ یہِ مَنصوٗبہٕ چُھ ۲۰۲۳ پؠٹھ ۲۰۳۱ تام لاگوٗ کَرنُک تَجویٖز۔ شِنٛجیٛانٛگ (چیٖن) مَنٛز اَکھ مِلین کھۄتہٕ زِیٛادٕ قَزاق بوٗلَن وٲلؠ چھےٚ فآرسی-عربی رَسمُ الخَط اِستِعمال کَران۔
جُغرٲفیٲیی تَوزیٖع
قَزاق زَبان بوٗلَن وٲلؠ چھےٚ اَکھ بٔڑِس عِلاقَس مَنٛز پٔھہِلِتھ، تیان شان پؠٹھٕ کؠسپِیَن سَمَندَر کِس مَغرِبی بٔٹھِس تام۔ قَزاقِستانَس مَنٛز چھےٚ یہِ سَرکٲری رِیاسَتی زَبان، یَتھ مَنٛز تَقریٖبَن ۱۰ مِلین بوٗلَن وٲلؠ چِھ۔ چیٖن کِس شِنٛجیٛانٛگ صوٗبَس مَنٛز چھےٚ تَقریٖبَن دۄہ مِلین قَزاق روزان۔
تٲریٖخ
تُرکِک زَبانَن ہِنٛز قِپچاق شاخ، یَتھ مَنٛز قَزاق شٲمِل چھےٚ، بٔڑِس پؠمانَس پؠٹھ گولڈن ہورڈ (Golden Horde) کِس دَورَس مَنٛز مَضبوٗط گٔیہِ۔ جٔدیٖد قَزاق زَبان چھےٚ ۱۴۶۵ عیسوی کِس آس پاس قَزاق خانیَت بَننہٕ کِس دۄرانہٕ شَکٕل اِختیار کٔرمٕژ۔
قَزاقَس مَنٛز چھےٚ فآرسی تہٕ عربی پؠٹھٕ پٔھٹِتھ واریاہ لَفٕظ درٛامٕتؠ، ییٚلہِ زن قَزاق خانیَتس مَنٛز فآرسی عام رٲبطہٕ زَبان (lingua franca) اٲس۔ قَزاق لوٗکَو کۄر تَقریٖبَن ۱۹۲۹ تام لؠکھنہٕ باپَتھ عربی رَسمُ الخَط اِستِعمال۔ اَمہِ پَتہٕ سۆوِیَت حوکوٗمَتھ کِس دَورَس مَنٛز آو لاطینی تہٕ ۱۹۴۰ کِس دَہلہِ مَنٛز سِرِلِک رَسمُ الخَط لاگوٗ کَرنہٕ۔
jp09fxb9uuy3i1gdxew2px5ukkkerpe
153451
153450
2026-10-07T07:41:00Z
آیات محراج
11062
/* */
153451
wikitext
text/x-wiki
قَزاق چھےٚ قِپچاق شاخٕچ اَکھ تُرکِک زَبان، یۄس مَنٛز ایشیاہَس مَنٛز قَزاق لوٗکَن ہٕنٛدِ دٔسؠ بولنہٕ چھےٚ یِوان۔ یہِ چھےٚ نوغٲیی، کِرٛگِز تہٕ قَراقَلپاق زَبانہِ سٟتؠ نزدیٖک وابَستہٕ۔ یہِ چھےٚ قَزاقِستانٕچ سَرکٲرؠ زَبان تہٕ روٗسٕچ اَلتٲیی جۆمہوٗریَت مَنٛز چھےٚ اَتھ سَرکٲری حیثیَت حٲصِل۔ اَمہِ عَلاوٕ چھےٚ یہِ چیٖنٕکِس شِنٛجیٛانٛگ علاقَس مَنٛز اِلی قَزاق خۄد اِختیار پریفیکچَر اَندَر، تہٕ مَغرِبی مَنٛگولِیا کِس بَیان-اولگی صوٗبَس مَنٛز اَکھ اَقَلِیَتی زَبان۔ یہِ زَبان چھےٚ سٲبِقہٕ سووِیَت یوٗنِیَن کؠن واریاہَن قَزاق لوٗکَن ہٕنٛدِ دٔسؠ تہِ بولنہٕ یِوان (2010 کِس روٗسی مَردَم شُمٲری مُطٲبِق تَقریٖبَن 472,000 لوٗکھ روٗسَس مَنٛز)، سٟتؠ سٟتؠ جَرمَنی تہٕ تُرکی مَنٛز تہِ۔
باقی تُرکِک زَبانَن ہِش، قَزاق چھےٚ اَکھ ایگلُٹِنیٹِو (agglutinative) زَبان تہٕ [[أرؠ اَچھَر]] ہارمنی اِستِعمال کَران۔ قَزاق لَفٕظ بَنٛاونہٕ باپَتھ چھےٚ لَفظٕکِس جَڑَس اَکھ اَکھ کٔرِتھ لاحِقہٕ (suffixes) رَلاوان، یَتھ مَنٛز پرٛؠتھ لاحِقہٕ اَکھ مَخصوٗص معنی پٲدٕ چھےٚ کَران۔ ایتھنولوگ (Ethnologue) مُطٲبِق چھےٚ اَمٕکؠ ترٛےٚ بٲہَمی صَلٲحِیَت دار لہجہٕ گرٛوٗپ: شُمال-مَشرِقی قَزاق (یۄس ساروٕے کھۄتہٕ زِیٛادٕ بولنہٕ یِوان چھےٚ تہٕ سَرکٲری زَبان ہُنٛد بُنیاد بَنٛوان چھےٚ)، جَنوٗبی قَزاق، تہٕ مَغرِبی قَزاق۔ اَمٕکؠ مَغرِبی لہجہٕ چھےٚ اَلتٲیی زَبانَن سٟتؠ تہِ حَد بَند مِلاوٹ تھاوان۔
اکتوٗبَر 2017 مَنٛز، تَتِکِس صَدٕر نوٗرسُلطان نَزَربایِوَن کٔر حُکُم نامہٕ جٲری زِ لؠکھنُک نِظام یِیہِ 2025 تام سِرِلِک پؠٹھٕ لاطینی رَسمُ الخَطَس مَنٛز تَبدِیٖل کَرنہٕ۔ یہِ مَنصوٗبہٕ چُھ 2023 پؠٹھ 2031 تام لاگوٗ کَرنُک تَجویٖز۔ شِنٛجیٛانٛگ (چیٖن) مَنٛز اَکھ مِلین کھۄتہٕ زِیٛادٕ قَزاق بولَن وٲلؠ چھےٚ فارسی-عربی رَسمُ الخَط اِستِعمال کَران۔
== جُغرٲفیٲیی ==
قَزاق زَبان بولَن وٲلؠ چھےٚ اَکھ بٔڑِس عِلاقَس مَنٛز پٔھہِلِتھ، تیان شان پؠٹھٕ کؠسپِیَن سَمَندَر کِس مَغرِبی بٔٹھِس تام۔ قَزاقِستانَس مَنٛز چھےٚ یہِ سَرکٲرؠ رِیاسَتی زَبان، یَتھ مَنٛز تَقریٖبَن 10 مِلین بولَن وٲلؠ چِھ۔ چیٖن کِس شِنٛجیٛانٛگ صوٗبَس مَنٛز چھےٚ تَقریٖبَن دۄہ مِلین قَزاق روزان۔
== تَوٲریٖخ ==
تُرکِک زَبانَن ہِنٛز قِپچاق شاخ، یَتھ مَنٛز قَزاق شٲمِل چھےٚ، بٔڑِس پؠمانَس پؠٹھ گولڈن ہورڈ (Golden Horde) کِس دورَس مَنٛز مَضبوٗط گٔیہِ۔ جٔدیٖد قَزاق زَبان چھےٚ 1465 عیسوی کِس آس پاس قَزاق خانیَت بَننہٕ کِس دۄرانہٕ شَکٕل اِختیار کٔرمٕژ۔
قَزاقَس مَنٛز چھےٚ فارسی تہٕ عربی پؠٹھٕ پٔھٹِتھ واریاہ لَفٕظ درٛامٕتؠ، ییٚلہِ زن قَزاق خانیَتس مَنٛز فارسی عام رٲبطہٕ زَبان (lingua franca) اٲس۔ قَزاق لوٗکَو کۄر تَقریٖبَن 1929 تام لؠکھنہٕ باپَتھ عربی رَسمُ الخَط اِستِعمال۔ اَمہِ پَتہٕ سۆوِیَت حوکوٗمَتھ کِس دَورَس مَنٛز آو لاطینی تہٕ 1940 کِس دَہلہِ مَنٛز سِرِلِک رَسمُ الخَط لاگوٗ کَرنہٕ۔
o0lamr6y4j66wa1638h5kv9or7wa5zd
153454
153451
2026-10-07T07:42:17Z
آیات محراج
11062
/* */
153454
wikitext
text/x-wiki
'''قازق زَبان''' یا '''قَزاق زَبان''' چھےٚ قِپچاق شاخٕچ اَکھ تُرکِک زَبان، یۄس مَنٛز ایشیاہَس مَنٛز قَزاق لوٗکَن ہٕنٛدِ دٔسؠ بولنہٕ چھےٚ یِوان۔ یہِ چھےٚ نوغٲیی، کِرٛگِز تہٕ قَراقَلپاق زَبانہِ سٟتؠ نزدیٖک وابَستہٕ۔ یہِ چھےٚ قَزاقِستانٕچ سَرکٲرؠ زَبان تہٕ روٗسٕچ اَلتٲیی جۆمہوٗریَت مَنٛز چھےٚ اَتھ سَرکٲری حیثیَت حٲصِل۔ اَمہِ عَلاوٕ چھےٚ یہِ چیٖنٕکِس شِنٛجیٛانٛگ علاقَس مَنٛز اِلی قَزاق خۄد اِختیار پریفیکچَر اَندَر، تہٕ مَغرِبی مَنٛگولِیا کِس بَیان-اولگی صوٗبَس مَنٛز اَکھ اَقَلِیَتی زَبان۔ یہِ زَبان چھےٚ سٲبِقہٕ سووِیَت یوٗنِیَن کؠن واریاہَن قَزاق لوٗکَن ہٕنٛدِ دٔسؠ تہِ بولنہٕ یِوان (2010 کِس روٗسی مَردَم شُمٲری مُطٲبِق تَقریٖبَن 472,000 لوٗکھ روٗسَس مَنٛز)، سٟتؠ سٟتؠ جَرمَنی تہٕ تُرکی مَنٛز تہِ۔
باقی تُرکِک زَبانَن ہِش، قَزاق چھےٚ اَکھ ایگلُٹِنیٹِو (agglutinative) زَبان تہٕ [[أرؠ اَچھَر]] ہارمنی اِستِعمال کَران۔ قَزاق لَفٕظ بَنٛاونہٕ باپَتھ چھےٚ لَفظٕکِس جَڑَس اَکھ اَکھ کٔرِتھ لاحِقہٕ (suffixes) رَلاوان، یَتھ مَنٛز پرٛؠتھ لاحِقہٕ اَکھ مَخصوٗص معنی پٲدٕ چھےٚ کَران۔ ایتھنولوگ (Ethnologue) مُطٲبِق چھےٚ اَمٕکؠ ترٛےٚ بٲہَمی صَلٲحِیَت دار لہجہٕ گرٛوٗپ: شُمال-مَشرِقی قَزاق (یۄس ساروٕے کھۄتہٕ زِیٛادٕ بولنہٕ یِوان چھےٚ تہٕ سَرکٲری زَبان ہُنٛد بُنیاد بَنٛوان چھےٚ)، جَنوٗبی قَزاق، تہٕ مَغرِبی قَزاق۔ اَمٕکؠ مَغرِبی لہجہٕ چھےٚ اَلتٲیی زَبانَن سٟتؠ تہِ حَد بَند مِلاوٹ تھاوان۔
اکتوٗبَر 2017 مَنٛز، تَتِکِس صَدٕر نوٗرسُلطان نَزَربایِوَن کٔر حُکُم نامہٕ جٲری زِ لؠکھنُک نِظام یِیہِ 2025 تام سِرِلِک پؠٹھٕ لاطینی رَسمُ الخَطَس مَنٛز تَبدِیٖل کَرنہٕ۔ یہِ مَنصوٗبہٕ چُھ 2023 پؠٹھ 2031 تام لاگوٗ کَرنُک تَجویٖز۔ شِنٛجیٛانٛگ (چیٖن) مَنٛز اَکھ مِلین کھۄتہٕ زِیٛادٕ قَزاق بولَن وٲلؠ چھےٚ فارسی-عربی رَسمُ الخَط اِستِعمال کَران۔
== جُغرٲفیٲیی ==
قَزاق زَبان بولَن وٲلؠ چھےٚ اَکھ بٔڑِس عِلاقَس مَنٛز پٔھہِلِتھ، تیان شان پؠٹھٕ کؠسپِیَن سَمَندَر کِس مَغرِبی بٔٹھِس تام۔ قَزاقِستانَس مَنٛز چھےٚ یہِ سَرکٲرؠ رِیاسَتی زَبان، یَتھ مَنٛز تَقریٖبَن 10 مِلین بولَن وٲلؠ چِھ۔ چیٖن کِس شِنٛجیٛانٛگ صوٗبَس مَنٛز چھےٚ تَقریٖبَن دۄہ مِلین قَزاق روزان۔
== تَوٲریٖخ ==
تُرکِک زَبانَن ہِنٛز قِپچاق شاخ، یَتھ مَنٛز قَزاق شٲمِل چھےٚ، بٔڑِس پؠمانَس پؠٹھ گولڈن ہورڈ (Golden Horde) کِس دورَس مَنٛز مَضبوٗط گٔیہِ۔ جٔدیٖد قَزاق زَبان چھےٚ 1465 عیسوی کِس آس پاس قَزاق خانیَت بَننہٕ کِس دۄرانہٕ شَکٕل اِختیار کٔرمٕژ۔
قَزاقَس مَنٛز چھےٚ فارسی تہٕ عربی پؠٹھٕ پٔھٹِتھ واریاہ لَفٕظ درٛامٕتؠ، ییٚلہِ زن قَزاق خانیَتس مَنٛز فارسی عام رٲبطہٕ زَبان (lingua franca) اٲس۔ قَزاق لوٗکَو کۄر تَقریٖبَن 1929 تام لؠکھنہٕ باپَتھ عربی رَسمُ الخَط اِستِعمال۔ اَمہِ پَتہٕ سۆوِیَت حوکوٗمَتھ کِس دَورَس مَنٛز آو لاطینی تہٕ 1940 کِس دَہلہِ مَنٛز سِرِلِک رَسمُ الخَط لاگوٗ کَرنہٕ۔
opap3jnqohbi9lh3yzs71yb2wdb22ff
153455
153454
2026-10-07T07:50:27Z
آیات محراج
11062
153455
wikitext
text/x-wiki
{{Infobox language/Wikidata|familycolor=Altaic}}
[[File:WIKITONGUES- Yernur speaking Kazakh.webm|thumb|A Kazakh speaker, recorded in [[Taiwan]]]]
[[File:WIKITONGUES- Mereinur speaking Kazakh.webm|thumb|A Kazakh speaker, recorded in [[Kazakhstan]]]]
'''قازق زَبان''' یا '''قَزاق زَبان''' چھےٚ قِپچاق شاخٕچ اَکھ تُرکِک زَبان، یۄس مَنٛز ایشیاہَس مَنٛز قَزاق لوٗکَن ہٕنٛدِ دٔسؠ بولنہٕ چھےٚ یِوان۔ یہِ چھےٚ [[نوغٲیی زَبان|نوغٲیی]]، [[کِرغِر زَبان|کِرغِز]] تہٕ [[قَراقَلپاق زَبان|قَراقَلپاق]] زَبانہِ سٟتؠ نزدیٖک وابَستہٕ۔ یہِ چھےٚ قَزاقِستانٕچ سَرکٲرؠ زَبان تہٕ روٗسٕچ اَلتٲیی جۆمہوٗریَت مَنٛز چھےٚ اَتھ سَرکٲری حیثیَت حٲصِل۔ اَمہِ عَلاوٕ چھےٚ یہِ چیٖنٕکِس [[شِنجیٛانٛگ|شِنٛجیٛانٛگ]] علاقَس مَنٛز اِلی قَزاق خۄد اِختیار پریفیکچَر اَندَر، تہٕ مَغرِبی مَنٛگولِیا کِس بَیان-اولگی صوٗبَس مَنٛز اَکھ اَقَلِیَتی زَبان۔ یہِ زَبان چھےٚ سٲبِقہٕ سووِیَت یوٗنِیَن کؠن واریاہَن قَزاق لوٗکَن ہٕنٛدِ دٔسؠ تہِ بولنہٕ یِوان (2010 کِس روٗسی مَردَم شُمٲری مُطٲبِق تَقریٖبَن 472,000 لوٗکھ روٗسَس مَنٛز)، سٟتؠ سٟتؠ جَرمَنی تہٕ تُرکی مَنٛز تہِ۔
باقی تُرکِک زَبانَن ہِش، قَزاق چھےٚ اَکھ ایگلُٹِنیٹِو (agglutinative) زَبان تہٕ [[أرؠ اَچھَر]] ہارمنی اِستِعمال کَران۔ قَزاق لَفٕظ بَنٛاونہٕ باپَتھ چھےٚ لَفظٕکِس جَڑَس اَکھ اَکھ کٔرِتھ لاحِقہٕ (suffixes) رَلاوان، یَتھ مَنٛز پرٛؠتھ لاحِقہٕ اَکھ مَخصوٗص معنی پٲدٕ چھےٚ کَران۔ ایتھنولوگ (Ethnologue) مُطٲبِق چھےٚ اَمٕکؠ ترٛےٚ بٲہَمی صَلٲحِیَت دار لہجہٕ گرٛوٗپ: شُمال-مَشرِقی قَزاق (یۄس ساروٕے کھۄتہٕ زِیٛادٕ بولنہٕ یِوان چھےٚ تہٕ سَرکٲری زَبان ہُنٛد بُنیاد بَنٛوان چھےٚ)، جَنوٗبی قَزاق، تہٕ مَغرِبی قَزاق۔ اَمٕکؠ مَغرِبی لہجہٕ چھےٚ اَلتٲیی زَبانَن سٟتؠ تہِ حَد بَند مِلاوٹ تھاوان۔
اکتوٗبَر 2017 مَنٛز، تَتِکؠ صَدٕر [[نوٗرسُلطان نَزَربایِو|نوٗرسُلطان نَزَربایِوَن]] کٔر حُکُم نامہٕ جٲری زِ لؠکھنُک نِظام یِیہِ 2025 تام سِرِلِک پؠٹھٕ لاطینی رَسمُ الخَطَس مَنٛز تَبدِیٖل کَرنہٕ۔ یہِ مَنصوٗبہٕ چُھ 2023 پؠٹھ 2031 تام لاگوٗ کَرنُک تَجویٖز۔ شِنٛجیٛانٛگ (چیٖن) مَنٛز اَکھ مِلین کھۄتہٕ زِیٛادٕ قَزاق بولَن وٲلؠ چھےٚ فارسی-عربی رَسمُ الخَط اِستِعمال کَران۔
== جُغرٲفیٲیی ==
قَزاق زَبان بولَن وٲلؠ چھےٚ اَکھ بٔڑِس عِلاقَس مَنٛز پٔھہِلِتھ، تیان شان پؠٹھٕ کؠسپِیَن سَمَندَر کِس مَغرِبی بٔٹھِس تام۔ قَزاقِستانَس مَنٛز چھےٚ یہِ سَرکٲرؠ رِیاسَتی زَبان، یَتھ مَنٛز تَقریٖبَن 10 مِلین بولَن وٲلؠ چِھ۔ چیٖن کِس شِنٛجیٛانٛگ صوٗبَس مَنٛز چھےٚ تَقریٖبَن دۄہ مِلین قَزاق روزان۔
== تَوٲریٖخ ==
تُرکِک زَبانَن ہِنٛز قِپچاق شاخ، یَتھ مَنٛز قَزاق شٲمِل چھےٚ، بٔڑِس پؠمانَس پؠٹھ گولڈن ہورڈ (Golden Horde) کِس دورَس مَنٛز مَضبوٗط گٔیہِ۔ جٔدیٖد قَزاق زَبان چھےٚ 1465 عیسوی کِس آس پاس قَزاق خانیَت بَننہٕ کِس دۄرانہٕ شَکٕل اِختیار کٔرمٕژ۔
قَزاقَس مَنٛز چھےٚ فارسی تہٕ عربی پؠٹھٕ پٔھٹِتھ واریاہ لَفٕظ درٛامٕتؠ، ییٚلہِ زن قَزاق خانیَتس مَنٛز فارسی عام رٲبطہٕ زَبان (lingua franca) اٲس۔ قَزاق لوٗکَو کۄر تَقریٖبَن 1929 تام لؠکھنہٕ باپَتھ عربی رَسمُ الخَط اِستِعمال۔ اَمہِ پَتہٕ سۆوِیَت حوکوٗمَتھ کِس دَورَس مَنٛز آو لاطینی تہٕ 1940 کِس دَہلہِ مَنٛز سِرِلِک رَسمُ الخَط لاگوٗ کَرنہٕ۔
a5uu43c4hsmqy9c7z4ogsmg9uehrk1u
153456
153455
2026-10-07T08:04:38Z
آیات محراج
11062
/* */
153456
wikitext
text/x-wiki
{{Infobox language/Wikidata|familycolor=Altaic}}
[[File:WIKITONGUES- Yernur speaking Kazakh.webm|thumb|قازق بولن وول [[تایوان]]س مَنٛز]]
[[File:WIKITONGUES- Mereinur speaking Kazakh.webm|thumb|قازق بولن وول [[قازقستان]]س مَنٛز]]
'''قازق زَبان''' یا '''قَزاق زَبان''' چھےٚ قِپچاق شاخٕچ اَکھ تُرکِک زَبان، یۄس مَنٛز ایشیاہَس مَنٛز قَزاق لوٗکَن ہٕنٛدِ دٔسؠ بولنہٕ چھےٚ یِوان۔ یہِ چھےٚ [[نوغٲیی زَبان|نوغٲیی]]، [[کِرغِر زَبان|کِرغِز]] تہٕ [[قَراقَلپاق زَبان|قَراقَلپاق]] زَبانہِ سٟتؠ نزدیٖک وابَستہٕ۔ یہِ چھےٚ [[قازقستان|قَزاقِستانٕچ]] سَرکٲرؠ زَبان تہٕ [[روٗس|روٗسٕچ]] اَلتٲیی جۆمہوٗریَت مَنٛز چھےٚ اَتھ سَرکٲرؠ حیثیَت حٲصِل۔ اَمہِ عَلاوٕ چھےٚ یہِ چیٖنٕکِس [[شِنجیٛانٛگ|شِنٛجیٛانٛگ]] علاقَس مَنٛز اِلی قَزاق خۄد اِختیار پریفیکچَر اَندَر، تہٕ مَغرِبی مَنٛگولِیا کِس بَیان-اولگی صوٗبَس مَنٛز اَکھ اَقَلِیَتی زَبان۔ یہِ زَبان چھےٚ سٲبِقہٕ [[سووِیَت یکجوت|سووِیَت یوٗنِیَن]] کؠن واریاہَن قَزاق لوٗکَن ہٕنٛدِ دٔسؠ تہِ بولنہٕ یِوان (2010 کِس روٗسی مَردَم شُمٲری مُطٲبِق تَقریٖبَن 472,000 لوٗکھ روٗسَس مَنٛز)، سٟتؠ سٟتؠ جَرمَنی تہٕ تُرکی مَنٛز تہِ۔
باقی تُرکِک زَبانَن ہِش، قَزاق چھےٚ اَکھ ایگلُٹِنیٹِو (agglutinative) زَبان تہٕ [[أرؠ اَچھَر]] ہارمنی اِستِعمال کَران۔ قَزاق لَفٕظ بَنٛاونہٕ باپَتھ چھےٚ لَفظٕکِس جَڑَس اَکھ اَکھ کٔرِتھ لاحِقہٕ (suffixes) رَلاوان، یَتھ مَنٛز پرٛؠتھ لاحِقہٕ اَکھ مَخصوٗص معنی پٲدٕ چھےٚ کَران۔ ایتھنولوگ (Ethnologue) مُطٲبِق چھےٚ اَمٕکؠ ترٛےٚ بٲہَمی صَلٲحِیَت دار لہجہٕ گرٛوٗپ: شُمال-مَشرِقی قَزاق (یۄس ساروٕے کھۄتہٕ زِیٛادٕ بولنہٕ یِوان چھےٚ تہٕ سَرکٲری زَبان ہُنٛد بُنیاد بَنٛوان چھےٚ)، جَنوٗبی قَزاق، تہٕ مَغرِبی قَزاق۔ اَمٕکؠ مَغرِبی لہجہٕ چھےٚ اَلتٲیی زَبانَن سٟتؠ تہِ حَد بَند مِلاوٹ تھاوان۔
اکتوٗبَر 2017 مَنٛز، تَتِکؠ صَدٕر [[نوٗرسُلطان نَزَربایِو|نوٗرسُلطان نَزَربایِوَن]] کٔر حُکُم نامہٕ جٲری زِ لؠکھنُک نِظام یِیہِ 2025 تام سِرِلِک پؠٹھٕ [[لٲطِن لِکھٲرؠ نِظام|لاطینی رَسمُ الخَطَس]] مَنٛز تَبدِیٖل کَرنہٕ۔ یہِ مَنصوٗبہٕ چُھ 2023 پؠٹھ 2031 تام لاگوٗ کَرنُک تَجویٖز۔ شِنٛجیٛانٛگ (چیٖن) مَنٛز اَکھ مِلین کھۄتہٕ زِیٛادٕ قَزاق بولَن وٲلؠ چھےٚ فارسی-عربی رَسمُ الخَط اِستِعمال کَران۔
== جُغرٲفیٲیی ==
قَزاق زَبان بولَن وٲلؠ چھےٚ اَکھ بٔڑِس عِلاقَس مَنٛز پٔھہِلِتھ، تیان شان پؠٹھٕ کؠسپِیَن سَمَندَر کِس مَغرِبی بٔٹھِس تام۔ قَزاقِستانَس مَنٛز چھےٚ یہِ سَرکٲرؠ رِیاسَتی زَبان، یَتھ مَنٛز تَقریٖبَن 10 مِلین بولَن وٲلؠ چِھ۔ چیٖن کِس شِنٛجیٛانٛگ صوٗبَس مَنٛز چھےٚ تَقریٖبَن دۄہ مِلین قَزاق روزان۔
== تَوٲریٖخ ==
تُرکِک زَبانَن ہِنٛز قِپچاق شاخ، یَتھ مَنٛز قَزاق شٲمِل چھےٚ، بٔڑِس پؠمانَس پؠٹھ گولڈن ہورڈ (Golden Horde) کِس دورَس مَنٛز مَضبوٗط گٔیہِ۔ جٔدیٖد قَزاق زَبان چھےٚ 1465 عیسوی کِس آس پاس قَزاق خانیَت بَننہٕ کِس دۄرانہٕ شَکٕل اِختیار کٔرمٕژ۔
قَزاقَس مَنٛز چھےٚ فارسی تہٕ عربی پؠٹھٕ پٔھٹِتھ واریاہ لَفٕظ درٛامٕتؠ، ییٚلہِ زن قَزاق خانیَتس مَنٛز فارسی عام رٲبطہٕ زَبان (lingua franca) اٲس۔ قَزاق لوٗکَو کۄر تَقریٖبَن 1929 تام لؠکھنہٕ باپَتھ عربی رَسمُ الخَط اِستِعمال۔ اَمہِ پَتہٕ سۆوِیَت حوکوٗمَتھ کِس دَورَس مَنٛز آو لاطینی تہٕ 1940 کِس دَہلہِ مَنٛز سِرِلِک رَسمُ الخَط لاگوٗ کَرنہٕ۔
32a4zmr4xcgyh04p4wb47bpf5z8o0z4
153457
153456
2026-10-07T08:06:51Z
آیات محراج
11062
/* */
153457
wikitext
text/x-wiki
{{Infobox language/Wikidata|familycolor=Altaic}}
[[File:WIKITONGUES- Yernur speaking Kazakh.webm|thumb|قازق بولن وول [[تایوان]]س مَنٛز]]
[[File:WIKITONGUES- Mereinur speaking Kazakh.webm|thumb|قازق بولن وول [[قازقستان]]س مَنٛز]]
'''قازق زَبان''' یا '''قَزاق زَبان''' چھےٚ قِپچاق شاخٕچ اَکھ تُرکِک زَبان، یۄس مَنٛز ایشیاہَس مَنٛز قَزاق لوٗکَن ہٕنٛدِ دٔسؠ بولنہٕ چھےٚ یِوان۔ یہِ چھےٚ [[نوغٲیی زَبان|نوغٲیی]]، [[کِرغِر زَبان|کِرغِز]] تہٕ [[قَراقَلپاق زَبان|قَراقَلپاق]] زَبانہِ سٟتؠ نزدیٖک وابَستہٕ۔ یہِ چھےٚ [[قازقستان|قَزاقِستانٕچ]] سَرکٲرؠ زَبان تہٕ [[روٗس|روٗسٕچ]] اَلتٲیی جۆمہوٗریَت مَنٛز چھےٚ اَتھ سَرکٲرؠ حیثیَت حٲصِل۔ اَمہِ عَلاوٕ چھےٚ یہِ چیٖنٕکِس [[شِنجیٛانٛگ|شِنٛجیٛانٛگ]] علاقَس مَنٛز اِلی قَزاق خۄد اِختیار پریفیکچَر اَندَر، تہٕ مَغرِبی مَنٛگولِیا کِس بَیان-اولگی صوٗبَس مَنٛز اَکھ اَقَلِیَتی زَبان۔ یہِ زَبان چھےٚ سٲبِقہٕ [[سووِیَت یکجوت|سووِیَت یوٗنِیَن]] کؠن واریاہَن قَزاق لوٗکَن ہٕنٛدِ دٔسؠ تہِ بولنہٕ یِوان (2010 کِس روٗسی مَردَم شُمٲری مُطٲبِق تَقریٖبَن 472,000 لوٗکھ روٗسَس مَنٛز)، سٟتؠ سٟتؠ جَرمَنی تہٕ تُرکی مَنٛز تہِ۔
باقی تُرکِک زَبانَن ہِش، قَزاق چھےٚ اَکھ ایگلُٹِنیٹِو (agglutinative) زَبان تہٕ [[أرؠ اَچھَر]] ہارمنی اِستِعمال کَران۔ قَزاق لَفٕظ بَنٛاونہٕ باپَتھ چھےٚ لَفظٕکِس جَڑَس اَکھ اَکھ کٔرِتھ لاحِقہٕ (suffixes) رَلاوان، یَتھ مَنٛز پرٛؠتھ لاحِقہٕ اَکھ مَخصوٗص معنی پٲدٕ چھےٚ کَران۔ ایتھنولوگ (Ethnologue) مُطٲبِق چھےٚ اَمٕکؠ ترٛےٚ بٲہَمی صَلٲحِیَت دار لہجہٕ گرٛوٗپ: شُمال-مَشرِقی قَزاق (یۄس ساروٕے کھۄتہٕ زِیٛادٕ بولنہٕ یِوان چھےٚ تہٕ سَرکٲری زَبان ہُنٛد بُنیاد بَنٛوان چھےٚ)، جَنوٗبی قَزاق، تہٕ مَغرِبی قَزاق۔ اَمٕکؠ مَغرِبی لہجہٕ چھےٚ اَلتٲیی زَبانَن سٟتؠ تہِ حَد بَند مِلاوٹ تھاوان۔
اکتوٗبَر 2017 مَنٛز، تَتِکؠ صَدٕر [[نوٗرسُلطان نَزَربایِو|نوٗرسُلطان نَزَربایِوَن]] کٔر حُکُم نامہٕ جٲری زِ لؠکھنُک نِظام یِیہِ 2025 تام سِرِلِک پؠٹھٕ [[لٲطِن لِکھٲرؠ نِظام|لاطینی رَسمُ الخَطَس]] مَنٛز تَبدِیٖل کَرنہٕ۔ یہِ مَنصوٗبہٕ چُھ 2023 پؠٹھ 2031 تام لاگوٗ کَرنُک تَجویٖز۔<ref name=":1">{{Cite web|date=27 October 2017|title=Kazakhstan to change from Cyrillic to Latin alphabet|url=https://emerging-europe.com/news/kazakhstans-alphabet-switch-reflects-wider-societal-changes/|access-date=2020-09-16|website=Deutsche Welle|language=en-GB}}</ref> شِنٛجیٛانٛگ (چیٖن) مَنٛز اَکھ مِلین کھۄتہٕ زِیٛادٕ قَزاق بولَن وٲلؠ چھےٚ فارسی-عربی رَسمُ الخَط اِستِعمال کَران۔
== جُغرٲفیٲیی ==
قَزاق زَبان بولَن وٲلؠ چھےٚ اَکھ بٔڑِس عِلاقَس مَنٛز پٔھہِلِتھ، تیان شان پؠٹھٕ کؠسپِیَن سَمَندَر کِس مَغرِبی بٔٹھِس تام۔ قَزاقِستانَس مَنٛز چھےٚ یہِ سَرکٲرؠ رِیاسَتی زَبان، یَتھ مَنٛز تَقریٖبَن 10 مِلین بولَن وٲلؠ چِھ۔ چیٖن کِس شِنٛجیٛانٛگ صوٗبَس مَنٛز چھےٚ تَقریٖبَن دۄہ مِلین قَزاق روزان۔
== تَوٲریٖخ ==
تُرکِک زَبانَن ہِنٛز قِپچاق شاخ، یَتھ مَنٛز قَزاق شٲمِل چھےٚ، بٔڑِس پؠمانَس پؠٹھ گولڈن ہورڈ (Golden Horde) کِس دورَس مَنٛز مَضبوٗط گٔیہِ۔ جٔدیٖد قَزاق زَبان چھےٚ 1465 عیسوی کِس آس پاس قَزاق خانیَت بَننہٕ کِس دۄرانہٕ شَکٕل اِختیار کٔرمٕژ۔
قَزاقَس مَنٛز چھےٚ فارسی تہٕ عربی پؠٹھٕ پٔھٹِتھ واریاہ لَفٕظ درٛامٕتؠ، ییٚلہِ زن قَزاق خانیَتس مَنٛز فارسی عام رٲبطہٕ زَبان (lingua franca) اٲس۔ قَزاق لوٗکَو کۄر تَقریٖبَن 1929 تام لؠکھنہٕ باپَتھ عربی رَسمُ الخَط اِستِعمال۔ اَمہِ پَتہٕ سۆوِیَت حوکوٗمَتھ کِس دَورَس مَنٛز آو لاطینی تہٕ 1940 کِس دَہلہِ مَنٛز سِرِلِک رَسمُ الخَط لاگوٗ کَرنہٕ۔
tq8qcjehsu4axwb2gwgvej7hah3ne3p
153458
153457
2026-10-07T08:07:47Z
آیات محراج
11062
مِلاوُن [[زٲژ:زَبان]] تٔژ زٲژ کِہ مَرَتھہٕ سٲتؠ
153458
wikitext
text/x-wiki
{{Infobox language/Wikidata|familycolor=Altaic}}
[[File:WIKITONGUES- Yernur speaking Kazakh.webm|thumb|قازق بولن وول [[تایوان]]س مَنٛز]]
[[File:WIKITONGUES- Mereinur speaking Kazakh.webm|thumb|قازق بولن وول [[قازقستان]]س مَنٛز]]
'''قازق زَبان''' یا '''قَزاق زَبان''' چھےٚ قِپچاق شاخٕچ اَکھ تُرکِک زَبان، یۄس مَنٛز ایشیاہَس مَنٛز قَزاق لوٗکَن ہٕنٛدِ دٔسؠ بولنہٕ چھےٚ یِوان۔ یہِ چھےٚ [[نوغٲیی زَبان|نوغٲیی]]، [[کِرغِر زَبان|کِرغِز]] تہٕ [[قَراقَلپاق زَبان|قَراقَلپاق]] زَبانہِ سٟتؠ نزدیٖک وابَستہٕ۔ یہِ چھےٚ [[قازقستان|قَزاقِستانٕچ]] سَرکٲرؠ زَبان تہٕ [[روٗس|روٗسٕچ]] اَلتٲیی جۆمہوٗریَت مَنٛز چھےٚ اَتھ سَرکٲرؠ حیثیَت حٲصِل۔ اَمہِ عَلاوٕ چھےٚ یہِ چیٖنٕکِس [[شِنجیٛانٛگ|شِنٛجیٛانٛگ]] علاقَس مَنٛز اِلی قَزاق خۄد اِختیار پریفیکچَر اَندَر، تہٕ مَغرِبی مَنٛگولِیا کِس بَیان-اولگی صوٗبَس مَنٛز اَکھ اَقَلِیَتی زَبان۔ یہِ زَبان چھےٚ سٲبِقہٕ [[سووِیَت یکجوت|سووِیَت یوٗنِیَن]] کؠن واریاہَن قَزاق لوٗکَن ہٕنٛدِ دٔسؠ تہِ بولنہٕ یِوان (2010 کِس روٗسی مَردَم شُمٲری مُطٲبِق تَقریٖبَن 472,000 لوٗکھ روٗسَس مَنٛز)، سٟتؠ سٟتؠ جَرمَنی تہٕ تُرکی مَنٛز تہِ۔
باقی تُرکِک زَبانَن ہِش، قَزاق چھےٚ اَکھ ایگلُٹِنیٹِو (agglutinative) زَبان تہٕ [[أرؠ اَچھَر]] ہارمنی اِستِعمال کَران۔ قَزاق لَفٕظ بَنٛاونہٕ باپَتھ چھےٚ لَفظٕکِس جَڑَس اَکھ اَکھ کٔرِتھ لاحِقہٕ (suffixes) رَلاوان، یَتھ مَنٛز پرٛؠتھ لاحِقہٕ اَکھ مَخصوٗص معنی پٲدٕ چھےٚ کَران۔ ایتھنولوگ (Ethnologue) مُطٲبِق چھےٚ اَمٕکؠ ترٛےٚ بٲہَمی صَلٲحِیَت دار لہجہٕ گرٛوٗپ: شُمال-مَشرِقی قَزاق (یۄس ساروٕے کھۄتہٕ زِیٛادٕ بولنہٕ یِوان چھےٚ تہٕ سَرکٲری زَبان ہُنٛد بُنیاد بَنٛوان چھےٚ)، جَنوٗبی قَزاق، تہٕ مَغرِبی قَزاق۔ اَمٕکؠ مَغرِبی لہجہٕ چھےٚ اَلتٲیی زَبانَن سٟتؠ تہِ حَد بَند مِلاوٹ تھاوان۔
اکتوٗبَر 2017 مَنٛز، تَتِکؠ صَدٕر [[نوٗرسُلطان نَزَربایِو|نوٗرسُلطان نَزَربایِوَن]] کٔر حُکُم نامہٕ جٲری زِ لؠکھنُک نِظام یِیہِ 2025 تام سِرِلِک پؠٹھٕ [[لٲطِن لِکھٲرؠ نِظام|لاطینی لِکھٲرؠ نِظامَس]] مَنٛز تَبدِیٖل کَرنہٕ۔ یہِ مَنصوٗبہٕ چُھ 2023 پؠٹھ 2031 تام لاگوٗ کَرنُک تَجویٖز۔<ref name=":1">{{Cite web|date=27 October 2017|title=Kazakhstan to change from Cyrillic to Latin alphabet|url=https://emerging-europe.com/news/kazakhstans-alphabet-switch-reflects-wider-societal-changes/|access-date=2020-09-16|website=Deutsche Welle|language=en-GB}}</ref> شِنٛجیٛانٛگ (چیٖن) مَنٛز اَکھ مِلین کھۄتہٕ زِیٛادٕ قَزاق بولَن وٲلؠ چھےٚ فارسی-عربی لِکھٲرؠ نِظام اِستِعمال کَران۔
== جُغرٲفیٲیی ==
قَزاق زَبان بولَن وٲلؠ چھےٚ اَکھ بٔڑِس عِلاقَس مَنٛز پٔھہِلِتھ، تیان شان پؠٹھٕ کؠسپِیَن سَمَندَر کِس مَغرِبی بٔٹھِس تام۔ قَزاقِستانَس مَنٛز چھےٚ یہِ سَرکٲرؠ رِیاسَتی زَبان، یَتھ مَنٛز تَقریٖبَن 10 مِلین بولَن وٲلؠ چِھ۔ چیٖن کِس شِنٛجیٛانٛگ صوٗبَس مَنٛز چھےٚ تَقریٖبَن دۄہ مِلین قَزاق روزان۔
== تَوٲریٖخ ==
تُرکِک زَبانَن ہِنٛز قِپچاق شاخ، یَتھ مَنٛز قَزاق شٲمِل چھےٚ، بٔڑِس پؠمانَس پؠٹھ گولڈن ہورڈ (Golden Horde) کِس دورَس مَنٛز مَضبوٗط گٔیہِ۔ جٔدیٖد قَزاق زَبان چھےٚ 1465 عیسوی کِس آس پاس قَزاق خانیَت بَننہٕ کِس دۄرانہٕ شَکٕل اِختیار کٔرمٕژ۔
قَزاقَس مَنٛز چھےٚ فارسی تہٕ عربی پؠٹھٕ پٔھٹِتھ واریاہ لَفٕظ درٛامٕتؠ، ییٚلہِ زن قَزاق خانیَتس مَنٛز فارسی عام رٲبطہٕ زَبان (lingua franca) اٲس۔ قَزاق لوٗکَو کۄر تَقریٖبَن 1929 تام لؠکھنہٕ باپَتھ عربی لِکھٲرؠ نِظام اِستِعمال۔ اَمہِ پَتہٕ سۆوِیَت حوکوٗمَتھ کِس دَورَس مَنٛز آو لاطینی تہٕ 1940 کِس دَہلہِ مَنٛز سِرِلِک لِکھٲرؠ نِظام لاگوٗ کَرنہٕ۔
== حَوالہٕ==
[[زٲژ:زَبان]]
kdl1tjwtk0bpih7ftrfluq0iju4ndf7
153459
153458
2026-10-07T08:08:06Z
آیات محراج
11062
/* تَوٲریٖخ */
153459
wikitext
text/x-wiki
{{Infobox language/Wikidata|familycolor=Altaic}}
[[File:WIKITONGUES- Yernur speaking Kazakh.webm|thumb|قازق بولن وول [[تایوان]]س مَنٛز]]
[[File:WIKITONGUES- Mereinur speaking Kazakh.webm|thumb|قازق بولن وول [[قازقستان]]س مَنٛز]]
'''قازق زَبان''' یا '''قَزاق زَبان''' چھےٚ قِپچاق شاخٕچ اَکھ تُرکِک زَبان، یۄس مَنٛز ایشیاہَس مَنٛز قَزاق لوٗکَن ہٕنٛدِ دٔسؠ بولنہٕ چھےٚ یِوان۔ یہِ چھےٚ [[نوغٲیی زَبان|نوغٲیی]]، [[کِرغِر زَبان|کِرغِز]] تہٕ [[قَراقَلپاق زَبان|قَراقَلپاق]] زَبانہِ سٟتؠ نزدیٖک وابَستہٕ۔ یہِ چھےٚ [[قازقستان|قَزاقِستانٕچ]] سَرکٲرؠ زَبان تہٕ [[روٗس|روٗسٕچ]] اَلتٲیی جۆمہوٗریَت مَنٛز چھےٚ اَتھ سَرکٲرؠ حیثیَت حٲصِل۔ اَمہِ عَلاوٕ چھےٚ یہِ چیٖنٕکِس [[شِنجیٛانٛگ|شِنٛجیٛانٛگ]] علاقَس مَنٛز اِلی قَزاق خۄد اِختیار پریفیکچَر اَندَر، تہٕ مَغرِبی مَنٛگولِیا کِس بَیان-اولگی صوٗبَس مَنٛز اَکھ اَقَلِیَتی زَبان۔ یہِ زَبان چھےٚ سٲبِقہٕ [[سووِیَت یکجوت|سووِیَت یوٗنِیَن]] کؠن واریاہَن قَزاق لوٗکَن ہٕنٛدِ دٔسؠ تہِ بولنہٕ یِوان (2010 کِس روٗسی مَردَم شُمٲری مُطٲبِق تَقریٖبَن 472,000 لوٗکھ روٗسَس مَنٛز)، سٟتؠ سٟتؠ جَرمَنی تہٕ تُرکی مَنٛز تہِ۔
باقی تُرکِک زَبانَن ہِش، قَزاق چھےٚ اَکھ ایگلُٹِنیٹِو (agglutinative) زَبان تہٕ [[أرؠ اَچھَر]] ہارمنی اِستِعمال کَران۔ قَزاق لَفٕظ بَنٛاونہٕ باپَتھ چھےٚ لَفظٕکِس جَڑَس اَکھ اَکھ کٔرِتھ لاحِقہٕ (suffixes) رَلاوان، یَتھ مَنٛز پرٛؠتھ لاحِقہٕ اَکھ مَخصوٗص معنی پٲدٕ چھےٚ کَران۔ ایتھنولوگ (Ethnologue) مُطٲبِق چھےٚ اَمٕکؠ ترٛےٚ بٲہَمی صَلٲحِیَت دار لہجہٕ گرٛوٗپ: شُمال-مَشرِقی قَزاق (یۄس ساروٕے کھۄتہٕ زِیٛادٕ بولنہٕ یِوان چھےٚ تہٕ سَرکٲری زَبان ہُنٛد بُنیاد بَنٛوان چھےٚ)، جَنوٗبی قَزاق، تہٕ مَغرِبی قَزاق۔ اَمٕکؠ مَغرِبی لہجہٕ چھےٚ اَلتٲیی زَبانَن سٟتؠ تہِ حَد بَند مِلاوٹ تھاوان۔
اکتوٗبَر 2017 مَنٛز، تَتِکؠ صَدٕر [[نوٗرسُلطان نَزَربایِو|نوٗرسُلطان نَزَربایِوَن]] کٔر حُکُم نامہٕ جٲری زِ لؠکھنُک نِظام یِیہِ 2025 تام سِرِلِک پؠٹھٕ [[لٲطِن لِکھٲرؠ نِظام|لاطینی لِکھٲرؠ نِظامَس]] مَنٛز تَبدِیٖل کَرنہٕ۔ یہِ مَنصوٗبہٕ چُھ 2023 پؠٹھ 2031 تام لاگوٗ کَرنُک تَجویٖز۔<ref name=":1">{{Cite web|date=27 October 2017|title=Kazakhstan to change from Cyrillic to Latin alphabet|url=https://emerging-europe.com/news/kazakhstans-alphabet-switch-reflects-wider-societal-changes/|access-date=2020-09-16|website=Deutsche Welle|language=en-GB}}</ref> شِنٛجیٛانٛگ (چیٖن) مَنٛز اَکھ مِلین کھۄتہٕ زِیٛادٕ قَزاق بولَن وٲلؠ چھےٚ فارسی-عربی لِکھٲرؠ نِظام اِستِعمال کَران۔
== جُغرٲفیٲیی ==
قَزاق زَبان بولَن وٲلؠ چھےٚ اَکھ بٔڑِس عِلاقَس مَنٛز پٔھہِلِتھ، تیان شان پؠٹھٕ کؠسپِیَن سَمَندَر کِس مَغرِبی بٔٹھِس تام۔ قَزاقِستانَس مَنٛز چھےٚ یہِ سَرکٲرؠ رِیاسَتی زَبان، یَتھ مَنٛز تَقریٖبَن 10 مِلین بولَن وٲلؠ چِھ۔ چیٖن کِس شِنٛجیٛانٛگ صوٗبَس مَنٛز چھےٚ تَقریٖبَن دۄہ مِلین قَزاق روزان۔
== تَوٲریٖخ ==
تُرکِک زَبانَن ہِنٛز قِپچاق شاخ، یَتھ مَنٛز قَزاق شٲمِل چھےٚ، بٔڑِس پؠمانَس پؠٹھ گولڈن ہورڈ (Golden Horde) کِس دورَس مَنٛز مَضبوٗط گٔیہِ۔ جٔدیٖد قَزاق زَبان چھےٚ 1465 عیسوی کِس آس پاس قَزاق خانیَت بَننہٕ کِس دۄرانہٕ شَکٕل اِختیار کٔرمٕژ۔
قَزاقَس مَنٛز چھےٚ فارسی تہٕ عربی پؠٹھٕ پٔھٹِتھ واریاہ لَفٕظ درٛامٕتؠ، ییٚلہِ زن قَزاق خانیَتس مَنٛز فارسی عام رٲبطہٕ زَبان (lingua franca) ٲس۔ قَزاق لوٗکَو کۄر تَقریٖبَن 1929 تام لؠکھنہٕ باپَتھ عربی لِکھٲرؠ نِظام اِستِعمال۔ اَمہِ پَتہٕ سۆوِیَت حوکوٗمَتھ کِس دَورَس مَنٛز آو لاطینی تہٕ 1940 کِس دَہلہِ مَنٛز سِرِلِک لِکھٲرؠ نِظام لاگوٗ کَرنہٕ۔
== حَوالہٕ==
[[زٲژ:زَبان]]
4tbnsjq0tyih2q1yoxb85ihfqoy66vb
قَزاق
0
33086
153452
2026-10-07T07:41:38Z
آیات محراج
11062
رَجوٗع مُکَرر تَخلیٖق کَران
153452
wikitext
text/x-wiki
#REDIRECT [[قازق_زَبان]]
ooeuvhgc4lfe07xe85hbfez7lu8dexc
قَزاق زَبان
0
33087
153453
2026-10-07T07:41:38Z
آیات محراج
11062
رَجوٗع مُکَرر تَخلیٖق کَران
153453
wikitext
text/x-wiki
#REDIRECT [[قازق_زَبان]]
ooeuvhgc4lfe07xe85hbfez7lu8dexc
فرما:مشہوٗر کامہِ
10
33088
153464
2026-10-07T09:41:48Z
آیات محراج
11062
Manually created
153464
wikitext
text/x-wiki
<div style="background:#f8f9fa; padding:10px; border-left:4px solid #ff4500; border-radius:5px;">
'''مَشہوٗر کامہِ:'''<br/>
<table class="wikitable" style="width:100%; text-align:center; background:white; margin-top:5px;">
<tr>
<th style="background:#e0e0e0;">کٲم</th>
<th style="background:#e0e0e0;">ؤری</th>
</tr>
{{#invoke:Wikidades | claim | item=Q9543
| property = P800
| qualifier = P800/P577
| formatting = table
| rowformat = <tr><td>$0</td><td>$1</td></tr>
| separator =
}}
</table>
</div>
mqfl02l32g7lhsf7evp6vtafgz9wx69
153465
153464
2026-10-07T09:42:16Z
آیات محراج
11062
/* */
153465
wikitext
text/x-wiki
<div style="background:#f8f9fa; padding:10px; border-left:4px solid #ff4500; border-radius:5px;">
'''مَشہوٗر کامہِ:'''<br/>
<table class="wikitable" style="width:100%; text-align:center; background:white; margin-top:5px;">
<tr>
<th style="background:#e0e0e0;">کٲم</th>
<th style="background:#e0e0e0;">ؤری</th>
</tr>
{{#invoke:Wikidades | claim
| property = P800
| qualifier = P800/P577
| formatting = table
| rowformat = <tr><td>$0</td><td>$1</td></tr>
| separator =
}}
</table>
</div>
ob67t9c51zmvzzf9h68vkkwonn00a1x
153467
153465
2026-10-07T09:47:06Z
آیات محراج
11062
/* */
153467
wikitext
text/x-wiki
<table class="wikitable" style="width:100%; text-align:center;">
<tr>
<th colspan="2" style="background:#e0e0e0; font-size:110%;">مَشہوٗر کٲم</th>
</tr>
<tr>
<th style="background:#f8f9fa; width:70%;">کٲم</th>
<th style="background:#f8f9fa; width:30%;">ؤری</th>
</tr>
{{#invoke:Wikidades | claim
| property = P800
| qualifier = P800/P577
| formatting = table
| rowformat = <tr><td>$0</td><td>$1</td></tr>
| separator =
}}
</table>
6hcmitklicsz40h3aonxu1g3pyq3gif
153468
153467
2026-10-07T09:48:28Z
آیات محراج
11062
/* */
153468
wikitext
text/x-wiki
<table class="wikitable" style="width:100%; text-align:center;">
<tr>
<th colspan="2" style="background:#e0e0e0; font-size:110%;">مَشہوٗر کٲم</th>
</tr>
<tr>
<th style="background:#f8f9fa; width:70%;">کٲم</th>
<th style="background:#f8f9fa; width:30%;">ؤری</th>
</tr>{{#invoke:Wikidades|claim|property=P800|qualifier=P800/P577|formatting=table|rowformat=<tr><td>$0</td><td>$1</td></tr>|separator=}}</table>
c7hspdkwhls3xq9opgl44ti11pn61ff
153469
153468
2026-10-07T09:56:41Z
آیات محراج
11062
/* */
153469
wikitext
text/x-wiki
<table class="wikitable" style="width:100%; text-align:center;">
<tr>
<th colspan="2" style="background:#e0e0e0; font-size:110%;">مَشہوٗر کٲم</th>
</tr>
<tr>
<th style="background:#f8f9fa; width:70%;">کٲم</th>
<th style="background:#f8f9fa; width:30%;">ؤری</th>
</tr>
{{#invoke:Wikidades | claim
| property = P800
| qualifier = P800/P577
| formatting = table
| rowformat = <tr><td>$0</td><td>$1</td></tr>
| separator =
}}
</table>
6hcmitklicsz40h3aonxu1g3pyq3gif
153470
153469
2026-10-07T10:02:39Z
آیات محراج
11062
/* */
153470
wikitext
text/x-wiki
{| class="wikitable" style="width:100%; text-align:center;"
|-
! colspan="2" style="background:#e0e0e0; font-size:110%;" | مَشہوٗر کٲم
|-
! style="background:#f8f9fa; width:70%;" | کٲم
! style="background:#f8f9fa; width:30%;" | ؤری
{{#invoke:Wikidades|claim|property=P800|qualifier=P800/P577|formatting=table|rowformat=<tr><td>$0</td><td>$1</td></tr>|separator=}}
|}
rz1hxybjqiipux3dzqhoe1ve8wk2dio
153472
153470
2026-10-07T10:05:00Z
آیات محراج
11062
/* */
153472
wikitext
text/x-wiki
{{#if:{{#invoke:Wikidades|claim|property=P800|item={{{qid|}}}}}|
{| class="wikitable" style="width:100%; text-align:center;"
|-
! colspan="2" style="background:#e0e0e0; font-size:110%;" | مَشہوٗر کٲم
|-
! style="background:#f8f9fa; width:70%;" | کٲم
! style="background:#f8f9fa; width:30%;" | ؤری
{{#invoke:Wikidades|claim|property=P800|qualifier=P800/P577|item={{{qid|}}}|formatting=table|rowformat=<tr><td>$0</td><td>$1</td></tr>|separator=}}
|}
}}
o5lpuota6r89rohtdbkusfrvjemw230
153473
153472
2026-10-07T10:06:12Z
آیات محراج
11062
[[Special:Contributions/آیات محراج|آیات محراج]] ([[User talk:آیات محراج|کَتھ]]) سٕنٛدِ طَرفہٕ کَرنہٕ آمٕژ [[Special:Diff/153472|153472]] تَبدیٖلی آی رَد کَرنہٕ
153473
wikitext
text/x-wiki
{| class="wikitable" style="width:100%; text-align:center;"
|-
! colspan="2" style="background:#e0e0e0; font-size:110%;" | مَشہوٗر کٲم
|-
! style="background:#f8f9fa; width:70%;" | کٲم
! style="background:#f8f9fa; width:30%;" | ؤری
{{#invoke:Wikidades|claim|property=P800|qualifier=P800/P577|formatting=table|rowformat=<tr><td>$0</td><td>$1</td></tr>|separator=}}
|}
rz1hxybjqiipux3dzqhoe1ve8wk2dio
153474
153473
2026-10-07T10:07:35Z
آیات محراج
11062
/* */
153474
wikitext
text/x-wiki
{| class="wikitable" style="width:100%; text-align:center;"
|-
! colspan="2" style="background:#e0e0e0; font-size:110%;" | مَشہوٗر کٲم
|-
! style="background:#f8f9fa; width:70%;" | کٲم
! style="background:#f8f9fa; width:30%;" | ؤری
{{#invoke:Wikidades|claim
|property=P800
|qualifier=P800/P577
|formatting=table
|rowformat=<tr><td>$0</td><td>$1</td></tr>
|separator=
}}
|}
j31indkrg2x140tnbckwo5ym5nwwdlr